JSON Schema Validator

Validate JSON against a schema with per-field errors, or infer a schema from a sample document — entirely in your browser.

data.json
1
2
3
4
5
6
7
8
9
schema.jsonValid · draft-07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Document is valid against the schema

Your Data Never Leaves Your Device

Every tool runs entirely in your browser. Nothing you type is uploaded, stored, or logged on our servers.

100% Client-Side

The JSON Schema Validator & Generator does both halves of the job. In validate mode it checks a document against your schema and lists every failure with the field path that caused it, so a malformed API payload or config file tells you exactly which key is wrong instead of failing at the first problem. Draft-07 and Draft 2020-12 are both supported, selected automatically from your schema's $schema declaration.

In generate mode it works backwards from a sample document, inferring types, required fields, and string formats such as uuid, email, and date-time. For an array of records it merges them into one object schema and marks only the keys present in every element as required, which is usually what you want from real-world sample data. The result is a starting point you can tighten by hand, and “Use for validation” loads it straight into the validator. Everything runs in your browser.

FAQ

Paste your document on the left and your JSON Schema on the right. Validation runs as you type and lists every failure with the exact field path, rather than stopping at the first error.

Yes. Switch to "Generate schema" and it infers types, required fields, and string formats from a sample document. "Use for validation" then loads that schema straight into the validator.

Draft-07 and Draft 2020-12. The draft is auto-detected from your schema's $schema field, since a draft-07 validator rejects 2020-12 keywords like prefixItems in ways that are hard to diagnose.

Records are merged into a single object schema covering every key seen, and only keys present in every element are marked required — so an optional field in one record doesn't become mandatory.

Yes. UUIDs, email addresses, date-time and date values, and URLs are recognised and annotated with the matching format keyword. You can turn this off if you want plain string types.

No. Both validation and schema generation run in your browser, so API payloads and config files never leave your machine.