🔍

JSON Schema Validator

Validate JSON data against a JSON Schema.

Input
JSON Schema
Validation Result

📖 What is JSON Schema Validator?

JSON Schema Validator checks whether a JSON document conforms to a JSON Schema definition. Paste your schema and data, and get instant validation results with detailed error messages showing exactly which fields fail and why. Use it for API contract testing, form validation debugging, or verifying config files against their schema. Everything runs in your browser.

💡 Example

Input
Schema: {"type":"object","properties":{"age":{"type":"integer"}}} Data: {"age":"thirty"}
Output
✗ Invalid — /age: expected integer, got string

🛠️ Common Use Cases

  • Testing API request/response payloads against OpenAPI schemas
  • Debugging JSON Schema validation errors
  • Verifying configuration files match their expected schema
  • Testing form validation rules before implementing in code
  • Checking generated data against contract schemas

📝 JSON Schema Keywords

  • type — string, number, integer, boolean, object, array, null
  • required — list of required property names
  • properties — sub-schemas for each object property
  • items — schema for array elements
  • enum — list of allowed values
  • pattern — regex pattern for strings
  • minimum/maximum — numeric bounds

⚠️ Common Mistakes

  • Wrong type keyword — use "integer" for whole numbers and "number" for decimals. A schema with "integer" rejects 3.14.
  • Missing required array — properties alone don't make fields required. Add a "required" array explicitly.
  • Schema version mismatch — errors may differ between Draft-04, Draft-07 and 2020-12. Check which version your tools expect.

❓ Frequently Asked Questions

Which JSON Schema draft versions are supported?
This validator supports Draft-07, which is the most widely used version. Most schemas are compatible across Draft-04, Draft-07 and 2020-12 for basic validation.
Can I validate nested objects?
Yes — define sub-schemas in the "properties" object. Nested objects are validated recursively.
What does "additionalProperties: false" do?
It rejects any properties not explicitly defined in the schema. Without it, extra fields are silently accepted.
Is my data private?
Yes — all processing runs entirely in your browser. Your data is never sent to any server.
Is this tool free?
Completely free — no login, no usage limits, works offline once loaded.
Yes — completely free, no login required, no usage limits.
Is my data private?
Yes — all processing runs in your browser. Your data is never sent to any server.
Does it work offline?
Yes — once the page is loaded, the tool works without an internet connection.
🔒
Your data stays private. All processing happens entirely in your browser using JavaScript. Nothing is ever sent to our servers. You can even use this tool offline after the page loads.