bravado-core
Library for adding Swagger support to clients and servers
What it is and what it does
bravado-core is a Python library that implements client-side and server-side support for OpenAPI Specification v2.0 (formerly Swagger). It provides schema validation, request/response marshaling and transformation, and custom type conversion through a pluggable format system. The library represents API models as either Python classes or dictionaries, making it suitable for both strongly-typed and flexible use cases.
The package depends on jsonschema for schema validation, requests for HTTP operations, pyyaml for configuration parsing, and several utility libraries for date handling and serialization. It is actively maintained, supports Python 3.8 through 3.11, and has no known security vulnerabilities. The library is intended for developers building OpenAPI-compliant clients or servers who need robust schema validation and data transformation.
Use it for:
- Validate incoming API requests and responses against an OpenAPI v2.0 schema in a server application.
- Marshal Python objects to and from JSON/YAML request and response bodies with automatic type conversion.
- Build a Python client that enforces OpenAPI schema constraints during request construction.
- Define custom format handlers to convert between OpenAPI types and Python domain objects.
- Integrate OpenAPI schema validation into a REST framework or API gateway.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
bravado-core validates, marshals, and transforms OpenAPI Specification v2.0 schemas for Python clients and servers, handling request/response validation and type conversion.
Yes. bravado-core is actively maintained, has no known vulnerabilities, supports current Python versions (3.8–3.11), and carries a permissive BSD 3-Clause license. Low install friction and a stable API make it a solid choice for projects that need OpenAPI v2.0 schema validation and marshaling. Install it if you are building or consuming OpenAPI v2.0 APIs in Python.
Install
bravado-core on PyPI
pip
pip install bravado-coreuv
uv add bravado-corepoetry
poetry add bravado-coreInstalling bravado-core
Before you install
Low install friction with a pure-Python wheel distribution. Active maintenance with a recent release (94 days ago) and an actively maintained repository.
License in practice
BSD 3-Clause is permissive; you can use, modify, and distribute bravado-core with minimal restrictions, provided you include the license notice.
Quickstart
pip install bravado-core
from bravado_core.spec import Spec
from bravado_core.spec_dict import build_spec_dict
spec_dict = build_spec_dict()
spec = Spec.from_dict(spec_dict)
Requires Python 3.8 or later.
Verify before relying
- Whether the package supports OpenAPI v3.x in addition to v2.0, or only v2.0 as stated in the description.
- Performance characteristics when validating large or deeply nested schemas.
Package facts
| License | BSD 3-Clause (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — jsonref, jsonschema, python-dateutil, pyyaml, requests, simplejson, six, swagger-spec-validator, pytz, msgpack |
| Maintenance | actively maintained — 94 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 431,035/month — #6,722 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bravado_core-6.4.1-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
bravadoBravado generates a dynamic REST client from an…
permissive · top 15,000 on PyPI
openapi-spec-validatorValidates OpenAPI specifications (versions 2.0,…
permissive · top 1,000 on PyPI
swagger-spec-validatorValidates Swagger/OpenAPI specifications…
permissive · top 15,000 on PyPI
openapi-coreValidates and unmarshals OpenAPI v3.0, v3.1,…
permissive · top 5,000 on PyPI
drf-yasgGenerates Swagger/OpenAPI 2.0 specifications…
permissive · top 5,000 on PyPI
apispecGenerates OpenAPI specification documents from…
permissive · top 5,000 on PyPI
django-rest-swaggerGenerates Swagger UI documentation and OpenAPI…
permissive · top 15,000 on PyPI
prancePrance parses and validates Swagger/OpenAPI 2.0…
unclear · top 5,000 on PyPI
openapi-codecConverts between OpenAPI/Swagger schemas and…
permissive · top 15,000 on PyPI
coreapiA Python client library for interacting with…
permissive · top 5,000 on PyPI