JSON Schema Validator
Validate a JSON document against a JSON Schema and list every problem with the exact JSON Pointer path.
JSON Schema Validator
Paste a JSON Schema and a JSON document. The document is checked in the page against a draft-07 subset: type, enum, const, numbers, strings, arrays, objects, $ref, allOf/anyOf/oneOf/not and if/then/else.
Schema
Document
Result
Learn
History for this tool
The most recent data you entered in this tool, stored only in this browser.
Save what you type here, in this browser? Your work would go into this browser's local storage, so a refresh or a trip to another tool does not wipe it. You also get a short list of previous entries under the form, each one restorable with a click. Nothing is ever uploaded, and there is no account.
Being straight about the trade-off: anything kept there can be read by anyone who can use this browser profile, and by any script that later runs on this site. A tool page can hold a private key, a password or a signed token. Saving is convenient; it is not private.
About this tool
Paste a JSON Schema and a JSON document and the document is checked against it in the page. The validator covers the parts of draft-07 that carry most real API contracts: type, enum, const, numeric and string bounds, arrays and objects, required and additional properties, $ref, allOf/anyOf/oneOf/not and if/then/else. Every problem is reported at once, with the JSON Pointer path that leads to it, so a document can be fixed in a single pass.Questions
- Does my data leave the browser?
- No. Both the schema and the document are parsed and checked in the page. Nothing is uploaded, which is the point of a tool like this when the payload is a real API response.
- Which draft of JSON Schema is supported?
- A practical subset of draft-07. The common validation keywords are implemented; annotations such as title, description and default are ignored because they do not change whether a value is valid. Remote $ref targets are not fetched — only local references into the same schema.
- Why do I see several errors for one mistake?
- Each keyword is checked independently, so a wrong type can also trip a pattern or an enum further down. Fixing the first error usually clears the ones that follow, which is why they are listed together instead of one at a time.
- What is the path next to each message?
- A JSON Pointer into the document, starting at # for the root, with each property and array index appended. It points straight at the value that failed, so you can copy it into code that walks the same path.
- Is a valid result a guarantee?
- It means the document satisfies the keywords this page implements. It is not a full conformance suite: unknown keywords are treated as annotations, and formats are checked with pragmatic rules rather than the strictest reading of every specification.