TOML Validator
Validate TOML files and locate errors.
TOML Validator – Check TOML Syntax Online
The TOML validator checks TOML configuration files against the TOML 1.0 specification. Paste pyproject.toml, Cargo.toml, netlify.toml, or any other TOML file: if it's valid you get a green confirmation, structure statistics, and the parsed data as JSON; if not, you get the error and the exact line and column.
Why validate TOML?
A broken configuration file usually fails at the worst time — during a build, a deployment, or when a package manager refuses to install. TOML is simple, but some rules trip people up regularly:
- Strings need quotes –
name = fowtoolsis invalid; writename = "fowtools". - No duplicate keys or tables – defining
[tool.ruff]twice is an error. - Tables can't be redefined by dotted keys and vice versa.
- Arrays of tables use double brackets:
[[bin]]. - Dates must follow RFC 3339:
2026-09-30T08:00:00Z. - Inline tables must stay on one line and can't have trailing commas.
See what the parser sees
The JSON on the right is the parsed result. It reveals subtle mistakes that are syntactically valid but not what you meant — for example a key placed after a [table] header that you intended for the top level. Keys that belong to the root must come before the first table header.
Privacy
Validation runs entirely in your browser using the spec-compliant smol-toml parser. Nothing is uploaded, so secrets in config files stay on your machine.
Related tools
Convert between formats with TOML to JSON, or validate other formats with the JSON Validator and JSON5 Validator.
Frequently Asked Questions
What errors does the TOML validator catch?
Everything the TOML 1.0 specification forbids: missing or wrong quotes, invalid values, duplicate keys, redefining a table, mixing a table and a key with the same name, invalid dates, bad escape sequences, and unclosed arrays or inline tables.
Why is a duplicate key an error?
TOML maps unambiguously to a hash table, so every key may be defined only once per table. Defining [server] twice, or setting port = 80 and later port = 8080 in the same table, makes the file invalid.
Which TOML files can I check?
Any TOML 1.0 document: pyproject.toml, Cargo.toml, netlify.toml, Hugo and Deno configs, .cargo/config.toml, Poetry lock data, and your own application settings.
What is the JSON output for?
It shows exactly how a parser sees your file — which keys ended up in which table and with what types. It's the quickest way to spot a key that landed in the wrong section.