Skip to main content

ApiGuard — OpenAPI Breaking Change Detector

Detect breaking changes in your API specs before they reach production.

ApiGuard compares two OpenAPI 3.x specifications and identifies every breaking change, non-breaking change, and deprecation — with severity levels, rule IDs, and CI-ready output.

pip install kryptorious-apiguard

Quick Start

# Compare two specs
apiguard diff openapi-v1.yaml openapi-v2.yaml

# JSON output for CI pipelines
apiguard diff old.yaml new.yaml --format json

# Fail CI on any breaking change
apiguard diff old.yaml new.yaml --fail-on warning

What It Detects

Severity Category Examples
🔴 CRITICAL Removed endpoint, removed response status, removed required path param
🟠 HIGH Changed parameter type, added required param, removed required property
🟡 MEDIUM Removed enum value, changed response property type
⚠️ WARNING Deprecated endpoint, deprecated parameter
ℹ️ INFO Added endpoint, added optional param, added response field

30+ detection rules covering paths, parameters, responses, request bodies, and deprecations.

Output Formats

apiguard diff v1.yaml v2.yaml                    # Rich terminal table (default)
apiguard diff v1.yaml v2.yaml --format json      # Machine-readable JSON
apiguard diff v1.yaml v2.yaml --format markdown  # Markdown report
apiguard diff v1.yaml v2.yaml --format sarif     # SARIF (Premium)

CI/CD Integration

# .github/workflows/api-check.yml
name: API Breaking Change Check
on: [pull_request]
jobs:
  api-guard:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pip install kryptorious-apiguard
      - run: apiguard diff main-openapi.yaml pr-openapi.yaml --format json --fail-on error

Comparison

Feature ApiGuard openapi-diff Spectral
Native Python ✅ ❌ (Java) ✅ (JS)
Breaking change detection ✅ Full ✅ ❌ (linting only)
Severity levels ✅ 6 levels ✅ 3 levels ❌
SARIF output ✅ Premium ❌ ❌
$ref resolution ✅ Local ✅ Full ✅
CI exit codes ✅ ✅ ✅
Install size ~2MB ~50MB+ ~10MB

Premium

Upgrade to Premium ($9 lifetime) for:

  • SARIF output — GitHub Advanced Security integration
  • CI annotations — Inline PR comments on breaking changes
  • Custom rules — Define your own breaking change policies
  • Team dashboards — Track API stability over time
  • Priority support

Get Premium — $9 Lifetime

Requirements

  • Python 3.9+
  • Handles OpenAPI 3.0 and 3.1 specs
  • Supports JSON and YAML input

License

MIT — free for personal and commercial use. Premium features require a license.

Built by Kryptorious Quantum Biosciences.

Metadata

Release files for kryptorious-apiguard 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kryptorious-apiguard 1.0.1
File Size Uploaded Provenance Actions
kryptorious_apiguard-1.0.1.tar.gz 26.3 kB Without provenance Details for kryptorious_apiguard-1.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for kryptorious-apiguard 1.0.1
File Interpreter ABI Platform Actions
kryptorious_apiguard-1.0.1-py3-none-any.whl Python 3 none any Details for kryptorious_apiguard-1.0.1-py3-none-any.whl

Total release size: 54.3 kB

Release files / kryptorious_apiguard-1.0.1.tar.gz

Download URL kryptorious_apiguard-1.0.1.tar.gz
Size 26.3 kB
Tags Source
SHA-256 checksum
How to use checksums
eb575e81e4e28832833baf3b2c2d73cb82a0fd740ff11b69a977368ae4b14eb6
BLAKE2b-256 checksum
How to use checksums
5b6732908f122651495b946f7fd15cdcf182bc5c37b9d150dc06bbb62ea23db6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / kryptorious_apiguard-1.0.1-py3-none-any.whl

Download URL kryptorious_apiguard-1.0.1-py3-none-any.whl
Size 28.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9eb4e0cb30605f826333a72c559e5712e0a678eb951ca189e5cdc106d1419550
BLAKE2b-256 checksum
How to use checksums
a3582092db2ed8bc4d8a87794e316105b7e8b815d50e9ed63f58e3104348ba9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Security for kryptorious-apiguard 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page