TOML Validator

Validate TOML files like pyproject.toml and Cargo.toml in your browser. Spec-compliant parser with clear error messages. Free and private.

TOML inputpaste, type, or drop a file
Text output
Runs 100% in your browser. Nothing is uploaded, logged, or stored, and there are no ads. Verify it yourself: open your browser's Network tab while you convert and watch that no requests leave this page.

About this tool

Validate TOML documents against the TOML 1.0 spec, the same rules pip, cargo, and poetry apply when they read pyproject.toml or Cargo.toml. Duplicate keys, bad escapes, and malformed tables are all caught.

Valid documents get a structural summary so you can confirm the table layout matches your intent.

Common uses

  • Check pyproject.toml after hand-editing before running pip or poetry.
  • Validate Cargo.toml changes without waiting for a cargo build.
  • Verify TOML config files in CI-adjacent scripts.

Automate via API

The same conversion is available as a REST endpoint for scripts, pipelines, and backends:

curl -X POST https://payloadly.com/api/v1/tools/toml-validator \
  -H "Content-Type: text/plain" \
  -H "X-Api-Key: YOUR_API_KEY" \
  --data-binary @input.toml

API documentation · Get an API key

Worked examples

Real payloads from tools people use daily, with the exact output this converter produces. Every example runs in your browser, so you can load one and adapt it to your own data.

Validate a pyproject.toml

Checks pyproject.toml against the TOML 1.0 spec so pip and poetry will not choke on a bad table or escape.

TOML input
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "my-package"
version = "0.1.0"
dependencies = ["requests>=2.31", "click"]
Text output
Valid TOML.

Root value : object with 2 keys
Input size : 178 B (8 lines)

Validate a Cargo.toml

Confirms your Cargo.toml parses cleanly, including inline dependency tables, without waiting for a cargo build.

TOML input
[package]
name = "my-crate"
version = "0.1.0"
edition = "2021"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
Text output
Valid TOML.

Root value : object with 2 keys
Input size : 129 B (7 lines)

TOML notes

TOML (Tom's Obvious, Minimal Language) is the config format of choice for Rust (Cargo.toml), Python (pyproject.toml), and many modern CLIs. It maps cleanly to a hash table and supports first-class dates and comments.

  • TOML documents must have a table (object) at the top level, never an array.
  • TOML has first-class date/time types that JSON must represent as strings.
  • TOML values cannot be null; null fields are omitted when converting into TOML.

Frequently asked questions

Is my data uploaded to a server?

No. This tool runs entirely in your browser using JavaScript, and there are no ads on the page. Nothing you paste or drop here is uploaded, logged, or stored, and you can verify that yourself: open your browser's developer tools and watch the Network tab while you convert (no requests leave the page), or disconnect from the internet after the page loads and keep working.

Is there a size limit or a fee?

The browser tool is free with no signup and comfortably handles files up to tens of megabytes (limited by your device's memory). For automated or bulk processing inside your own scripts and pipelines, use the paid REST API.

Related tools