What does the JSON Schema Validator do?
Paste a JSON instance and a JSON Schema Draft 7 document, then validate in a cancellable browser Worker. The tool checks the schema against the Draft 7 meta-schema before checking your data, without coercing types or inserting defaults.
When should you use this tool?
Use schema validation to check a data contract. Use JSON Formatter for syntax alone, JSON Query to extract fields and Mock Data to create test cases. A successful validation is limited to the supplied schema and supported Draft 7 behavior.
How do you use it?
- Paste JSON and a Draft 7 schema, or open the two local files; each is limited to 2 MiB.
- Select Run. A valid JSON document may still fail the schema; inspect the valid flag and error paths.
- Fix the data or schema and run again, then copy or download the report.
Worked example
Check an integer age
Input
JSON: {"age":"21"}
Schema: {"type":"object","properties":{"age":{"type":"integer","minimum":18}},"required":["age"]}Output
valid: false
instancePath: #/age
keyword: typeThe string "21" is not an integer. Changing it to the number 21 passes this schema. Validation never changes the input.
Common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| The schema is rejected before data validation. | Its syntax, keyword values or declared draft are unsupported. | Use Draft 7, check keyword types, and replace newer keywords such as prefixItems with the Draft 7 equivalent. |
| A reference cannot be resolved. | Only # references within this schema document are supported; no remote documents are fetched. | Inline external definitions under definitions and reference them with #/definitions/name. |
Supported behavior and limitations
Draft 7 only; absent $schema means Draft 7. Newer-draft keywords are rejected. Unknown extension keywords are ignored, not custom validation code. Local references must resolve within the document. Format checks follow the engine’s supported formats; they do not verify real email accounts or URLs. Schema nesting is capped at 100 levels, the report at 100 errors, and processing at 15 seconds. JavaScript number precision applies; keep large IDs as strings.
Standards and implementation references
- @cfworker/json-schema (opens in a new tab)Interprets schemas without eval or generated functions; its documented unsupported cases still apply.
- JSON Schema Draft 7 meta-schema (opens in a new tab)The official meta-schema is bundled locally; opening this tool does not fetch it remotely.
Frequently asked questions about JSON Schema Validator
Is my input uploaded?
No. Processing happens in a browser Worker. Engine files load from this website; tool input, output, and filenames are not sent to a processing API.
Do I need an account or API key?
No account, API key, or backend processing service is needed.
How do I save a result?
Review the result, then use the Copy or Download control available for that output. Modifying input clears stale results.
What are the limits?
Draft 7 only; absent $schema means Draft 7. Newer-draft keywords are rejected. Unknown extension keywords are ignored, not custom validation code. Local references must resolve within the document. Format checks follow the engine’s supported formats; they do not verify real email accounts or URLs. Schema nesting is capped at 100 levels, the report at 100 errors, and processing at 15 seconds. JavaScript number precision applies; keep large IDs as strings.
What changed?
Added local processing, explicit size limits, cancellation, worked examples, error explanations, and downloadable results.