CurlyJSON
Tools

JSON Schema Validator

Paste JSON and a schema. Every problem is listed with its path as you type, and nothing is uploaded.

JSON
Schema
Result

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.