JSON Schema Validator Validate JSON Against Schema Free Online
Paste your JSON and your schema, and instantly see every validation error with its exact property path. Supports all major JSON Schema drafts. No sign up, no server, runs entirely in your browser.
How This JSON Schema Validator Works
This JSON schema validator runs a complete Draft-07 compatible validation engine directly in your browser. Paste a JSON document on the left and a JSON Schema on the right, hit Validate, and every constraint violation is reported immediately with the exact property path where it failed.
The validator covers type checking, required fields, property constraints (minimum, maximum, minLength, maxLength, pattern), array constraints (minItems, maxItems, uniqueItems), enum and const values, combination keywords (anyOf, oneOf, allOf, not), and basic format validation for email, date, date time, uri, and uuid.
Each error message shows the JSON path (e.g. #/address/postcode) and the schema keyword that failed, so you know exactly what to fix without guessing.
What this tool does
How to use it
Paste your JSON
Paste or type your JSON document in the left panel. Use Format to pretty print it.
Paste your schema
Paste your JSON Schema in the right panel. Try an example to see the format.
Click Validate
Validation runs instantly. You see a green pass or a list of errors with paths and messages.
Fix and re validate
Edit the JSON, click Validate again. Iterate until all errors are resolved.
Questions About the JSON Schema Validator
JSON Schema is a vocabulary that lets you annotate and validate JSON documents. It defines the structure of valid JSON, which fields are required, what types values must be, what patterns strings must match, and what numeric ranges are acceptable. It is widely used in REST APIs (OpenAPI/Swagger), configuration file validation, database document validation, and data pipelines.
The validator uses a Draft-07 compatible engine that covers the core keywords of Draft 04, 06, 07, 2019 to 09, and 2020 to 12. The differences between drafts mainly affect features like unevaluatedProperties, dynamic references, and vocabulary annotations. The vast majority of real world schemas validate correctly regardless of which draft they target.
The error path uses JSON Pointer notation (RFC 6901). A path like #/address/postcode means the error is at root → address property → postcode property. For arrays, #/items/2/name points to the name field of the third item (index 2). The path lets you locate the exact field that violated the schema without scanning the entire document.
Yes, internal $ref references that point to definitions within the same schema (e.g. #/definitions/Address) are resolved and validated. External $ref URIs pointing to remote schemas are not fetched, since this tool runs offline in your browser. For external references, inline the referenced schema into the $defs or definitions section of your schema.
The format keyword validates: email (RFC 5322 pattern), date (YYYY-MM-DD), date time (ISO 8601), time (HH:MM:SS), uri (basic URL structure), uuid (8 to 4 to 4 to 4 to 12 hex groups), ipv4, and ipv6. Per JSON Schema spec, format validation is optional and does not cause a validation failure by default, this tool enables it so you see format errors as warnings.
Use the items keyword in your schema: {“type”:”array”,”items”:{“type”:”object”,”required”:[“id”],”properties”:{“id”:{“type”:”integer”}}}}. Every element in the array is validated against the items schema, and each error is reported with its array index in the path, like #/2/id for a missing id on the third element.
No. The entire validation engine runs in your browser as JavaScript. Your JSON document and schema never leave your machine. This makes the tool safe to use with internal API payloads, configuration files containing credentials, or any sensitive data you would not want to upload to a third party server.
Yes. OpenAPI 3.x schemas are JSON Schema Draft-07 compatible. Extract the schema object from your API spec (the content → schema block for a given request or response), paste it here, and validate sample payloads against it. This is a fast way to test that a request body is correct before building a full integration test suite.