Breaking Change Rules

oasdiff checks 300+ rules across 12 categories to detect breaking changes in OpenAPI 3.x specifications.

A "breaking change" is any modification that could cause existing API clients to fail without code changes. The full rule list is maintained in the oasdiff GitHub repo.

Endpoints

24 rules
TypeRule IDDescription
endpoint-removedAn endpoint was removed
endpoint-deprecatedAn endpoint was deprecated
api-path-removedAn API path was removed
api-operation-id-removedAn operation ID was removed
+ 20 more rules in this category

Request Parameters

62 rules
TypeRule IDDescription
request-path-param-removedA required path parameter was removed
request-query-param-addedA required query parameter was added
request-query-param-removedA query parameter was removed
request-header-param-removedA required header parameter was removed
+ 58 more rules in this category

Request Body

48 rules
TypeRule IDDescription
request-body-became-requiredRequest body became required
request-property-became-requiredA request property became required
request-property-removedA request body property was removed
request-property-type-changedA request property type changed
+ 44 more rules in this category

Response Body

58 rules
TypeRule IDDescription
response-property-removedA response property was removed
response-property-type-changedA response property type changed
response-optional-property-addedA new optional property was added to a response
response-required-property-addedA required property was added to a response
+ 54 more rules in this category

Status Codes

18 rules
TypeRule IDDescription
response-success-status-removedA success (2xx) status code was removed
response-non-success-status-removedA non-success status code was removed
response-status-code-addedA new status code was added
+ 15 more rules in this category

Schemas & Types

84 rules
TypeRule IDDescription
request-property-enum-value-removedAn enum value was removed from a request property
response-property-enum-value-addedA new enum value was added to a response
request-property-max-length-setA maximum length constraint was added to a request property
response-property-min-length-increasedMinimum length on a response property was increased
+ 80 more rules in this category

Security

32 rules
TypeRule IDDescription
security-requirement-addedA security requirement was added to an endpoint
security-requirement-removedA security requirement was removed
security-scope-addedA required OAuth scope was added
security-scope-removedAn OAuth scope was removed
+ 28 more rules in this category

Headers

28 rules
TypeRule IDDescription
response-header-removedA response header was removed
response-header-addedA response header was added
request-header-changedA required request header changed
+ 25 more rules in this category

Content Types

22 rules
TypeRule IDDescription
request-body-content-type-removedA supported request content type was removed
response-media-type-removedA supported response media type was removed
+ 20 more rules in this category

Extensions & Tags

12 rules
TypeRule IDDescription
tag-removedA tag was removed from an endpoint
endpoint-tag-addedA tag was added to an endpoint
+ 10 more rules in this category

Servers & Paths

16 rules
TypeRule IDDescription
api-server-removedA server URL was removed
api-server-addedA server URL was added
+ 14 more rules in this category
Breaking changeNon-breaking / informational

This page shows a representative sample. The complete list of all 300+ rules is available in the oasdiff breaking changes docs.