Omnikit
DevFilesMoneyAll tools
Ctrl K
Dev toolsFile toolsMoney calculatorsAll tools
HomeDeveloper toolsJSON Schema Validator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

JSON Schema Validator

dev

Validate JSON against a JSON Schema (2020-12, 2019-09, draft 7), with each error located

Runs in your browser. Nothing you type is sent anywhere. Checked against sources on 16 Oct 2026.

A JSON Schema validator checks that a JSON document has the shape a schema describes: the right types, the required properties, values within limits and no unexpected keys. This one supports drafts 2020-12, 2019-09, 7, 6 and 4, passes 1,652 cases of the official test suite, and points at each failing value by path and line.

Next:
  • JSON to Zod Paste a JSON sample and get a Zod schema with its z.infer type, ready to copy
  • JSON Formatter & Validator Format, validate, minify and sort JSON with exact error positions

How to validate JSON against a JSON Schema

1

Paste the schema into the Schema pane and the JSON into the Data pane, or click Try an example.

2

Read the result: Valid, or a list of errors, each with the path of the value and what is wrong.

3

Click an error to put the cursor on that value in the Data pane, fix it, and the list updates as you type.

4

Turn on Check formats to also test email, date-time, URI and the other common formats.

About the JSON Schema Validator

JSON Schema is the standard way to describe what valid JSON looks like, used by OpenAPI, form builders, config files and data pipelines. Paste a schema and a document, and the result updates as you type.

What is checked. Every assertion in the validation vocabulary: type, enum, const, number limits and multipleOf, string length and pattern, array length, uniqueItems, contains, object size, required, dependentRequired, and the applicators properties, patternProperties, additionalProperties, items, prefixItems, allOf, anyOf, oneOf, not and if/then/else. References with $ref follow JSON pointers, $defs, definitions, $id and $anchor inside the schema.

Which draft. The draft comes from $schema, or 2020-12 when the schema names none, and you can override it. The differences matter: in draft 7, items with an array checks each position and keywords beside $ref are ignored; in 2020-12 positions move to prefixItems and $ref combines with its siblings.

Formats. Since 2019-09, format is an annotation, not a check. Turn on Check formats to test email, date-time, date, time, uri, uuid, ipv4, ipv6 and hostname anyway, as most people expect.

Errors you can act on. Each error gives the path of the failing value, such as /tags/1, its line in the Data pane, and the rule it broke. Click it and the cursor lands on that value.

What it does not do. unevaluatedProperties, unevaluatedItems and $dynamicRef are not evaluated, and a $ref to a schema on another server is not fetched. The page says so whenever a schema uses one, instead of passing the data silently.

Generate a schema. Paste a sample instead, and a starting schema is written from it, ready to tighten.

The validator is tested against the official JSON-Schema-Test-Suite. Everything runs in your browser; nothing you paste is sent anywhere.

Frequently asked questions

How do I validate JSON against a schema?

Paste the schema into the Schema pane and the JSON document into the Data pane. The result appears at once: Valid, or a list of errors, each naming the path of the bad value, such as /items/2/price, and the rule it broke, such as minimum 0. Fix the data or the schema and the list updates as you type.

Which JSON Schema version should I use?

Use 2020-12 for new schemas: it is the current specification and what OpenAPI 3.1 uses. Draft 7 remains common in older tools and libraries. Declare the version in $schema, for example https://json-schema.org/draft/2020-12/schema, because array tuples, $ref and dependencies behave differently between versions.

What does additionalProperties false do?

Setting additionalProperties to false makes any property not listed in properties, and not matched by patternProperties, an error. A typo such as emial instead of email is then caught instead of ignored. Properties added through allOf in another subschema are not seen, which is a common surprise; list them in the same schema.

Why does my email pass even though it is invalid?

Since 2019-09 the format keyword is only an annotation by default, so validators are not required to check it. Turn on Check formats here to test email, date-time, date, time, uri, uuid, ipv4, ipv6 and hostname. In code, libraries such as Ajv need format checking switched on separately too.

What is the difference between required and minProperties?

required names the exact properties that must be present, such as id and email, while minProperties only counts them: minProperties 2 accepts any two keys. A property listed in properties but not in required is optional, and when present it must still match its own schema.

Can I create a JSON Schema from a JSON example?

Yes. Switch to Generate schema and paste a sample in the Data pane: a 2020-12 schema is written with every property typed and the keys present in all records marked required. A sample cannot show limits, formats or allowed values, so add minimum, format and enum by hand before relying on it.

Sources

  • JSON Schema 2020-12: Core and Validation specificationsEvery keyword, $ref resolution with $id and $anchor, format as an annotation
  • JSON Schema draft-07 Validation (IETF draft-handrews-json-schema-validation-01)items/additionalItems, dependencies, $ref overriding its siblings
  • JSON-Schema-Test-Suite (official), drafts 2020-12 and 7The 1,652 test cases this validator passes
  • RFC 3339, Date and Time on the Internet: Timestamps (IETF)The date-time, date and time formats

Last verified 16 October 2026.

Rates and rules change; check the source before you rely on a figure.

Still stuck? Ask about JSON Schema Validator and anybody who knows can answer. No account needed.

Common uses

  • JSON Schema GeneratorGenerate a JSON Schema from a sample JSON document, with types and required keys

Same job, other tools: Twitter Card Validator – Check twitter:card tags and the og: tags X falls back to · Link Preview Checker – Find the missing tag behind a WhatsApp or Slack link with no picture · Readability Checker – Flesch reading ease and grade level, with what to change · User-Agent String Checker – Check what a user-agent string can and cannot tell you before you rely on it.

On the related tools: JSONPath Evaluator – Evaluate a JSONPath expression and get the matching values and their paths.

Related tools

All developer tools
Regex TesterTest JavaScript regular expressions with live highlighting and a plain-English explanationDiff CheckerCompare two texts side by side and see every added and removed lineJSON DiffCompare two JSON documents and list every added, removed and changed valueOpen Graph PreviewPaste a page and see the share card for Facebook, LinkedIn, X, WhatsApp and SlackKeyword Density and ReadabilityWord and phrase counts, densities, reading time and a Flesch readability scoreHTTP Status CodesEvery HTTP status code, what it means, when to send it and the RFC it comes fromUser-Agent ParserRead a user-agent string: browser, engine, OS, device type and whether it is a botJSONPath TesterRun RFC 9535 JSONPath queries on pasted JSON and see every match highlighted
Was this tool helpful?
Omnikit

Small jobs, done in your browser. Free, fast and private. Files are never uploaded.

Files

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Dev

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Money

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuidesQuestionsAboutHow we checkLaw library (beta)PrivacyTermsDisclosureContactMore: Exam practice (UGC NET Paper 1)Runs in your browser. Nothing is uploaded. © 2026 Omnikit (theomnikit.com)