JSON Schema Validator
Paste a schema and a document, pick the draft, and the validator checks the document against every keyword your schema uses, type, required, enum, oneOf, $ref, if/then/else, custom format, reporting each violation with a JSONPath-style pointer to the exact offending location.
How to validate against a schema
-
1
Paste the schema
JSON Schema draft 04, 07 or 2020-12. The `$schema` keyword (if present) auto-selects the draft.
-
2
Paste the document
The JSON you want to validate. Must be valid JSON first: syntax errors are shown before schema evaluation.
-
3
Validate
Each violation is reported with a JSON pointer (`/user/email`) and the failing keyword (`format`, `required`, etc.).
-
4
Fix and re-validate
Edit either side and the status updates live.
Supported keywords
Core: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Composition: allOf, anyOf, oneOf, not.
Applicators: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Conditionals: if, then, else, dependentSchemas.
References: $ref, $defs, $id, $anchor.
Formats (with validation when enabled): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Error output
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
Every error includes the path and the keyword that failed, making it fast to locate in your editor.
Draft differences that bite
| Keyword | Draft 04 | Draft 07 | Draft 2020-12 |
|---|---|---|---|
id vs $id |
id |
$id |
$id |
exclusiveMaximum as bool |
Yes | Number | Number |
items array syntax |
items |
items |
prefixItems |
$ref allows siblings |
No | No | Yes |
Set the right draft; validating a draft-04 schema as 2020-12 will misinterpret id and some other subtleties.
Typical workflows
- API contract testing: before a deploy, run the generated/updated OpenAPI schema against real sample responses.
- Config hardening: validate every YAML/JSON config in CI against a schema before merging.
- Data ingest: reject payloads that do not match the expected shape early, with a clear error message.
Common mistakes
- Forgetting
formatenforcement. By default, most validators treat unknown formats as annotation-only. Enable strict-format validation to actually reject bad emails and dates. - Overusing
oneOf. If two branches ofoneOfoverlap, the document will fail (it must match exactly one). UseanyOfor discriminator patterns. - Tight schemas with
additionalProperties: false. Adding a new optional field becomes a breaking change. Omit it unless you truly want a closed object.
Frequently Asked Questions
Yes. Draft 2020-12, 07 and 04 are all supported. The validator reads the $schema keyword from your document to pick the right one, or falls back to the selector in the UI.
Standard formats (email, date-time, uuid, ipv4, etc.) are validated when strict-format is enabled. Custom formats declared in your schema are treated as annotation-only unless you provide a regex with pattern.
Internal references (#/$defs/foo) are resolved automatically. External HTTP references are not fetched by default, for security. Inline your external references first, or use a dedicated tool that supports remote $ref resolution.
Yes. Both the schema and the document stay local. Pasted content is never uploaded, safe for internal API contracts and sensitive data.
Related Tools
ASCII Table Reference
Full ASCII table from 0 to 127 with decimal, hex, octal, binary, standard names and HTML numeric-reference notation, including NUL, LF and DEL.
Color Palette Generator
Generate monochromatic, analogous, complementary, triadic or tetradic color palettes from a base HEX color and export copy-ready CSS variables.
HTML Character Reference
Searchable list of HTML entities, their named and numeric codes, and a one-click copy for special characters and symbols.
FPS Counter
Measure browser FPS with requestAnimationFrame, smoothing, min/max frame rate, warnings and an optional graph. Runs locally with no upload or API.
HEX Color Picker
Pick or enter a HEX colour and get RGB, HSL, approximate CMYK, relative luminance and contrast ratios against white and black.
JSON Formatter
Paste JSON to pretty-print with 2 or 4 spaces, minify it to compact output, or run a quick syntax check before copying the result.
Tool available in other languages
- Penentu Struktur JSON [ID]
- JSONスキーマバリデーター [JA]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- Trình xác thực JSON Schema [VI]
- JSON-Schema-Validator [DE]
- JSON 스키마 검증기 [KO]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [PT]
- Validador de JSON Schema [ES]
- JSON Schema-validator [SV]
- أداة التحقق من مخطط JSON [AR]
- Validateur de schéma JSON [FR]
- JSON Schema-validator [NL]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]
- Validator di JSON Schema [IT]