Nothing yet — inputs you run here are remembered on this device.
Paste a JSON Schema on the left and a document on the right — or hit "try example".
Nothing yet — inputs you run here are remembered on this device.
Paste a JSON Schema on the left and a document on the right — or hit "try example".
Updated 2026-08-02
Validate JSON against a JSON Schema online for free, instantly in your browser. Paste a schema and
a document, and SnapTools reports either a clean pass or every rule that failed — each with the
exact path to the value responsible, so users[1].id — must be integer points you straight at the
problem instead of leaving you to decode a pointer.
Draft 2020-12, 2019-09 and Draft-07 are all supported, including $ref/$defs, allOf/anyOf/
oneOf, conditional if/then/else, and format checks like email and date-time. The dialect
is detected from your schema's own $schema keyword and shown with the result, because a schema
validated under the wrong draft can give confidently wrong answers. Nothing is uploaded — schema and
document both stay on your machine, which matters when the document is a real payload.
schema: {"type":"object","required":["name","email"],
"properties":{"email":{"type":"string","format":"email"},
"age":{"type":"integer","minimum":0}}}
document: {"name":"Ada","email":"not-an-email","age":-1}
email — must match format "email" age — must be >= 0
schema: {"type":"object","properties":{"users":{"type":"array",
"items":{"type":"object","required":["id"],
"properties":{"id":{"type":"integer"}}}}}}
document: {"users":[{"id":1},{"id":"x"},{}]}
users[1].id — must be integer users[2] — missing required property "id"
schema: {"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}
document: {"name":"Ada"}
Valid — the document matches the schema.
curl -X POST https://thesnaptools.com/api/v1/tools/json-schema-validator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"schema":"schema: {\"type\":\"object\",\"required\":[\"name\",\"email\"], \"properties\":{\"email\":{..."}'