>_toolkitbox

~/tools / AI JSONL Checker

AI JSONL Checker — Check a batch or fine-tuning JSONL file line by line

Check a JSONL file for the OpenAI Batch API, the Anthropic Message Batches API or OpenAI fine-tuning, line by line. Find bad JSON, duplicate custom_id values, unsupported endpoints and parameters, and size limits before you upload. Nothing leaves your browser.

Format

Rules checked against the documentation on 2026-10-23.

Documentation: OpenAI Batch / Anthropic Message Batches / OpenAI fine-tuning

Not checked: model names, the contents of the parameters, token counts, and rules the documentation does not state, such as whether all requests in one OpenAI batch must use the same endpoint.

Everything runs in your browser. The file is not uploaded.

Batch APIs and fine-tuning take a JSONL file, which is one JSON value on every line. One bad line can make a whole upload fail, and the error often points at the file rather than the line. This tool reads the text you paste and checks it against what the documentation says for the format you choose: for OpenAI Batch, a unique custom_id, a listed endpoint, a single model per file and no streaming; for Anthropic Message Batches, a custom_id of 1 to 64 letters, numbers, hyphens and underscores and the parameters a batch rejects; and for OpenAI fine-tuning, a messages array on every line, at least 10 lines and a weight of 0 or 1. Results show the line number of each problem, and the rules were checked against the documentation on the date shown below the tool.

Use Cases

  • Checking a batch input file before you upload it, so that a bad line does not fail the whole batch
  • Finding duplicate custom_id values, or a request that sets stream to true, in a file with thousands of lines
  • Checking fine-tuning data for lines with no messages, no assistant reply or a weight that is not 0 or 1

Usage

  1. Choose the format: OpenAI Batch, Anthropic Message Batches or OpenAI fine-tuning.
  2. Paste the contents of the file, or load the example for that format.
  3. Read the list of problems with their line numbers. Fix means the documentation says the line will be rejected or is invalid, Check means it is worth a look, and Note is for information. Correct the file and paste it again.

FAQ

What is JSONL?

JSON Lines: a text file with one complete JSON value on every line and no commas between lines. The OpenAI fine-tuning documentation asks for one complete JSON structure on every line. A JSON document that is spread over several lines, or a single array, is not JSONL.

Does the Anthropic Message Batches API take a JSONL file?

It takes a list of requests, each with a custom_id and a params object, in the requests parameter of the create call. Its results come back as a .jsonl file. This tool treats each line as one request, and it also accepts a JSON array or an object with a requests array.

Which limits does it check?

For OpenAI Batch: 50,000 requests per batch, a 200 MB input file and 50,000 embedding inputs across the batch. For Anthropic: 100,000 requests or 256 MB per batch. For OpenAI fine-tuning: at least 10 lines. The size shown is the UTF-8 size of the text you pasted.

Why does it say a request with stream set to true is a problem?

The OpenAI documentation says the Batch worker rejects requests that set stream to true. The Anthropic documentation lists stream: true, speed, fallbacks and max_tokens: 0 as parameters that return a validation error in a batch.

What does it not check?

Model names, the contents of the parameters, token counts, whether the endpoint accepts your account, and anything the documentation does not state. For example, it does not say whether every request in one OpenAI batch must use the same endpoint. A file that passes can still fail at the API, so test with a small file first.

Is my file sent to a server?

No. The check runs in your browser, so the contents are not uploaded.

Related