JSON Schema Validator
Check a JSON instance against an explicit Draft 7 schema. See structured error paths, supported checks and limits before exporting the report.
Schema: 64,000 UTF-8 bytes and 4,000 values. Instance: 100,000 bytes and 10,000 values. Each allows 40 nesting levels. Processing stays in your browser. Jobs stop after three seconds.
Example input is ready. Run the tool to produce a result.
Local validation with an explicit schema dialect
This tool uses Ajv 8 in a dedicated browser worker to validate JSON Schema Draft 7. A schema without $schema is treated as Draft 7. If you include $schema, use http://json-schema.org/draft-07/schema#; other drafts are rejected rather than silently reinterpreted. Both object schemas and boolean schemas are supported. JSON input must have strict syntax and unique object keys.
How to validate an instance
- Paste the schema in the first editor and the JSON instance in the second.
- Select Validate JSON or press Ctrl/Cmd + Enter in either editor.
- Read the local outcome and JSON Pointer diagnostics. An empty pointer means the root value; ~1 represents a slash in a property name and ~0 represents a tilde.
- Edit either input to clear the old result, then validate again. Copy or download the complete current report as JSON.
Understand the outcome
A matching instance satisfies the supported schema checks. An invalid instance has one or more reported failures, with an instance pointer and the schema rule pointer. A schema error can come from its meta-schema or an unsupported feature. Engine compilation or evaluation errors are reported separately. The engine does not coerce types, insert defaults or remove additional properties, and it stops normal validation at the first failing branch instead of promising a complete list of every error.
Does local processing guarantee offline use?
Your pasted input is processed in your browser and is not sent to a server for analysis. The page still needs its editor and worker files. Starting a new job can require network access even after an earlier successful run, depending on browser caching and server settings. If a worker asset cannot load, the tool clears the old result and reports an error. Restore access and run the tool again. This tool does not install an offline cache or guarantee offline availability.
References, formats and extensions
Only same-document $ref values using # or a #/ JSON Pointer are allowed. Their targets must exist; named anchors, remote URLs, relative files and nested $id values are unsupported. Root $id is metadata, not permission to load a URL. Unknown keywords, asynchronous schemas, custom code keywords and $data extensions are rejected. Format keywords, including email, date-time and URI, are annotations only and are not checked. Put essential constraints in supported type, enum, numeric or string keywords and review format rules separately.
Safety and resource limits
The schema is limited to 64,000 UTF-8 bytes and 4,000 values; the instance to 100,000 bytes and 10,000 values. Each allows 40 nesting levels. Every run uses a fresh worker that can be cancelled and is terminated after three seconds, including expensive regular-expression or recursive-schema work. No remote reference loader is configured. For a conservative boundary, property names __proto__, prototype and constructor are rejected anywhere in either JSON document, including data and annotations.
Ajv compiles schema validation code internally. Pasted JavaScript is never executed and custom keyword code is not accepted, but a browser policy that blocks trusted library code generation can prevent validation. Such failures produce an error rather than a valid result. JavaScript floating-point numbers are used: unsafe integer and non-finite values are rejected, and exact decimal arithmetic is not provided. Store large identifiers as strings; use another validation environment when exact numeric semantics are required.
Is this the same as validating in my application?
Only if the dialect, supported keywords, format configuration, number representation and engine options match. This tool is a local check for a bounded Draft 7 subset. Confirm your production validator's behavior separately, particularly for other schema drafts, formats, custom vocabularies and large or recursive schemas.
References
See the official Draft 7 specification , Ajv schema support, Ajv options and Ajv security guidance for the underlying behavior and tradeoffs.