Models
JSONL
JSONL is a file format with one JSON object per line, used for fine-tuning datasets and batch requests.
Also written: JSON Lines, ndjson
Each line stands alone, which makes the format streamable and appendable — you can process a million-row file without loading it into memory.
A fine-tuning upload rejects the entire file for a single malformed row, and the error is often just a line number. Validating locally first turns that into a specific line and a specific parse message.
In practice
One JSON object per line, no wrapping array, no trailing commas — which means a corrupt file usually fails on one line rather than all of them. That property is why every provider uses it for fine-tuning and batch input. Validate before uploading: a rejected batch job after an hour of queueing is an hour you do not get back.
Common questions
What is the difference between JSON and JSONL?
JSONL is one complete JSON object per line with no wrapping array and no commas between records. That means a corrupt file usually fails on one line rather than all of them, and it can be streamed line by line.
Why did my JSONL upload fail?
Usually a pretty-printed object spanning several lines, a trailing blank line, or a wrapping array left in from a JSON export. Validate before uploading — a batch job rejected after an hour of queueing is an hour lost.
Measure it
- JSONL Validator for Fine-Tuning DatasetsLine-numbered parse errors plus the structural checks uploads actually fail on.
- Train and Validation Set SplitterSeeded shuffle and split. Same seed, same split, comparable evaluations.
- Chat Messages Array BuilderReadable conversation in, valid API payload out, in three formats.