Batch API JSONL Validator and Splitter

Paste JSONL or open a local file. Check request structure and duplicate IDs, then download an error report or ordered split files.

Run a local check in your browser. No account or upload to a server is needed.

How it works

Each nonblank line is parsed separately. The checker compares IDs, POST methods, URLs and explicit model names. It checks selected required body fields, not every endpoint parameter. A passing preflight does not establish model availability, valid asset references or account quota.

The splitter preserves request order and starts a new file before either user-selected limit would be exceeded. It counts UTF-8 bytes including a final newline. Counts are exact integers; no rounding is used.

The local safety limit is 1,000,000 bytes and 10,000 lines, with at most 256 split files and 1,000 findings. These are smaller than the documented API file limits of 200 MB and 50,000 requests. Embedding batches also have a 50,000-input limit. Each embedding request accepts nonempty text, an integer token vector, a homogeneous string array, or an array of integer vectors; arrays contain at most 2,048 items.

Worked examples

Three requests split into two files

Three valid requests with distinct IDs and a two-request split limit produce 2 files, containing 2 and 1 requests.

A repeated request identifier

Two otherwise valid lines with the same custom_id produce 1 duplicate-ID error on line 2. Splitting is blocked until the error is fixed.

Frequently asked questions

Which endpoints are supported?
The selector covers responses, chat completions, embeddings, completions, moderations, image generations, image edits and videos. The Create batch reference lists videos; the Batch guide currently omits it. Video bodies receive envelope checks only.
Are my requests uploaded?
No. Opened files, pasted JSON and downloads stay in your browser. The tool does not call any model.
Can I validate a 200 MB file?
No. The local cap is 1,000,000 UTF-8 bytes and 10,000 lines to bound memory use. Use a streaming validator for larger files.
Does splitting fix duplicate custom IDs?
No. IDs must be unique before splitting. The tool preserves your request lines and never silently drops or renames them.
What is not checked?
Full endpoint schemas, prompt token counts, model support, remote image or video assets, account rate limits and provider-side validation. Image-edit bodies check prompt presence but do not validate their asset representation.

Sources

Last reviewed 2026-11-14; next review due by 2027-02-12. The method is written out above so you can check our math.