A JSON Schema describes rules for JSON data. JSON Schema Validator compares your Document to a Schema directly in the browser. It implements a useful subset of draft-07, not every keyword in the standard.

Find a missing field

Choose Load example. The status should say Valid, and the Result summary says the document matches the schema. The example requires id and email. Delete the email property from JSON value to validate while keeping the JSON syntax valid. The result should report a missing required property “email” at the root path #. Put the property back and the error clears. Clear empties both editors; it does not fix invalid input for you.

A path such as #/id points to the id field in the JSON document; # means its root. Some problems may produce multiple messages because keywords are checked independently. Local $ref references are supported, but remote references are not fetched. Treat Valid as “matches the rules this tool implements,” not as proof that the JSON meets every draft-07 rule or that an API will accept it.

Where your input goes

Processing runs in your browser. The tool does not upload your input to ilham.dev.

For more background, read Working With Structured Data.

Questions you might have

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.