OpenAPI, GraphQL, gRPC, AsyncAPI & SOAP breaking change detection.
See what is supported. Know what was checked.
API contract drift and schema drift describe changes in expected interfaces. Contract comparison, repository impact and validation are separate stages; format support alone does not establish every language and transport combination.
Contract support matrix
| Contract | Contract evidence | Repository and fix prerequisites |
|---|---|---|
| OpenAPI / JSON Schema | Operations, request and response schemas, references, and directional compatibility evidence. | Matched SDK or HTTP usage, the applicable schema context, and checks for the proposed edit. |
| GraphQL | Schema types, fields, and operation metadata through the GraphQL contract adapter. | Bound operations and a configured language/transport adapter. Intake alone does not establish a safe code rewrite. |
| protobuf / gRPC | Services, methods, message schemas, and native contract identity. | The matching protobuf symbols, codec, toolchain, and runtime scenario when that check is required. |
| AsyncAPI | Channels, operations, message payloads, and protocol metadata. | Configured transport, message bindings, codec, and scenario for the affected usage. |
| SOAP / WSDL / XSD | Service and operation bindings, XML schema context, and message or attachment metadata. | The applicable binding, encoding, references, and native message checks for the proposal. |
API compatibility guides and tools
- oasdiff and API code impact analysis answer different questions.
- Detect breaking API changes in a GitHub workflow.
- Why a TypeScript build can pass after an API changes.
- OpenAI OpenAPI breaking changes: a captured response change.
- Sentry OpenAPI breaking changes: removed replay query values.
- Inspect classification rules interactively
- Compare JSON Schemas
- Plan your business evaluation
Rule reference
request.enum_removed: Request enum value removedrequest.now_required: Request property becomes requiredresponse.removed: Response property removedresponse.now_optional_or_nullable: Response property becomes optional or nullablerequest.removed_unknown_strictness: Request property removed, server strictness unknown