JSON Schema Validator
Paste JSON and a schema. Every problem is listed with its path as you type, and nothing is uploaded.
Check JSON against a contract
Test API responses, config files and webhook payloads against their schema before they break something.
- Every problem at once
- All errors are listed together, not just the first one, each with the path of the value that failed.
- Click to jump
- Click a problem to put the cursor on that value in your JSON.
- All modern drafts
- Draft 4, 7, 2019-09 and 2020-12, detected from $schema automatically.
- Generate a schema
- No schema yet? Make one from an example document, then tighten it.
- Formats checked
- email, date-time, uri, uuid, ipv4 and more are validated, not ignored.
- Private & free
- Runs in your browser with no sign-up. Share links keep data after the #, which is never sent to a server.
Frequently asked questions
Which JSON Schema versions are supported?+
Draft 4, draft 7 (which also covers draft 6), 2019-09 and 2020-12. Auto picks the version from the schema’s $schema keyword and uses 2020-12 when there isn’t one. You can also choose a version yourself.
Does it check formats like email and date-time?+
Yes. format is checked for date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, json-pointer, regex and more.
I don’t have a schema yet. Can it make one?+
Press Generate from JSON. It writes a 2020-12 schema from your document: types, nested objects, array items, required keys (only those present in every array item) and common formats such as date-time and email. Edit it from there.
Can I use $ref?+
Yes, inside the same schema: $ref to #/$defs/… or #/definitions/…, $anchor and recursive references all work. Schemas on other websites are not downloaded, so your data and schema stay in the browser.
Is my data uploaded?+
No. Validation runs in your browser and nothing is sent anywhere. Your last document and schema are remembered on this device only; Clear removes them.