Developer Tools
JSON Schema Validator
Validate a JSON document against a JSON Schema in your browser. Draft 7 and 2020-12, full error list with JSON Pointer paths, no signup.
JSON Schema Validator
Draft
Pick the JSON Schema draft your schema targets. Most OpenAPI 3.1 and Ajv setups use 2020-12; older specs use Draft 7.
Paste a Draft 7 or 2020-12 JSON Schema. Internal $ref pointers like#/$defs/User are supported.
Paste the JSON value to check against the schema on the left.
Result
Document is valid against the schema.
Every constraint in the schema passed. If you change either side, the result updates instantly.
Supported keywords
- Types and equality: type, enum, const.
- Strings: minLength, maxLength, pattern, format (date, time, date-time, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, regex).
- Numbers: minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf.
- Arrays: items (and prefixItems for 2020-12), additionalItems, minItems, maxItems, uniqueItems, contains, minContains, maxContains.
- Objects: properties, patternProperties, additionalProperties, required, propertyNames, minProperties, maxProperties, dependentRequired, dependencies.
- Conditionals: if, then, else, allOf, anyOf, oneOf, not.
- $ref: internal pointers only (for example
#/$defs/Address). External and dynamic refs are flagged as warnings, not silently ignored.
How errors are reported
Every failure includes a JSON Pointer that locates the failing value inside the document (RFC 6901), the schema path that produced the constraint, the keyword name (type, required, enum, and so on), and a plain-English message. Pointers use an empty string for the root, and segments are slash-prefixed so you can paste them straight into a tool like jq or your editor.
The Ajv-style default is to ignore unknown formats and pick the first failing branch of an anyOf. Turn on strict format or verbose anyOf above when you are debugging a schema that has its own format vocabulary or many similar branches.
How to use
- Paste your JSON Schema into the left panel (Draft 7 or 2020-12) and the JSON document to validate into the right panel.
- Pick the matching draft. Use 2020-12 for OpenAPI 3.1 and current Ajv; use Draft 7 for older specs.
- Read the result below: a green banner when the document is valid, or a red list of errors with the keyword, JSON Pointer, and message for every failure.
- Turn on Strict format checking when you want unknown format names flagged as errors, or Verbose anyOf errors to see why each branch of an anyOf failed.
- Use Copy errors to paste the full failure list into a pull request or issue, or load the sample schema with the invalid document to see how the report looks.
About this tool
JSON Schema Validator checks a JSON document against a JSON Schema entirely in your browser. Paste the schema on the left and the document on the right, and a full list of failures appears underneath with the JSON Pointer (RFC 6901) for each failing value, the schema path that produced the constraint, the keyword name (type, required, enum, pattern, format, and so on), and a plain-English message explaining what went wrong. The validator supports the two drafts most teams actually write: Draft 7 (still common in older OpenAPI specs and many Ajv setups) and 2020-12 (the current draft used in OpenAPI 3.1 and modern toolchains). Switch between drafts to pick up the prefixItems / contains / dependentRequired forms used in 2020-12 or the tuple items / dependencies forms used in Draft 7. The full keyword set is covered: type, enum, const, minLength, maxLength, pattern, format (date, time, date-time, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, regex), minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, items, prefixItems, additionalItems, minItems, maxItems, uniqueItems, contains, minContains, maxContains, properties, patternProperties, additionalProperties, required, propertyNames, minProperties, maxProperties, dependentRequired, dependencies, allOf, anyOf, oneOf, not, and if/then/else. Internal $ref pointers like #/$defs/User are resolved; external refs and dynamic refs are flagged as warnings rather than silently ignored. By default unknown formats are accepted (matching Ajv's default behavior) so you can paste a schema with custom format names without false positives, but a Strict format toggle turns those into errors when you want to enforce them. Verbose anyOf errors include the failures from each rejected branch so you can debug large union schemas. Validation runs locally, so schemas with internal API details, secret patterns, or unreleased document samples never leave your device.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
JSON Schema Generator
Infer a JSON Schema document (Draft 7 or 2020-12) from any JSON value.
Open tool
DeveloperJSON Formatter
Format, minify, and validate JSON in your browser.
Open tool
DeveloperJSONPath Tester
Evaluate JSONPath queries with filters, regex, and recursive descent.
Open tool
DeveloperJSON Diff Checker
Structural compare with paths for added, removed, and changed values.
Open tool
DeveloperJSON Repair
Auto-fix broken JSON: trailing commas, single quotes, unquoted keys, comments, smart quotes, and NDJSON.
Open tool