JSON Schema Validator

Validate a JSON document against a JSON Schema and see the exact path and reason for every error.

Paste a schema on the left and a JSON document on the right — validation runs as you type.

No uploads. Your files stay on your device.

Free forever, no sign-up, no cookies. Buy me a coffee

How it works

Paste a JSON Schema and a JSON document, and every constraint in the schema is checked against the data as you type. Each failure is reported with a JSON Pointer path (/orders/0/total), so you know exactly which value broke the rule and why — no hunting through a wall of nested output. Supported keywords include type, required, properties, patternProperties, additionalProperties, items, enum, const, the numeric and string bounds, uniqueItems, pattern, format, allOf, anyOf, oneOf, not, if/then/else and local $ref pointers into definitions or $defs.

String formats such as email, uri, date, date-time, uuid, ipv4 and hostname are annotations in the JSON Schema spec, so validators disagree about them — the checkbox lets you switch that check on or off. Everything runs in your browser with plain JavaScript: your schema and your payload are never uploaded, which makes this safe for API contracts, customer records and anything else confidential. Copy or download the report to paste into a bug ticket.

Frequently asked questions

Is my JSON Schema or data uploaded to a server?

No. The validator runs entirely in your browser with plain JavaScript, so your schema and your JSON document never leave your device. That makes it safe for API contracts, tokens and customer records, and it keeps working offline once the page has loaded.

Which JSON Schema draft does this validator support?

It targets draft-07 style schemas and checks type, required, properties, patternProperties, additionalProperties, items, additionalItems, contains, enum, const, minimum and maximum plus their exclusive variants, multipleOf, minLength, maxLength, pattern, format, minItems, maxItems, uniqueItems, minProperties, maxProperties, allOf, anyOf, oneOf, not, if/then/else and local $ref pointers into definitions or $defs.

How do I read the error paths?

Each error is labelled with a JSON Pointer, for example /orders/0/total, meaning the total field of the first item in the orders array. (root) means the failure is on the top-level document itself, such as a missing required property or a disallowed extra property. Use Copy report or Download report to take the full list with you.

Report a bug