Structural Diffing
Recursive schema comparison that walks both contract trees node-by-node, detecting additions, removals, type changes, and constraint modifications at every depth.
Detect breaking changes across API contract versions with structured analysis, severity classification, and migration guidance.
The Contract Diff Analyzer accepts before and after versions of an API contract and returns a structured change analysis. Every modification is classified by type, breaking status, and severity so teams can assess upgrade risk before deploying. The engine performs recursive schema comparison augmented by LLM-powered semantic analysis to catch subtle meaning shifts that purely structural tools miss.
Analyze diffs across the most widely adopted API contract specifications.
Full support for OpenAPI 3.0 and 3.1 specifications including paths, schemas, parameters, and security definitions.
Schema diffing for types, queries, mutations, subscriptions, enums, interfaces, and directives.
Proto2 and Proto3 message, service, and enum definition comparison with field number tracking.
Draft-07 and 2020-12 schema comparison with $ref resolution, composition keywords, and conditional logic.
Event-driven API contract comparison for channels, messages, bindings, and server definitions.
Every detected change is classified by its impact on existing consumers.
| Change Type | Breaking | Severity |
|---|---|---|
| Required field added to request | Yes | High |
| Field removed from response | Yes | High |
| Field type changed | Yes | High |
| Enum value removed | Yes | Medium |
| Optional field added to response | No | Low |
| Enum value added | No | Low |
| Description / example changed | No | Info |
| Field made optional (was required) | No | Low |
Submit two contract versions and receive a detailed change analysis.
{
"before": {
"format": "openapi3",
"content": "openapi: 3.0.3\npaths:\n /users:\n get:\n responses:\n '200':\n content:\n application/json:\n schema:\n type: object\n properties:\n id:\n type: integer\n name:\n type: string\n email:\n type: string"
},
"after": {
"format": "openapi3",
"content": "openapi: 3.0.3\npaths:\n /users:\n get:\n responses:\n '200':\n content:\n application/json:\n schema:\n type: object\n properties:\n id:\n type: string\n name:\n type: string\n avatar_url:\n type: string"
},
"options": {
"include_semantic_analysis": true,
"suggest_migrations": true
}
}
{
"summary": {
"total_changes": 3,
"breaking_changes": 2,
"risk_level": "medium"
},
"changes": [
{
"path": "#/paths/~1users/get/responses/200/.../id",
"type": "type_changed",
"breaking": true,
"severity": "high",
"before": "integer",
"after": "string",
"migration": "Cast string ID to integer or update consumers to accept string."
},
{
"path": "#/paths/~1users/get/responses/200/.../email",
"type": "field_removed",
"breaking": true,
"severity": "high",
"migration": "Fetch email from /users/{id}/profile endpoint."
},
{
"path": "#/paths/~1users/get/responses/200/.../avatar_url",
"type": "field_added",
"breaking": false,
"severity": "low"
}
]
}
Multiple layers of intelligence applied to every contract comparison.
Recursive schema comparison that walks both contract trees node-by-node, detecting additions, removals, type changes, and constraint modifications at every depth.
LLM-powered analysis detects meaning changes that structural diffing misses -- renamed fields with the same type, shifted business logic, or subtly redefined enums.
For every breaking change, the engine generates actionable migration guidance including code-level suggestions and alternative endpoint references.
Estimates the blast radius of breaking changes by analyzing which consumers, routes, and data flows are affected based on usage patterns.
Every diff analysis returns an overall risk level based on the number and severity of breaking changes.
More than 5 breaking changes detected. Major version bump strongly recommended.
More than 2 breaking changes. Consumer coordination and a migration window required.
At least 1 breaking change present. Targeted consumer notification recommended.
Zero breaking changes. Safe to deploy with standard release procedures.