JSON

JSON Schema Validator

Check a JSON document against a JSON Schema and get precise failures with paths and keywords.

JSON Schema

0 characters

Document

0 characters

Validation result

Paste a schema and a document to begin

Press Validate (or Ctrl+Enter) to check the document. Draft-07 and 2020-12 are supported, and remote schema references are never fetched.

Examples

Format checks (26 supported)

Formats verified by the engine: date, time, date-time, iso-time, iso-date-time, duration, uri, uri-reference, uri-template, url, email, hostname, ipv4, ipv6, regex, uuid, json-pointer, json-pointer-uri-fragment, relative-json-pointer, byte, int32, int64, float, double, password, binary. An unrecognised format is reported as a warning rather than silently skipped.

Waiting for a schema and a document.

Your data stays private

This tool runs directly in your browser. The content you enter is processed locally and is not sent to TechFixGen servers. No account or signup is required.

JSON Schema Validator, explained

What is a JSON Schema?

A JSON Schema is itself a JSON document that describes the shape of other JSON documents. You write the rules once — types, required properties, patterns, ranges, formats — and every payload checked against that schema is guaranteed to follow them.

This validator compiles your schema and checks a document against it, reporting each failure with the document path, the failing keyword, and the schema location responsible. Validation happens entirely in your browser using the Ajv engine with no remote schema fetching.

How to validate a document

  1. Paste your schema into the "JSON Schema" editor.
  2. Paste the document you want to check into the "Document" editor.
  3. Click Validate (or press Ctrl+Enter).
  4. Review the verdict: valid, or a list of failures with paths and keywords.
  5. Fix the document or the schema and validate again.

Supported dialects

The dialect is read from the schema's $schema value. When it is absent, the validator infers 2020-12 from keywords that only exist in that draft and otherwise assumes draft-07. The result panel always states which dialect was used and how it was chosen, so a schema is never checked against rules you did not intend.

  • Draft-07

    Set "$schema": "http://json-schema.org/draft-07/schema#"

    Supports definitions, dependencies, additionalItems and formatMaximum/formatMinimum. Used as the default when nothing indicates another dialect.

  • 2020-12

    Set "$schema": "https://json-schema.org/draft/2020-12/schema"

    Supports $defs, prefixItems, unevaluatedItems, unevaluatedProperties, dependentSchemas and dynamic references.

Warnings: the part Ajv would skip silently

JSON Schema is deliberately extensible: a validator is supposed to ignore keywords it does not understand, so that vendor annotations do not break a document. The trade-off is that a typo is invisible too. requred is not an error — it is a rule that quietly does nothing.

So this tool scans the schema before compiling it and reports every keyword the active dialect does not define, every unrecognised format, and every keyword that was removed in 2020-12. Validation still runs, but the warnings panel states exactly which constraint was not applied.

Common problems and fixes

  • Unknown keyword

    The keyword is misspelled or belongs to a different draft. JSON Schema ignores any keyword it does not recognise, so the constraint is never applied.

    Fix: Correct the spelling — requred becomes required — and confirm the keyword belongs to the dialect in use.

  • Unknown format

    The format name is not one of the values the validator recognises, so it cannot be checked.

    Fix: Use a supported format such as email, date-time, uuid, uri or ipv4, or remove the format keyword.

  • Keyword not in this dialect

    A keyword was removed in 2020-12, such as dependencies, additionalItems, formatMaximum or formatMinimum, while the schema selects 2020-12.

    Fix: Remove the keyword and express the rule with the 2020-12 equivalent, or set $schema to draft-07.

  • Unresolvable reference

    A $ref points outside the schema you pasted, at an http or https URL or at an id this schema never defines.

    Fix: Inline the referenced part, or reference it locally as #/definitions/name or #/$defs/name.

  • Schema is not a valid JSON Schema document

    A keyword has the wrong type — for example required as a string instead of an array, or minimum as text instead of a number.

    Fix: Match each keyword to its expected type. See the JSON Schema specification for the keyword you are using.

  • type mismatch

    The document's value does not have the type the schema declares.

    Fix: Read the reported document path, confirm the value there, and adjust either the data or the type.

Schema validation vs JSON syntax validation

The JSON Validator answers a narrower question: is this text well-formed JSON at all? Schema validation answers a broader one: does this document satisfy the rules you declared?

A document can be perfectly valid JSON and still fail its schema — a missing required property or a string where an integer belongs are schema violations, not syntax errors. Use the JSON Validator to confirm a document parses, then this validator to confirm it matches your contract.

Privacy

Validation runs locally in your browser. Your schema and your document are not uploaded to TechFixGen servers and are not included in analytics events, and remote $ref targets are never fetched — no account or signup is required.

Frequently asked questions

Which JSON Schema drafts are supported?

Draft-07 and 2020-12 are supported. The dialect is read from the schema's $schema value when present. If $schema is absent, 2020-12 is inferred when the schema uses keywords that only exist there — such as $defs, prefixItems, unevaluatedProperties or $dynamicRef — and draft-07 is assumed otherwise. Draft 2019-09, draft-06 and older are reported as unsupported rather than validated incorrectly.

Does this validator fetch remote schemas?

No. References are only resolved inside the schema you pasted, such as #/definitions/name or #/$defs/name. A $ref pointing at an http or https URL fails with an explanation instead of a network request, so nothing is ever downloaded.

Why does my schema pass validation but show warnings?

Warnings mean part of the schema is not being checked. The most common cause is a misspelled keyword: JSON Schema ignores any keyword it does not recognise, so a typo like requred instead of required turns a real constraint into no constraint at all. The same applies to an unknown format value or to a keyword from another draft. The warnings panel tells you exactly which keyword was skipped and where.

Does the JSON Schema Validator upload my data?

No. Validation runs entirely in your browser. Your schema and your document are not uploaded to TechFixGen servers and are not included in analytics events.

What is the difference between JSON syntax validation and schema validation?

Syntax validation asks whether the text is well-formed JSON at all. Schema validation goes further: it checks whether the data satisfies the shape, types and constraints you declared. A document can be perfectly valid JSON and still fail its schema, which is why both tools exist. Use the JSON Validator to confirm a document parses, then the JSON Schema Validator to confirm it matches your rules.

Can this validator rewrite my document or fix my schema?

No. It reports problems precisely — with document paths, JSON pointers, failing keywords and the schema location responsible — but it never modifies your input. Correcting data or schema stays a deliberate step you make.