JSON schema validation checks that your JSON data matches a defined schema document: required fields are present, types are correct, numeric values fall within declared ranges, and strings match expected patterns.
Loading JSON Validator…
Validate JSON syntax as a first step
Clear error messages for invalid JSON
Free and browser-based
Validate before testing against a schema
Drop the JSON Validator into any page — blog post, product docs, intranet, school portal — with a single line of HTML. Your visitors get the full tool, processed entirely in their browser. No backend, no uploads, no signup.
Embed code
<iframe
src="https://www.fixtools.io/json/json-validator?embed=1"
width="100%"
height="780"
frameborder="0"
style="border:0;border-radius:16px;max-width:900px;"
title="JSON Validator by FixTools"
loading="lazy"
allow="clipboard-write"
></iframe>Attribution-friendly: a small "Powered by FixTools" link appears in the embed footer.
JSON Schema is a vocabulary for annotating and validating JSON documents. It is separate from the JSON syntax specification, RFC 8259, and is published by the JSON Schema organisation as a series of incremental drafts rather than as an IETF standard. Draft-07, released in 2018, is the most widely deployed version in the wild and is the default behaviour in many tools, including older major versions of the AJV library. Draft 2019-09 and Draft 2020-12 introduced breaking changes worth knowing about: $recursiveRef and $dynamicRef replaced some recursive schema patterns, unevaluatedProperties and unevaluatedItems were added for stricter property control, and the definitions keyword was renamed to $defs. When picking a schema validator, confirm which draft it supports against the draft your schemas declare.
Beyond syntax checking, JSON Schema lets you express a rich set of constraints. You can specify the type of each field (string, number, integer, boolean, array, object, or null), put bounds on strings (minLength, maxLength, pattern for regex matching, and named formats like email or date-time), constrain numbers (minimum, maximum, exclusiveMinimum, multipleOf), enforce array rules (minItems, maxItems, uniqueItems, and the schema for individual items), shape objects (required properties, additionalProperties, propertyNames), and apply conditional logic with if/then/else or allOf/anyOf/oneOf composition. A schema validation failure produces structured output that names the exact JSON path, using JSON Pointer notation like /user/address/postcode, where the data deviated from the declared schema.
The practical workflow for any system that exchanges JSON is straightforward. Define a JSON Schema document for each data structure you care about, validate every incoming payload against that schema at the API boundary, and validate outgoing payloads in your test suite. Schema validation libraries exist for every major runtime: AJV for JavaScript and Node.js, jsonschema and python-jsonschema for Python, json-schema-validator for Java, JsonSchema.Net for .NET, jsonschema for Go. Before feeding any data to one of these libraries in development or production, confirm the JSON is syntactically valid first using a tool like FixTools. A schema validator receiving invalid JSON throws a generic parse error rather than a precise schema violation, and that loss of signal makes debugging slower than it needs to be.
Wiring schema validation into a CI pipeline is a high-leverage move that catches contract violations before they reach a deployed environment. A common pattern uses AJV in a small Node.js script that loads every schema in the schemas directory, glob-matches the corresponding example or fixture files in the repository, and runs each one through validate. The script exits with a non-zero status if any pair fails, which fails the pipeline step. For OpenAPI specifications, tools like Spectral and openapi-validator perform schema validation across the entire spec document in one pass and integrate cleanly with GitHub Actions or GitLab CI. The same approach works for runtime middleware: validate the request body against the route schema before the handler runs, and reject any non-conforming request with a 422 that includes the schema error path in JSON Pointer form. Pairing CI-time validation with runtime validation eliminates entire categories of integration bug.
Validate your JSON syntax with FixTools before running it through a schema validator.
Step-by-step guide to json schema validator:
Check JSON syntax first
Paste your JSON into FixTools and validate the raw syntax before doing anything else. Schema validators will either reject malformed input outright or behave unpredictably when handed JSON that does not parse, so confirming syntactic validity up front saves a debugging detour. The check completes in milliseconds for typical document sizes and runs entirely in your browser.
Fix any syntax errors
Correct each error reported by the syntax validator at the exact line and column it identifies, then revalidate. JSON parsers stop at the first fatal error, so one fix can sometimes reveal the next one waiting behind it. Continue this cycle until the document passes a clean syntax check with no errors reported anywhere in the input.
Proceed to schema validation
With clean parseable JSON in hand, test the document against your JSON Schema using a dedicated schema validator. Popular options include AJV for JavaScript and Node.js, jsonschema for Python, json-schema-validator for Java, and the online sandbox at jsonschema.net. Pick the one that matches your runtime so the validation behaviour mirrors what your application will see in production.
Common situations where this approach makes a real difference:
Backend API developer
A developer builds a user registration endpoint and writes a JSON Schema for the request body specifying that email is a required string matching an email pattern, age is an integer between 18 and 120, and additionalProperties is false. When a client sends a request that contains usr_name instead of username because of a typo at the integration partner, the schema validator returns a precise error stating that the additional property usr_name is not allowed at the root path. The API returns this as a clean 422 response with the schema error embedded, and the partner debugs their client without involving the API team.
Platform engineer
A platform engineer manages infrastructure-as-code configurations stored as JSON files in a monorepo. They define a JSON Schema for each config type and add schema validation to the CI pipeline using AJV in a Node.js step. A pull request adding a new config file fails CI with a single clear message: /resources/database/maxConnections must be integer, got string. The engineer locates the issue immediately: someone wrote "100" with quotes around it instead of the bare number 100. The schema catches a type error that pure syntax checking would have missed completely.
Mobile app developer
A mobile developer parses API responses to populate a user profile screen and the app occasionally crashes when the avatar field arrives as null instead of the expected string URL. They add JSON Schema validation immediately after the response parse, with the avatar field typed as a union of string or null. The schema validation now confirms the shape of every response before the data reaches the UI layer, the null case is handled explicitly with a placeholder image, and crash reports stop arriving from the field within a release cycle.
Data science team
A data science team ingests JSON event data from multiple upstream sources to train a machine learning model on user behaviour. They define a JSON Schema covering the expected event structure and run every incoming file through a schema validator as part of the data pipeline before features are extracted. Files containing missing required fields, wrong numeric types, or unexpected enum values are quarantined for human review rather than silently entering the training set. This catches upstream regressions early and prevents subtle data quality issues from biasing the model.
Get better results with these expert suggestions:
Always specify the $schema keyword
Including "$schema": "https://json-schema.org/draft/2020-12/schema" (or the matching URL for whichever draft you use) at the top of your schema document tells the validator which draft to apply. Without it, validators may default to different drafts depending on configuration and produce different results for the same input. Explicit schema versioning prevents subtle inconsistencies across environments, libraries, and tooling, and it documents your intent for anyone reading the schema later.
Use additionalProperties: false for strict validation
By default, JSON Schema allows objects to contain properties not listed in the properties keyword, which can hide typos in field names. Setting "additionalProperties": false rejects any property not explicitly declared in the schema, catching misspellings and stray keys at the boundary. In Draft 2020-12, unevaluatedProperties provides even more precise control when you are composing schemas with allOf or anyOf and need to reason about which properties were already covered by a subschema.
Validate syntax before schema testing
Schema validators typically throw an unhelpful parse error when handed syntactically invalid JSON, rather than reporting a schema violation. Run a syntax validation pass first using FixTools or your runtime native parser, fix any issues that surface, and only then run the schema validator. Separating the two failure modes makes each error message more meaningful and prevents the schema team from chasing a problem that actually belongs to the upstream serialiser.
Use JSON Pointer paths in error messages
AJV and most schema validators report errors using JSON Pointer notation defined by RFC 6901: paths like /items/2/price mean the price field in the third element of the items array, counting from zero. Learning this notation makes schema validation error output immediately actionable rather than requiring manual traversal of a deeply nested data structure to locate the offending value. Most schema validator GUIs let you click the pointer to jump straight to the field.
More use-case guides for the same tool:
Open the full JSON Validator — free, no account needed, works on any device.
Open JSON Validator →Free · No account needed · Works on any device