Match Batch JSONL results.
Find the missing requests.
Batch output rows are not guaranteed to appear in input order. Compare your input, output and error JSONL files by custom_id, identify duplicates, HTTP failures and missing results, and export a review CSV.
All three JSONL files are read and processed in this browser only. No API calls, uploads, logins, analytics or advertising code on this tool page. Web hosting may process ordinary HTTP metadata to serve the page itself.
Choose up to three local files or paste JSONL
8 MiB per file · 25,000 lines maximum. The official Batch API allows larger uploads (up to 200 MB); this independent browser checker is deliberately smaller. Input is required; supply output and/or errors.
Reconciliation report
Per-ID result preview
| custom_id | Input line | Output line | Error line | Status | HTTP status |
|---|
Export explicitly failed original requests for manual review
After reconciliation, export only original input requests with a uniquely matched provider or HTTP error. Successfully completed, missing, duplicate and unknown results are NEVER treated as safe retries. Verify the actual final provider Batch job state separately.
The downloaded JSONL CAN contain your original prompts and request bodies. This tool sends no API requests. Any future manual resubmission may incur charges or duplicate work. Structural or matching problems block export.
Structural and matching issues
| File | Line | Issue code | Explanation |
|---|
Why batch reconciliations fail
Never assume that OpenAI Batch result line order matches input line order. custom_id is the reliable matching key. Check duplicate input IDs, duplicate result IDs, missing IDs, HTTP 4xx/5xx responses and records in the separate error file.
“Not in supplied files” does not prove the API never processed a request. You may not have downloaded all output and error files yet.
How to use the matcher
- Use previously downloaded JSONL files, not API keys or live secrets.
- Choose your input request file plus output and/or error file.
- Try the synthetic three-request demo: two succeeded out of order, one returned an error.
- Run reconciliation to inspect IDs, source line numbers and statuses.
- Download the full matches and issue CSV reports for your own review.
What this checker cannot verify
Local structural reconciliation only: not job-completion, provider acceptance, actual billing or guarantee that all provider files were downloaded. It cannot judge model outputs. Use your own offline CLI for huge jobs. Exported CSV includes custom_id, but not original prompts, response bodies, provider error messages or API keys.
Related JSONL syntax validator · Official OpenAI Batch API guide · MIT source code
For three fictional JSONL files and a seven-step troubleshooting workflow, read the Batch JSONL reconciliation guide.
Is your Batch JSONL file over 8 MiB or 25,000 lines?
For input, output or error files above this browser tool's deliberately small limit, use the free open-source streaming Node.js Batch JSONL matcher on your own computer. It joins by exact custom_id and exports review CSVs without uploading prompts, contacting APIs or running ads. Requires Node.js 22+; no package installation.
The CLI's separate safety limits are 220 MiB of input, 350 MiB per result file, 100,000 lines and 16 MiB per line. These are local process caps, not provider Batch limits or job-completion guarantees. Missing IDs are not proven failures. Optional original failed-only JSONL requires separate, explicit acknowledgment of costs and duplicate-charge risks. Inspect the source and tests.