What is a JSON Schema validator?
A JSON Schema validator checks whether a JSON document conforms to a JSON Schema: the contract that says which fields are required, what type each must be, which values are allowed, and how things nest. Paste the schema and the data, and this tool compiles the schema with Ajv (the most widely used JSON Schema validator) and reports either a clean pass or a precise list of every violation, each with the exact path to the offending value. It runs entirely in your browser, so schemas and payloads, which often contain secrets or personal data, never leave your machine.
What the errors tell you
- Missing required field:
(root) must have required property 'email'. - Wrong type:
/id must be integer. - Value not allowed:
/role must be one of: "admin", "editor", "viewer". - Unexpected field:
must NOT have additional property 'extra'(when the schema setsadditionalProperties: false).
Generate a schema, then validate with it
Don't have a schema yet? The JSON Schema Generator infers one from a sample document. Then paste that schema here to validate other payloads against it. To check that a document is well-formed JSON in the first place (with the exact line and column of any syntax error), use the JSON Validator.
How to use
- Paste your JSON Schema into the left pane.
- Paste the JSON data you want to check into the right pane.
- The verdict updates as you type: green Valid, or red Invalid with a list of errors, each showing the exact path (e.g.
/profile/age) and what's wrong. - Fix the data (or the schema) until it validates. Everything runs in your browser via Ajv. Nothing is uploaded.
Examples
Valid: data matches the schema
Schema: { "type": "object",
"required": ["id", "email"],
"properties": { "id": {"type":"integer"}, "email": {"type":"string"} } }
Data: { "id": 42, "email": "[email protected]" }✓ Valid: the data matches the schema
Invalid: precise, per-error feedback
Data: { "id": "oops", "role": "root" } (email missing, role not in enum)✗ Invalid: 3 errors (root) must have required property 'email' /id must be integer /role must be one of: "admin", "editor", "viewer"
FAQ
How do I validate JSON against a JSON Schema?
Paste the schema in the left pane and the JSON data in the right pane. This tool compiles the schema with Ajv and validates the data instantly, listing every mismatch with its path. It runs 100% in your browser. Nothing is uploaded.
Which JSON Schema drafts are supported?
Draft-07 (the default) and Draft-06, including the Draft-06 output of our JSON Schema Generator, plus Draft 2019-09 and Draft 2020-12 (auto-detected from the schema's $schema).
Is my schema or data sent to a server?
No. Validation runs entirely in your browser using Ajv. Open DevTools → Network and confirm: zero requests after the page loads. Schemas and payloads with secrets never leave your machine.
What do the error paths mean?
Each error shows a JSON Pointer to the offending value: /profile/age means the age field inside profile; (root) refers to the top-level value (for example a missing required property).
Why does my schema fail to compile?
If the schema isn't valid JSON, or isn't a valid JSON Schema, you'll see a “Can't validate yet” message with the reason. Unknown keywords and formats are tolerated (non-strict mode) so real-world schemas still run.
Does it check string formats like email or date?
Format keywords (email, date-time, etc.) are accepted but not enforced, to keep the tool dependency-light. Structural validation (types, required, enum, additionalProperties, nested objects and arrays) is fully checked.