What does it do?
It validates a JSON document against a JSON Schema and tells you exactly which field fails and why: every error appears with its path (for example /user/email), the rule that failed and a readable message, and the value is underlined in the data editor.
It also works the other way: generate a schema from an example JSON, a fast way to start documenting an API payload or a config file.
How to use it
- Paste the schema on top and the data below.
- The result updates as you type.
- Click an error to see it in the data.
Example
With a schema that requires email with format: email and a plan that is one of free or pro, the data {"email": "ana@", "plan": "gold"} gives two errors: the email does not match the format and the plan is not one of the allowed values.
Frequently asked questions
›Which JSON Schema drafts are supported?
Draft-07, 2019-09 and 2020-12. The draft is chosen from the $schema keyword; without it, draft-07 is used. Formats such as email, uri, date-time and uuid are checked.
›How is a schema generated from data?
Types are inferred from the example: objects list their properties (all marked as required), arrays take the schema of their items, and strings that look like dates, emails or URIs get a format. Review it and relax what should be optional.
›Why are all the errors shown and not only the first?
Validation runs with allErrors enabled, so you can fix everything in one pass instead of going error by error.