TokenPad
Datasets

JSONL Validator for Fine-Tuning Datasets

Catch the broken line before the upload rejects your whole file.

Your input

Paste your JSONL dataset — one JSON object per line.

200 characters4 lines0 tokensor drop a file

JSONL ValidatorExact
0Valid rows
Valid rows0parsed successfully
Errors0none
Warnings0parses but may not train
Token cost of this result
Output tokens0
As input$0.00
× 100K requests$0.00

Everything on this page runs in your browser. Nothing you paste is transmitted, because there is no server here to transmit it to.

Result
 

Why line-level validation matters

JSONL is one JSON object per line, and a fine-tuning upload rejects the entire file for a single malformed row. The error you get back is often a line number and nothing else, on a file with fifty thousand rows.

Validating locally first turns that into a specific line and a specific parse message, which takes seconds instead of a round trip.

The structural checks

Parsing is necessary and not sufficient. A row that parses perfectly can still be useless for training, and the two most common cases are checked here.

A row with no assistant turn has nothing for the model to learn from — it is input without a target. A row with non-string content usually means a nested object leaked in from a serialisation step and will be rejected or, worse, silently mangled.

Before you upload

Run the deduplicator first. Datasets assembled from support tickets or logs are full of near-identical rows, and duplicates both waste training budget and skew the model towards whatever was repeated.

Then split into training and validation sets with a fixed seed, so the evaluation you run tomorrow is comparable to the one you ran today.

Frequently asked questions

What format do fine-tuning uploads expect?
One JSON object per line, each typically containing a messages array of role and content pairs — the same shape as a chat request. Exact requirements vary by provider, so check their documentation for required fields before uploading.
Why is a row with no assistant message a problem?
Supervised fine-tuning learns to produce the assistant turn. A row without one has no target, so it contributes nothing while still counting towards your training token bill.
How many rows do I need?
Provider minimums are usually in the tens, but useful results generally start in the high hundreds to low thousands for a narrow task. Quality and consistency matter far more than volume — a hundred clean, consistent examples beat a thousand contradictory ones.

More datasets tools