# The Complete Guide to JSON Schema (Draft-07 to 2020-12)
**JSON Schema** is a declarative vocabulary that allows you to annotate and validate the structure, constraints, and data types of JSON documents. It provides clear human- and machine-readable contracts for web APIs, automated testing, and client-side form validation.
---
## 1. Why Implement JSON Schema?
Without a formal schema, API endpoints often suffer from:
- Silent data corruption due to unexpected null or missing values.
- Vulnerabilities from unvalidated data types or excessive payload injection.
- Drift between written API documentation and actual runtime behavior.
By validating incoming payloads against a JSON Schema, you reject invalid requests at the network edge before they hit your database. You can automatically infer a schema from your payloads using our [JSON Schema Generator](/tools/json-schema-generator).
---
## 2. Anatomy of a Valid JSON Schema
Here is a standard JSON Schema adhering to **Draft 2020-12**:
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://aijsongenerator.com/schemas/user.json",
"title": "UserProfile",
"description": "A registered developer user profile",
"type": "object",
"required": ["id", "username", "email"],
"properties": {
"id": {
"description": "Unique identifier",
"type": "integer",
"minimum": 1
},
"username": {
"type": "string",
"minLength": 3,
"maxLength": 30
},
"email": {
"type": "string",
"format": "email"
},
"tags": {
"type": "array",
"items": { "type": "string" },
"uniqueItems": true
}
},
"additionalProperties": false
}
```
---
## 3. Core Validation Keywords
### Numeric Constraints:
- `minimum` / `maximum`: Inclusive bounds.
- `exclusiveMinimum` / `exclusiveMaximum`: Strict inequalities.
- `multipleOf`: Asserts that numbers are multiples of a value (e.g. `multipleOf: 0.01` for currencies).
### String Constraints:
- `minLength` / `maxLength`: Character count constraints.
- `pattern`: Regular expression validation (e.g. `"^[a-z0-9_-]+$"`).
- `format`: Built-in semantic validators such as `"email"`, `"uri"`, `"uuid"`, `"date-time"`, and `"ipv4"`.
### Object Constraints:
- `required`: Array of property names that must be present.
- `additionalProperties`: Set to `false` to forbid unknown, undeclared properties.
Validate your payloads against any schema instantly using our browser-based [JSON Schema Validator](/tools/json-schema-validator).
Technical Guide • 11 min read • Published 2026-10-31
The Complete Guide to JSON Schema (Draft-07 to 2020-12)
Learn how to formally specify and validate JSON data structures using JSON Schema. Covers $schema, core keywords, required properties, and automated validation.
🛠️
Interactive Tools Mentioned in this Guide
Test your JSON data and execute the techniques discussed above with our free in-browser developer utilities:
JSON Schema Generator
Infer a JSON Schema from sample JSON
JSON Schema Validator
Validate JSON data against a JSON Schema
JSON Schema to TypeScript
Generate TypeScript types from a JSON Schema
JSON Validator
Check if JSON is valid and show the exact error location
AI JSON Generator (HERO)
Generate JSON from a plain-English description — homepage hero