JSONL Validator & Converter

Check JSON Lines files for fine-tuning and batch jobs before you upload them: every line is parsed and validated against the format you pick, with token counts. Convert JSON arrays and CSV into JSONL.

No data leaves your browser
Input
Output

Frequently Asked Questions

What is JSONL?

JSON Lines (also NDJSON): one complete JSON value per line, separated by newlines, with no enclosing array or trailing commas. It is the input format for OpenAI fine-tuning, the OpenAI Batch API and Anthropic Message Batches.

What does the fine-tuning check look for?

Each line must be an object with a "messages" array of {role, content} messages using system, developer, user, assistant or tool roles, with at least one assistant reply. It also flags empty content, unknown roles or keys, consecutive turns from the same role, and conversations that don't end with the assistant.

What do the batch checks verify?

OpenAI: custom_id is unique, method is POST, url is a supported endpoint and body is an object. Anthropic: custom_id is unique and 1–64 characters of letters, digits, _ or -, and params has model, max_tokens and messages that start with a user turn.

Are token counts exact?

With "Exact OpenAI tokens" checked, message text is counted with the real o200k_base tokenizer (chat-format overhead adds a few tokens per message). Otherwise counts are a characters ÷ 4 estimate.

Is my dataset uploaded?

No. Files are read and validated in your browser, which matters for private training data.

More Developer Tools

JSON ToolsFormat, validate, minify & compare JSON JSON FormatterPretty-print and beautify JSON CSV Viewer & EditorView, edit and convert CSV files YAML ConverterConvert YAML to JSON and back Regex TesterTest regular expressions live Text DiffCompare two texts side by side JWT ToolDecode, encode, compare and verify JWTs JWT DecoderInspect JWT header and payload XML FormatterFormat, validate and convert XML URL EncoderEncode, decode and parse URLs Base64Encode and decode Base64 strings Hash GeneratorSHA-256, MD5, HMAC and CRC32 SHA-256Generate SHA-256 checksums MD5 GeneratorGenerate MD5 hash values Text ToolsCase convert, count and transform text Number ConverterBinary, hex and octal converter Token CalculatorEstimate LLM token counts from text PDF EditorEdit text, sign and annotate PDFs Schema GeneratorJSON to TypeScript, Go, Rust, Python IndexNowSubmit URLs to Bing, Yandex & more PII RedactorMask personal data & keys before AI Timestamp ConverterUnix epoch to date and back UUID GeneratorUUID v4/v7, ULID, Nano ID Password GeneratorSecure passwords & passphrases MCP Config BuilderConfigs for Claude, Cursor, VS Code AGENTS.md GeneratorCLAUDE.md, Cursor rules, Copilot AI Crawler Controlsrobots.txt for AI bots & llms.txt Cron ParserExplain crontab, next run times SQL FormatterBeautify & minify SQL queries cURL ConvertercURL to fetch, Python, Go, PHP Chat Export ConverterChatGPT/Claude export to Markdown Markdown PreviewLive GFM preview & to HTML Color & ContrastHEX/RGB/OKLCH, WCAG checker QR Code GeneratorURL, Wi-Fi, vCard; PNG & SVG Tool Schema ConverterOpenAI ↔ Anthropic ↔ Gemini ↔ MCP JSONL ValidatorFine-tuning & batch files SSE Stream ParserReassemble LLM streaming responses Prompt Template & DiffFill {{vars}}, compare versions