# What changed in jsonschema

> 16 changes in jsonschema 4 from its official release notes, upgrade guides and advisories: 3 breaking, 5 deprecations, 4 new APIs and options. Each one cited. Sources checked 2026-10-23. HTML: https://unstale.sh/pypi/jsonschema/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## jsonschema 4

### Breaking changes

- DEFAULT_TYPES and the legacy validator type-specification mechanism were removed; customize Python types with TypeChecker. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- False and 0 are now properly considered non-equal, including recursively within a container. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- Support for Python 2 was dropped, and python_requires was properly set. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)

### Deprecations

- jsonschema.__version__ was deprecated. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- jsonschema.RefResolver.in_scope was deprecated. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- jsonschema.validators.meta_schemas was deprecated. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- jsonschema.validators.validators was deprecated. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- Passing a second-argument schema to Validator.iter_errors was deprecated. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)

### New APIs and options

- Partial support was added for Draft 2020-12, as well as 2019-09. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- Validation errors now expose a json_path attribute describing their location in JSON path format. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- The CLI option controls output format, accepting plain (the default) or pretty. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- Validators should use TypeChecker to customize the set of Python types corresponding to JSON Schema types. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)

### Behavior and default changes

- Validators no longer import urllib.request at import time, avoiding that import-time side effect for developers importing the package. (4.26.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.26.0)
- Validation may be slower in some cases following the equality change. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)

### Fixes and other changes

- Support for IP address and domain name formats was improved. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
- When sufficiently large numbers cause overflow, validation now falls back to fraction division. (4.0.0) — [release notes](https://github.com/python-jsonschema/jsonschema/releases/tag/v4.0.0)
