Validate JSON data against a JSON Schema. Instant feedback on errors.
JSON Schema is a vocabulary that lets you validate the structure of JSON data. It defines what properties are allowed, what types they must be, which fields are required, and constraints like minimum/maximum values, string patterns, and array lengths. It's used in API documentation (OpenAPI/Swagger), form validation, configuration files, and data pipelines.
A schema is itself a JSON object with keywords like "type" (string, number, object, array, boolean, null), "properties" (defines object fields), "required" (mandatory fields), "minimum"/"maximum" (number constraints), and "pattern" (regex for strings). Schemas can be nested — an object property can itself have a schema with its own constraints.
Validation catches errors early — before data reaches your database, your API consumers, or your application logic. Instead of writing manual if/else checks for every field, you define the contract once as a schema and validate against it. This tool implements a lightweight client-side validator supporting the most common JSON Schema Draft 7 keywords.
This tool in other languages:
Français:
Validateur de schéma JSON
Español:
Validador de esquema JSON
Deutsch:
JSON-Schema Validator
Português:
Validador de esquema JSON
日本語:
JSONスキーマバリデーター
中文:
JSON Schema 验证工具
한국어:
JSON 스키마 검증기
العربية:
مدقق مخطط JSON
Paste your JSON data in one panel and your JSON Schema in the other, then click Validate. The tool reports whether the data matches the schema, and if not, lists each validation error with its path and description.
JSON Schema Draft 2020-12 and backward-compatible with Draft 7. Most fields (type, properties, required, enum, pattern, minLength, etc.) work across drafts. Complex features like $dynamicRef require Draft 2020-12.
Schema validation is declarative — you describe what valid data looks like, and a validator handles the edge cases. Types, required fields, string patterns, number ranges, enums, nested object shapes, and arrays all get validated in one pass. Saves dozens of lines of imperative checking code.
Start with {"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer","minimum":0}},"required":["name"]}. This says: the data is an object, it must have a string name, and an optional non-negative integer age.
API contract validation (OpenAPI/Swagger uses JSON Schema), configuration file validation (like package.json, tsconfig.json), form validation libraries, and message queue payload validation. It's the de facto standard for describing JSON data shapes.