# JSONL validator

- Human page: https://happytails.ai/en/data-tools/jsonl-validator/
- Markdown: https://happytails.ai/en/data-tools/jsonl-validator.md
- Structured JSON: https://happytails.ai/agents/en/data-tools/jsonl-validator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `jsonl-validator` |
| Category | data-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Validate one JSON value per physical line and locate invalid records. Blank lines are invalid; a final newline is allowed. Duplicate keys and unsupported numbers are reported on their exact lines. At most 10,000 lines and 100,000 characters per line. The report lists up to 500 issues and counts any omitted issues. No normalized output is offered while invalid lines remain. Runs on your device. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate JSON keys, unsafe integers, negative zero and decimals that would change on JSON serialization are rejected rather than rounded. Quote precision-sensitive numbers as strings. Output whitespace and object-member order may change. Each JSON Pointer is limited to 20,000 characters.

### Inputs and settings

Text input: JSONL records.

Example or placeholder shown in the interface (not a validated fixture):

```text
{"name":"Ana","score":90}
{"name":"Bea","score":70}
```

Paste text to process locally. Review the result before downloading. Results update as you type. Up to 1,000,000 characters.

No additional settings are declared for this tool.

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

At most 10,000 physical lines and 100,000 characters per line. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate keys, negative zero and numbers that cannot safely retain their decimal value are rejected. Quote precision-sensitive numbers as strings. Formatting and object member order may change. Processing stays on your device. Each JSON Pointer is limited to 20,000 characters.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "jsonl-validator",
  "category": "data-tools",
  "built": true,
  "requirements": "At most 10,000 physical lines and 100,000 characters per line. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate keys, negative zero and numbers that cannot safely retain their decimal value are rejected. Quote precision-sensitive numbers as strings. Formatting and object member order may change. Processing stays on your device. Each JSON Pointer is limited to 20,000 characters.",
  "implementation": {
    "fields": [],
    "live": true,
    "presentation": "metrics",
    "note": "Validate one JSON value per physical line and locate invalid records. Blank lines are invalid; a final newline is allowed. Duplicate keys and unsupported numbers are reported on their exact lines. At most 10,000 lines and 100,000 characters per line. The report lists up to 500 issues and counts any omitted issues. No normalized output is offered while invalid lines remain. Runs on your device. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate JSON keys, unsafe integers, negative zero and decimals that would change on JSON serialization are rejected rather than rounded. Quote precision-sensitive numbers as strings. Output whitespace and object-member order may change. Each JSON Pointer is limited to 20,000 characters.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "JSONL records",
      "placeholder": "{\"name\":\"Ana\",\"score\":90}\n{\"name\":\"Bea\",\"score\":70}\n",
      "help": "Paste text to process locally. Review the result before downloading. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Validate JSON Lines locally and locate malformed records by line. Download a diagnostic report and, when every line is accepted, normalized JSONL.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use JSONL validator

1. Paste one JSON value per physical line.
2. Review the invalid-line count and line-numbered diagnostics.
3. Correct errors, then download the accepted JSONL and report.

## Useful next steps

- [JSONL filter](https://happytails.ai/en/data-tools/jsonl-filter/) ([Markdown](https://happytails.ai/en/data-tools/jsonl-filter.md))

- [JSON path inventory](https://happytails.ai/en/data-tools/json-path-inventory/) ([Markdown](https://happytails.ai/en/data-tools/json-path-inventory.md))

- [JSON array grouper](https://happytails.ai/en/data-tools/json-array-grouper/) ([Markdown](https://happytails.ai/en/data-tools/json-array-grouper.md))

## Check one JSON value per physical line

Paste JSONL or NDJSON with one object, array or scalar per line. Blank lines are invalid. A final newline is allowed and does not create another record. Windows CRLF line endings are accepted.

### Find the lines that need attention

The report identifies malformed JSON, duplicate object keys and unsupported numbers using one-based line and column positions. It shows up to 500 diagnostics while counting all invalid lines. Error messages do not include the invalid line or neighboring input.

### Export only after every line passes

If any line is invalid, only the report is available. Correct those records and rerun to download normalized JSONL. Parsing is performed one line at a time, but the pasted textarea and output remain in memory. This is a bounded text tool, not a huge-file streaming service.
