JSON Schema Validator

Paste a JSON Schema on the left and a JSON value on the right. Every failure shows the failing keyword, the JSON Pointer to the instance, and a one-line message. Live, in your browser, no upload.

0 chars

0 chars

Result

Paste a schema and an instance to validate.
How this works
  • The validator covers the JSON Schema keywords most people actually use: type, enum, const, the string checks (minLength, maxLength, pattern, format), the number checks (minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf), the array checks (items as a subschema or tuple, additionalItems, minItems, maxItems, uniqueItems), and the object checks (required, properties, patternProperties, additionalProperties, minProperties, maxProperties, propertyNames).
  • Combinators are supported: allOf requires every branch, anyOf requires at least one, oneOf requires exactly one, not inverts, and if / then / else apply conditionally.
  • $ref resolves locally to #/definitions/foo or #/$defs/foo, possibly nested. Cross-document refs are not supported.
  • Recognised string format values: email, hostname, ipv4, ipv6, uri, uri-reference, uuid, date, date-time, time. Unrecognised formats are accepted without complaint (the spec's draft-07 behaviour).
  • The validator is strict: any keyword it doesn't recognise surfaces an unknown-keyword error rather than silently passing. That way a typo in requirred doesn't get missed.
  • Fail-fast mode stops at the first error. Off by default — you usually want the full list so you can fix them all in one pass.
  • Errors carry both instancePath (the JSON Pointer to the failing value, e.g. /users/2/email) and schemaPath (the JSON Pointer to the failing schema, e.g. #/properties/users/items/properties/email/format). Click any error to copy its paths.
  • Nothing leaves the browser. Schema, instance, and result all stay in this tab.