Tools / JSON Schema Validator
JSON Schema Validator
Validate a JSON document against a JSON Schema right in your browser. Paste a schema and an instance, get every violation with its path — nothing is uploaded.
// About this tool
JSON Schema Validator
This validator checks a JSON document against a JSON Schema entirely in your browser. Paste a schema on one side and an instance on the other, and every violation is reported with the exact path where it failed.
It covers the keywords you actually hit day to day: type, enum, const, required, properties and additionalProperties, items, string bounds (minLength/maxLength/pattern/format), number bounds (minimum/maximum/multipleOf), and composition with allOf/anyOf/oneOf/not.
Everything runs locally — your schema and data are never uploaded, which matters when the payload is a real API request, a config file, or a tool call from an agent.
The validator's place in the toolchain: API platforms and JSON Schema lint sites validate one document at a time against a remote service, which is awkward when the payload is private or when you're iterating fast. This one is built around agent workflows — MCP tool calls, LLM function-calling arguments, config validation — where the schema is the contract and the arguments are about to trigger a side effect. Validate before execution, not after the damage. Every reported violation carries its path (/user/email, /items/2/id) so you can fix the offending field instead of staring at 'validation failed'.
// When to use it
Validate a tool call before it executes
Check that the arguments an agent is about to pass to a tool actually match the tool's declared schema before the side effect happens.
Check an API payload against its contract
Paste a request or response body and its schema to confirm required fields, types, and formats line up.
Debug a config file
Point a schema at a config's shape and find exactly which field is missing or wrong before it fails at runtime.
// Questions
Is my schema or data uploaded to a server?
No. Validation happens entirely in your browser via JavaScript. Nothing is sent anywhere, which makes it safe for real payloads and internal configs.
Which JSON Schema draft is supported?
A practical subset of draft-07: type, enum, const, required, properties, additionalProperties, items, string/number bounds, pattern, common formats (email, uri, date, date-time, uuid, ipv4), and allOf/anyOf/oneOf/not composition. $ref and remote schema resolution aren't supported.
What does the path in an error mean?
It's the location inside the instance where the violation occurred, written as a slash-separated path — for example /user/email for a nested field.
Can I use this to validate an agent's tool-call arguments?
Yes — that's a common use case. Paste the tool's JSON Schema and the arguments the model produced to confirm they match before the call runs with real side effects.
What's the difference between JSON validation and JSON Schema validation?
Plain JSON validation only checks syntax — is it parseable, are the brackets balanced (that's what a formatter does). Schema validation checks structure and meaning: required fields present, types correct, strings within bounds, values from the allowed set. A document can be perfectly valid JSON and completely wrong against its schema.
How do I validate a config file against a schema?
Load the config into the instance pane and its schema into the schema pane. For MCP servers and agent tools, the schema is usually in the tool definition's inputSchema field — paste it verbatim. Every violation reports the exact path in the config that failed.
Which JSON Schema drafts does this support?
It implements the core validation keywords shared by draft-07 and later drafts (2020-12): type, enum, const, required, properties, items, string and number bounds, pattern, and allOf/anyOf/oneOf/not, with inline $ref to #/definitions. Draft-07's 'items' array form and 2020-12's 'prefixItems' are both handled for tuple validation. Remote $ref and unevaluatedProperties are not supported — everything stays local, so no schema is fetched.
Why doesn't $ref resolve?
Remote and cross-document $ref resolution require fetching external schemas, which would break the everything-local design. Inline your definitions or expand refs before pasting. All draft-07 keywords that operate within a single document — including inline $ref to #/definitions — work.
// Related tools