Paste a schema and JSON instance.

What this tool does

A plain JSON validator only tells you whether the syntax is valid. A JSON Schema validator goes further by checking whether the data matches the expected contract: correct types, required fields, allowed values, and nested object rules.

That makes this page useful for APIs, test fixtures, config validation, and any workflow where “valid JSON” is not enough on its own.

Common use cases

  • Checking API responses against an expected shape.
  • Validating request bodies before sending them.
  • Testing fixture data in front-end or back-end code.
  • Explaining data contracts to teammates with a real schema example.

Input and output example

{
  "type": "object",
  "required": ["id"],
  "properties": {
    "id": { "type": "number" }
  }
}
{
  "id": 42
}
Schema validation passed.

How to use this tool

  1. Paste the JSON Schema into the first panel.
  2. Paste the JSON instance into the second panel.
  3. Click Validate Against Schema.
  4. Review the result and fix any path-level errors reported by the validator.
Your JSON and schema are processed in your browser and are not uploaded to our servers.

Common errors

  • Required properties may be missing even when the JSON is syntactically valid.
  • Values can fail because the type is wrong, such as a string where a number is expected.
  • Enum checks fail when the value is outside the allowed list.
  • Nested arrays and objects can break contract rules deeper than the top level.

Related tools

FAQ

Is schema validation the same as syntax validation?

No. Syntax validation only checks whether the JSON can be parsed. Schema validation checks whether it matches the expected contract.

Can I test nested arrays and objects?

Yes. Nested properties and array items can be validated through the schema.

What if the schema itself is invalid JSON?

Fix the schema syntax first, then run the schema validation again.

Can I use this while debugging API responses?

Yes. It is useful when the response shape, not just the syntax, may be causing issues.