# What changed in openapi-schema-validator

> 17 changes in openapi-schema-validator 0.7 to 0.9 from its official release notes, upgrade guides and advisories: 8 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/pypi/openapi-schema-validator/

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

## openapi-schema-validator 0.9

### Breaking changes

- In OpenAPI 3.1 and 3.2, discriminator is only a hint or annotation and no longer drives schema selection or changes validation outcomes. (0.9.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.9.0)
- Properties marked as required are now enforced during validation. (0.9.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.9.0)

## openapi-schema-validator 0.8

### Breaking changes

- By default, validate uses a local-only empty registry and does not retrieve remote $ref targets. Pass an explicit registry to resolve external references, or set allow_remote_references=True to accept jsonschema's default remote retrieval behavior. (0.8.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.8.0)

### Performance

- An optional schema-check fast path speeds up validate(). (0.8.1) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.8.1)
- validate() is sped up with validator caching. (0.8.1) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.8.1)

## openapi-schema-validator 0.7

### Breaking changes

- OAS 3.0 byte format validation now enforces strict base64. (0.7.3) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.3)
- The official OAS 3.2 dialect is supported and set as the default. (0.7.3) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.3)
- With schema type string, OAS30Validator now accepts only str; previously it accepted both str and bytes. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)
- Drops support for Python 3.8 and 3.9. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)
- False values for readOnly and writeOnly are ignored. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)

### New APIs and options

- An optional ecma-regex backend enables strict OpenAPI pattern validation. (0.7.3) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.3)
- Adds OAS 3.1 dialect registration and validator discovery. (0.7.2) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.2)
- Adds the OAS32Validator API for validating OpenAPI 3.2.0 documents. (0.7.1) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.1)
- Adds a strict validator for OAS 3.0 schemas. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)

### Fixes and other changes

- Fixes discriminator handling for non-object instances. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)
- Adds support for Python 3.12, 3.13, and 3.14. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)
- Narrows handling around unresolved references. (0.7.0) — [release notes](https://github.com/python-openapi/openapi-schema-validator/releases/tag/0.7.0)
