TOML Validator

Validate TOML files and locate errors.

0 chars
0 words
0 lines
0 chars
0 words
0 lines

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 = fowtools is invalid; write name = "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.

Convert between formats with TOML to JSON, or validate other formats with the JSON Validator and JSON5 Validator.

Frequently Asked Questions

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.

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.

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.

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.