jsonschema
An implementation of JSON Schema validation for Python
Decision gist · record as of 2026-08-14
Yes. jsonschema is a mature, actively maintained, widely-adopted library with no known vulnerabilities, permissive MIT licensing, and low install friction. It solves a core problem—validating structured data against schemas—with a simple API and broad schema standard support. Install it if you need to validate JSON or JSON-like data structures.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later
- Low friction installation with four runtime dependencies.
- Actively maintained with recent releases; last commit 2026-08-10.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects.
last release 2026-01-07 (219 days) · last repo commit 2026-08-10 · 4,968 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 596,925,041 downloads/mo, #57 on PyPI
Alternatives
Verify before relying
from jsonschema import validate
schema = {"type": "object", "properties": {"price": {"type": "number"}}}
validate(instance={"price": 34.99}, schema=schema)- Performance characteristics when validating large or deeply nested JSON structures
- Whether optional format validation extras (format, format-nongpl) are commonly needed in practice
What it is and what it does
jsonschema is a Python implementation of the JSON Schema specification that validates data structures against schema definitions. It supports Draft 2020-12, Draft 2019-09, Draft 7, Draft 6, Draft 4, and Draft 3 schemas. The core function is straightforward: pass an instance and a schema to validate(), and it either succeeds silently or raises a ValidationError with details about what failed. For more detailed error reporting, you can iterate through all validation errors rather than stopping at the first one.
The package depends on attrs, jsonschema-specifications, referencing, and rpds-py for its core functionality. It's designed for developers who need to enforce data structure contracts—checking that incoming JSON conforms to expected types, required fields, and constraints before processing. Optional extras for format validation are available but not required for basic schema validation.
Use it for
- Validate API request/response payloads against a schema before processing or returning them
- Check configuration file structure at startup to catch malformed configs early
- Enforce data contracts in microservices or event-driven systems
- Test data fixtures against expected schemas in unit tests
- Programmatically query which fields or items failed validation for detailed error reporting
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
jsonschema is a mature, actively maintained, widely-adopted library with no known vulnerabilities, permissive MIT licensing, and low install friction. It solves a core problem—validating structured data against schemas—with a simple API and broad schema standard support. Install it if you need to validate JSON or JSON-like data structures.
Install
jsonschema on PyPI
Before you install
Low friction installation with four runtime dependencies. Actively maintained with recent releases; last commit 2026-08-10. Widely adopted (top 100 PyPI packages by downloads).
Requires Python 3.10 or later
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects.
Quickstart
from jsonschema import validate
schema = {"type": "object", "properties": {"price": {"type": "number"}}}
validate(instance={"price": 34.99}, schema=schema)
Verify before relying
- Performance characteristics when validating large or deeply nested JSON structures
- Whether optional format validation extras (format, format-nongpl) are commonly needed in practice
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesattrsjsonschema-specificationsreferencingrpds-py |
| Maintenance | Actively maintained 219 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 596,925,041 / month, #57 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: File Formats :: JSONTopic :: File Formats :: JSON :: JSON Schema |
Evidence: jsonschema-4.26.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “data validation against schema”
- jsonschemajsonschema validates Python data structures against JSON Schema…
- fastjsonschemaValidates JSON data against JSON Schema specifications using compiled…
- openapi-schema-validatorValidates data and schemas against OpenAPI Schema Specification…
Give your agent the search over MCP, or paste the wish link into any chat.
More JSON packages
Resolves JSON references according to JSON Schema and related specifications, providing a standard way to handle $ref pointers in JSON documents.
Provides JSON Schema metaschemas, vocabularies, and specification files packaged as a Python-accessible Registry for runtime schema validation and reference resolution.
Install it if you are building validation tooling or using a validator that depends on it; it adds negligible friction.
A fast JSON parser that converts bytes into Python objects, offering tuning options for string caching, partial parsing, duplicate key detection, and float representation.
Install only if performance or parsing control (partial mode, duplicate detection, float precision) matters for your use case.
Generates country- and subdivision-specific government holiday calendars on demand, supporting 250 country codes with optional language localization and holiday categories.
GenSON generates JSON Schema documents from JSON objects and can merge multiple schemas together, inferring a unified schema that describes the common structure of your data.
jsonschema-rs validates JSON data against JSON Schema documents using a Rust-backed implementation for high performance, supporting drafts 4 through 2020-12 with customizable format validators and keywords.
Install it if you validate JSON frequently or need to support multiple schema drafts.
See also check-jsonschema · eido · pycsvschema · jsonschema-typed-v2 · jschon · spdx3-validate · marshmallow-jsonschema · webargs