OpenAPI Breaking Changes: The Complete List of Rules

oasdiff detects 755 distinct API changes across 10 OpenAPI areas, breaking and non-breaking, in OpenAPI 3.x specifications. Each change is classified by the OpenAPI object it affects and the kind of change it represents, generated directly from the oasdiff CLI.

755
kinds of API changes detected
339 breaking17 warnings399 informational

A "breaking change" is any modification that could cause existing API clients to fail without code changes. Run these checks automatically in CI with the GitHub Action or the CLI.

How oasdiff decides what is breaking

oasdiff judges a change against the API contract your OpenAPI definition declares, not against what a particular server happens to accept. A change is breaking if a consumer that followed the old contract can stop working under the new one.

This matters because an OpenAPI definition declares which requests and responses are valid, but most servers do not enforce it at runtime, and a server may quietly accept a request the contract says is invalid. oasdiff still reports the change as breaking, because other consumers of the same contract do enforce it: API gateways and validators reject non-conforming requests, and generated client SDKs turn the contract into typed code that no longer compiles. Whether your own server is lenient is your choice to make; it does not mean the contract is unchanged.

Each check's severity is derived from two things: which side of the API the change is on, and its effect on the set of valid messages (shown on every rule page below). Requests flow from the client, responses to it, so the same effect breaks in opposite directions:

  • Narrowing a request is breaking: a request that was valid before can now be rejected. Widening a request is not, since everything clients already send stays valid. For example, adding a required request property is breaking, whether or not the property has a default: a default is a server-side fallback value, and a request that omits the property is invalid under the new contract.
  • Widening a response is breaking: the API can now return something clients were never written to handle. Narrowing a response is not, since everything clients can still receive was already possible before. The exception is a response option the client selects or relies on, such as a status code or a media type: withdrawing one is breaking even though it narrows the response.
  • A change whose effect the definition cannot determine is a warning, with a note saying what is missing, such as a change to an object parameter whose serialization the definition leaves unspecified. A warning is not used for changes that break some setups and not others; those are errors.
  • Violating a deprecation promise, such as removing an endpoint before its sunset date, is breaking by policy even when the wire contract question does not apply.

When a change cannot be proven safe, oasdiff reports it as breaking: reporting a safe change as breaking costs a reviewer one look, while reporting a breaking change as safe ships it to production. This derivation is enforced by tests in the oasdiff codebase, so a check's severity cannot drift from the rule above.

The definition itself can also show that a specific change is safe. A property marked readOnly never appears in a request, so restricting it cannot invalidate one; the same holds for writeOnly properties in responses. Such a change is reported at info, below its check's listed severity, with a comment stating the reason.

If a check's default severity does not match your API's compatibility policy, you can raise, lower, or disable it per check with a severity-levels file.

Every possible change, decided

OpenAPI gave API definitions a formal model. oasdiff does the same for API changes: every field of the specification, and every way each one can change, is enumerated, more than 15,000 possible edits. Every one of them is either covered by a check or excluded with a written reason. None are undecided, and the build fails if a new OpenAPI field appears that we have not classified. You can inspect this yourself: oasdiff checks changelog coverage lists every edit with the checks that cover it or the reason it is excluded.

Combined with the severity derivation above, this is what lets oasdiff promise that no breaking change your contract can express gets through unnoticed. Breaking changes stop being accidents and become decisions: seen, reviewed, and approved by a person, or not shipped.

The model itself is public: the vocabulary, the severity law, every named change with the document locations it covers, and the full coverage listing are published as one machine-readable file in the OpenAPI Changes Model repository, regenerated from every oasdiff release. If you believe a change is classified wrongly, open an issue there; disagreement with a verdict is the most valuable contribution.

The contract is the boundary of the promise: a change in behavior your definition does not describe is invisible to any specification-based tool, which is one more reason to keep the definition faithful to the API.

Core Structure

Paths & Operations

21 changes

Existence9

TypeIDDescription
Infoapi-operation-id-addedoperation ID added to an endpoint
Infoapi-operation-id-removedoperation ID deleted from an endpoint
Breakingapi-path-removed-before-sunsetpath and endpoint deleted before sunset date
Infoapi-path-removed-with-deprecationpath and endpoint deleted after deprecation
Breakingapi-path-removed-without-deprecationpath and endpoint deleted without deprecation
Breakingapi-removed-before-sunsetendpoint deleted before sunset date
Infoapi-removed-with-deprecationendpoint deleted after deprecation
Breakingapi-removed-without-deprecationendpoint deleted without deprecation
Infoendpoint-addedendpoint added

Lifecycle12

TypeIDDescription
Breakingapi-deprecated-sunset-missingendpoint deprecated without sunset date
Breakingapi-deprecated-sunset-parseendpoint deprecated with invalid sunset date
Breakingapi-invalid-stability-levelinvalid stability level
Breakingapi-path-sunset-parsepath and endpoint deleted with invalid or missing sunset date
Breakingapi-stability-decreasedendpoint stability level decreased
Infoapi-stability-increasedendpoint stability level increased
Breakingapi-sunset-date-changed-too-smallmodified sunset date doesn't meet min required deprecation days
Breakingapi-sunset-date-too-smalldeprecated endpoint sunset before min required deprecation days
Infoendpoint-deprecatedendpoint deprecated
Infoendpoint-deprecated-with-sunsetendpoint deprecated with sunset date
Infoendpoint-reactivatedendpoint reactivated (deprecation set to false)
Breakingsunset-deletedsunset deleted

Components

3 changes

Existence3

TypeIDDescription
Infoapi-schema-removedschema deleted from components/schemas
Infowebhook-addedwebhook added
Breakingwebhook-removedwebhook removed

Data & Operations

Schema

594 changes

Existence20

TypeIDDescription
Infonew-optional-request-propertyoptional property added to request
Breakingnew-required-request-propertyrequired property added to request
Breakingnew-required-request-property-with-defaultrequired property with default value added to request
Breakingrequest-body-content-schema-addedcontentSchema added to request body
Inforequest-body-content-schema-removedcontentSchema removed from request body
Breakingrequest-property-content-schema-addedcontentSchema added to request property
Inforequest-property-content-schema-removedcontentSchema removed from request property
Warningrequest-property-removedrequest property removed
Inforesponse-body-content-schema-addedcontentSchema added to response body
Breakingresponse-body-content-schema-removedcontentSchema removed from response body
Inforesponse-optional-property-addedresponse optional property added
Inforesponse-optional-property-removedresponse optional property removed
Inforesponse-optional-write-only-property-addedresponse optional write-only property added
Inforesponse-optional-write-only-property-removedresponse optional write-only property removed
Inforesponse-property-content-schema-addedcontentSchema added to response property
Breakingresponse-property-content-schema-removedcontentSchema removed from response property
Inforesponse-required-property-addedresponse required property added
Breakingresponse-required-property-removedresponse required property removed
Inforesponse-required-write-only-property-addedresponse required write-only property added
Inforesponse-required-write-only-property-removedresponse required write-only property removed

Requiredness15

TypeIDDescription
Breakingrequest-body-became-not-nullablenull excluded as a possible value in request body
Inforequest-body-became-nullablenull added as a possible value in request body
Breakingrequest-property-became-not-nullablerequest property became not nullable
Inforequest-property-became-nullablerequest property became nullable
Inforequest-property-became-optionalrequest property became optional
Breakingrequest-property-became-requiredrequest property became required
Breakingrequest-property-became-required-with-defaultrequest property with a default value became required
Inforesponse-body-became-not-nullableresponse body became not nullable
Breakingresponse-body-became-nullableresponse body became nullable
Inforesponse-property-became-not-nullableresponse property became not nullable
Breakingresponse-property-became-nullableresponse property became nullable
Breakingresponse-property-became-optionalresponse property became optional
Inforesponse-property-became-requiredresponse property became required
Inforesponse-write-only-property-became-optionalresponse write-only property became optional
Inforesponse-write-only-property-became-requiredresponse write-only property became required

Mutability (read-only / write-only)16

TypeIDDescription
Inforequest-optional-property-became-not-read-onlyrequest optional property became not read-only
Inforequest-optional-property-became-not-write-onlyrequest optional property became not write-only
Inforequest-optional-property-became-read-onlyrequest optional property became read-only
Inforequest-optional-property-became-write-onlyrequest optional property became write-only
Inforequest-required-property-became-not-read-onlyrequest required property became not read-only
Inforequest-required-property-became-not-write-onlyrequest required property became not write-only
Inforequest-required-property-became-read-onlyrequest required property became read-only
Inforequest-required-property-became-write-onlyrequest required property became write-only
Inforesponse-optional-property-became-not-read-onlyresponse optional property became not read-only
Inforesponse-optional-property-became-not-write-onlyresponse optional property became not write-only
Inforesponse-optional-property-became-read-onlyresponse optional property became read-only
Inforesponse-optional-property-became-write-onlyresponse optional property became write-only
Inforesponse-required-property-became-not-read-onlyresponse required property became not read-only
Inforesponse-required-property-became-not-write-onlyresponse required property became not write-only
Inforesponse-required-property-became-read-onlyresponse required property became read-only
Inforesponse-required-property-became-write-onlyresponse required property became write-only

Type & format34

TypeIDDescription
Breakingrequest-body-list-of-types-narrowedrequest body list-of-types narrowed
Inforequest-body-list-of-types-widenedrequest body list-of-types widened
Breakingrequest-body-schema-became-falserequest body schema became the boolean `false`
Inforequest-body-schema-became-not-falserequest body schema is no longer the boolean `false`
Breakingrequest-body-type-changedrequest body type changed
Inforequest-body-type-compatiblerequest body type changed but backward compatible
Inforequest-body-type-generalizedrequest body type generalized
Breakingrequest-property-content-encoding-changedrequest property contentEncoding changed
Breakingrequest-property-content-media-type-changedrequest property contentMediaType changed
Breakingrequest-property-list-of-types-narrowedrequest property list-of-types narrowed
Inforequest-property-list-of-types-widenedrequest property list-of-types widened
Breakingrequest-property-schema-became-falserequest property schema became the boolean `false`
Inforequest-property-schema-became-not-falserequest property schema is no longer the boolean `false`
Breakingrequest-property-type-changedrequest property type changed
Inforequest-property-type-compatiblerequest property type changed but backward compatible
Inforequest-property-type-generalizedrequest property type generalized
Inforesponse-body-list-of-types-narrowedresponse body list-of-types narrowed
Breakingresponse-body-list-of-types-widenedresponse body list-of-types widened
Breakingresponse-body-schema-became-falseresponse body schema became the boolean `false`
Inforesponse-body-schema-became-not-falseresponse body schema is no longer the boolean `false`
Breakingresponse-body-type-changedresponse body type changed
Inforesponse-body-type-compatibleresponse body type changed but backward compatible
Breakingresponse-body-type-generalizedresponse body type generalized
Inforesponse-body-type-specializedresponse body type specialized
Breakingresponse-property-content-encoding-changedresponse property contentEncoding changed
Breakingresponse-property-content-media-type-changedresponse property contentMediaType changed
Inforesponse-property-list-of-types-narrowedresponse property list-of-types narrowed
Breakingresponse-property-list-of-types-widenedresponse property list-of-types widened
Inforesponse-property-schema-became-falseresponse property schema became the boolean `false`Mitigation: This is informational because narrowing what the server returns does not invalidate clients. A schema that accepts no value at all usually indicates an error in the specification, since the server cannot produce a conforming response.
Breakingresponse-property-schema-became-not-falseresponse property schema is no longer the boolean `false`
Breakingresponse-property-type-changedresponse property type changed
Inforesponse-property-type-compatibleresponse property type changed but backward compatible
Breakingresponse-property-type-generalizedresponse property type generalized
Inforesponse-property-type-specializedresponse property type specialized

Constraints314

TypeIDDescription
Breakingrequest-body-exclusive-max-decreasedrequest body exclusiveMaximum decreased
Inforequest-body-exclusive-max-increasedrequest body exclusiveMaximum increased
Breakingrequest-body-exclusive-max-setrequest body exclusiveMaximum set
Inforequest-body-exclusive-max-unsetrequest body exclusiveMaximum unset
Inforequest-body-exclusive-min-decreasedrequest body exclusiveMinimum decreased
Breakingrequest-body-exclusive-min-increasedrequest body exclusiveMinimum increased
Breakingrequest-body-exclusive-min-setrequest body exclusiveMinimum set
Inforequest-body-exclusive-min-unsetrequest body exclusiveMinimum unset
Breakingrequest-body-max-contains-decreasedrequest body maxContains decreased
Inforequest-body-max-contains-increasedrequest body maxContains increased
Breakingrequest-body-max-contains-setrequest body maxContains set
Inforequest-body-max-contains-unsetrequest body maxContains unset
Breakingrequest-body-max-decreasedrequest body max decreased
Inforequest-body-max-increasedrequest body max increased
Breakingrequest-body-max-items-decreasedrequest body max items decreased
Inforequest-body-max-items-increasedrequest body max items increased
Breakingrequest-body-max-items-setrequest body max items set
Inforequest-body-max-items-unsetrequest body maxItems unset
Breakingrequest-body-max-length-decreasedrequest body max length decreased
Inforequest-body-max-length-increasedrequest body max length increased
Breakingrequest-body-max-length-setrequest body max length set
Inforequest-body-max-length-unsetrequest body maxLength unset
Breakingrequest-body-max-properties-decreasedrequest body max properties decreased
Inforequest-body-max-properties-increasedrequest body max properties increased
Breakingrequest-body-max-properties-setrequest body max properties set
Inforequest-body-max-properties-unsetrequest body maxProperties unset
Breakingrequest-body-max-setrequest body max set
Inforequest-body-max-unsetrequest body max unset
Inforequest-body-min-contains-decreasedrequest body minContains decreased
Breakingrequest-body-min-contains-increasedrequest body minContains increased
Breakingrequest-body-min-contains-setrequest body minContains set
Inforequest-body-min-contains-unsetrequest body minContains unset
Inforequest-body-min-decreasedrequest body min decreased
Breakingrequest-body-min-increasedrequest body min increased
Inforequest-body-min-items-decreasedrequest body minItems decreased
Breakingrequest-body-min-items-increasedrequest body min items increased
Breakingrequest-body-min-items-setrequest body min items set
Inforequest-body-min-items-unsetrequest body minItems unset
Inforequest-body-min-length-decreasedrequest body min length decreased
Breakingrequest-body-min-length-increasedrequest body min length increased
Breakingrequest-body-min-length-setrequest body minLength set
Inforequest-body-min-length-unsetrequest body minLength unset
Inforequest-body-min-properties-decreasedrequest body minProperties decreased
Breakingrequest-body-min-properties-increasedrequest body min properties increased
Breakingrequest-body-min-properties-setrequest body minProperties set
Inforequest-body-min-properties-unsetrequest body minProperties unset
Breakingrequest-body-min-setrequest body min set
Inforequest-body-min-unsetrequest body min unset
Breakingrequest-body-multiple-of-changedrequest body multipleOf changed
Inforequest-body-multiple-of-generalizedrequest body multipleOf generalizedMitigation: This change is not breaking because the old multipleOf is an integer multiple of the new one, so every previously valid value remains valid.
Breakingrequest-body-multiple-of-setrequest body multipleOf set
Inforequest-body-multiple-of-unsetrequest body multipleOf unset
Breakingrequest-body-pattern-property-addedpattern property added to request body
Inforequest-body-pattern-property-removedpattern property removed from request body
Breakingrequest-body-unique-items-setrequest body uniqueItems set
Inforequest-body-unique-items-unsetrequest body uniqueItems unset
Inforequest-parameter-exclusive-max-unsetrequest parameter exclusiveMaximum unset
Inforequest-parameter-exclusive-min-unsetrequest parameter exclusiveMinimum unset
Breakingrequest-parameter-max-contains-decreasedrequest parameter maxContains decreased
Inforequest-parameter-max-contains-increasedrequest parameter maxContains increased
Breakingrequest-parameter-max-contains-setrequest parameter maxContains set
Inforequest-parameter-max-contains-unsetrequest parameter maxContains unset
Breakingrequest-parameter-max-items-setrequest parameter maxItems set
Inforequest-parameter-max-items-unsetrequest parameter maxItems unset
Inforequest-parameter-max-length-unsetrequest parameter maxLength unset
Breakingrequest-parameter-max-properties-decreasedrequest parameter maxProperties decreased
Inforequest-parameter-max-properties-increasedrequest parameter maxProperties increased
Breakingrequest-parameter-max-properties-setrequest parameter maxProperties set
Inforequest-parameter-max-properties-unsetrequest parameter maxProperties unset
Inforequest-parameter-max-unsetrequest parameter max unset
Inforequest-parameter-min-contains-decreasedrequest parameter minContains decreased
Breakingrequest-parameter-min-contains-increasedrequest parameter minContains increased
Breakingrequest-parameter-min-contains-setrequest parameter minContains set
Inforequest-parameter-min-contains-unsetrequest parameter minContains unset
Inforequest-parameter-min-items-unsetrequest parameter minItems unset
Breakingrequest-parameter-min-length-setrequest parameter minLength set
Inforequest-parameter-min-length-unsetrequest parameter minLength unset
Inforequest-parameter-min-properties-decreasedrequest parameter minProperties decreased
Breakingrequest-parameter-min-properties-increasedrequest parameter minProperties increased
Breakingrequest-parameter-min-properties-setrequest parameter minProperties set
Inforequest-parameter-min-properties-unsetrequest parameter minProperties unset
Inforequest-parameter-min-unsetrequest parameter min unset
Breakingrequest-parameter-multiple-of-setrequest parameter multipleOf set
Inforequest-parameter-multiple-of-unsetrequest parameter multipleOf unset
Breakingrequest-property-exclusive-max-decreasedrequest property exclusiveMaximum decreased
Inforequest-property-exclusive-max-increasedrequest property exclusiveMaximum increased
Breakingrequest-property-exclusive-max-setrequest property exclusiveMaximum set
Inforequest-property-exclusive-max-unsetrequest property exclusiveMaximum unset
Inforequest-property-exclusive-min-decreasedrequest property exclusiveMinimum decreased
Breakingrequest-property-exclusive-min-increasedrequest property exclusiveMinimum increased
Breakingrequest-property-exclusive-min-setrequest property exclusiveMinimum set
Inforequest-property-exclusive-min-unsetrequest property exclusiveMinimum unset
Breakingrequest-property-max-contains-decreasedrequest property maxContains decreased
Inforequest-property-max-contains-increasedrequest property maxContains increased
Breakingrequest-property-max-contains-setrequest property maxContains set
Inforequest-property-max-contains-unsetrequest property maxContains unset
Breakingrequest-property-max-decreasedrequest property max decreased
Inforequest-property-max-increasedrequest property max increased
Breakingrequest-property-max-items-decreasedrequest property max items decreased
Inforequest-property-max-items-increasedrequest property max items increased
Breakingrequest-property-max-items-setrequest property max items set
Inforequest-property-max-items-unsetrequest property maxItems unset
Breakingrequest-property-max-length-decreasedrequest property max length decreased
Inforequest-property-max-length-increasedrequest property max length increased
Breakingrequest-property-max-length-setrequest property max length set
Inforequest-property-max-length-unsetrequest property maxLength unset
Breakingrequest-property-max-properties-decreasedrequest property max properties decreased
Inforequest-property-max-properties-increasedrequest property max properties increased
Breakingrequest-property-max-properties-setrequest property max properties set
Inforequest-property-max-properties-unsetrequest property maxProperties unset
Breakingrequest-property-max-setrequest property max set
Inforequest-property-max-unsetrequest property max unset
Inforequest-property-min-contains-decreasedrequest property minContains decreased
Breakingrequest-property-min-contains-increasedrequest property minContains increased
Breakingrequest-property-min-contains-setrequest property minContains set
Inforequest-property-min-contains-unsetrequest property minContains unset
Inforequest-property-min-decreasedrequest property min decreased
Breakingrequest-property-min-increasedrequest property min increased
Inforequest-property-min-items-decreasedrequest property minItems decreased
Breakingrequest-property-min-items-increasedrequest property min items increased
Breakingrequest-property-min-items-setrequest property min items set
Inforequest-property-min-items-unsetrequest property minItems unset
Inforequest-property-min-length-decreasedrequest property min length decreased
Breakingrequest-property-min-length-increasedrequest property min length increased
Breakingrequest-property-min-length-setrequest property minLength set
Inforequest-property-min-length-unsetrequest property minLength unset
Inforequest-property-min-properties-decreasedrequest property minProperties decreased
Breakingrequest-property-min-properties-increasedrequest property min properties increased
Breakingrequest-property-min-properties-setrequest property minProperties set
Inforequest-property-min-properties-unsetrequest property minProperties unset
Breakingrequest-property-min-setrequest property min set
Inforequest-property-min-unsetrequest property min unset
Breakingrequest-property-multiple-of-changedrequest property multipleOf changed
Inforequest-property-multiple-of-generalizedrequest property multipleOf generalizedMitigation: This change is not breaking because the old multipleOf is an integer multiple of the new one, so every previously valid value remains valid.
Breakingrequest-property-multiple-of-setrequest property multipleOf set
Inforequest-property-multiple-of-unsetrequest property multipleOf unset
Breakingrequest-property-pattern-addedrequest property pattern set
Warningrequest-property-pattern-changedrequest property pattern changed
Inforequest-property-pattern-generalizedrequest property pattern generalized
Breakingrequest-property-pattern-property-addedpattern property added to request property
Inforequest-property-pattern-property-removedpattern property removed from request property
Inforequest-property-pattern-removedrequest property pattern unset
Breakingrequest-property-unique-items-setrequest property uniqueItems set
Inforequest-property-unique-items-unsetrequest property uniqueItems unset
Inforequest-read-only-property-exclusive-max-decreasedrequest read-only property exclusiveMaximum decreased
Inforequest-read-only-property-exclusive-min-increasedrequest read-only property exclusiveMinimum increased
Inforequest-read-only-property-max-decreasedrequest read-only property max decreased
Inforequest-read-only-property-max-items-decreasedrequest read-only property max items decreased
Inforequest-read-only-property-max-length-decreasedrequest read-only property max length decreased
Inforequest-read-only-property-max-properties-decreasedrequest read-only property max properties decreased
Inforequest-read-only-property-min-increasedrequest read-only property min increased
Inforesponse-body-exclusive-max-decreasedresponse body exclusiveMaximum decreased
Breakingresponse-body-exclusive-max-increasedresponse body exclusiveMaximum increased
Inforesponse-body-exclusive-max-setresponse body exclusiveMaximum set
Breakingresponse-body-exclusive-max-unsetresponse body exclusiveMaximum unset
Breakingresponse-body-exclusive-min-decreasedresponse body exclusiveMinimum decreased
Inforesponse-body-exclusive-min-increasedresponse body exclusiveMinimum increased
Inforesponse-body-exclusive-min-setresponse body exclusiveMinimum set
Breakingresponse-body-exclusive-min-unsetresponse body exclusiveMinimum unset
Inforesponse-body-max-contains-decreasedresponse body maxContains decreased
Breakingresponse-body-max-contains-increasedresponse body maxContains increased
Inforesponse-body-max-contains-setresponse body maxContains set
Breakingresponse-body-max-contains-unsetresponse body maxContains unset
Inforesponse-body-max-decreasedresponse body max decreased
Breakingresponse-body-max-increasedresponse body max increased
Inforesponse-body-max-items-decreasedresponse body maxItems decreased
Breakingresponse-body-max-items-increasedresponse body max items increased
Inforesponse-body-max-items-setresponse body maxItems set
Breakingresponse-body-max-items-unsetresponse body maxItems unset
Inforesponse-body-max-length-decreasedresponse body maxLength decreased
Breakingresponse-body-max-length-increasedresponse body max length increased
Inforesponse-body-max-length-setresponse body maxLength set
Breakingresponse-body-max-length-unsetresponse body max length unset
Inforesponse-body-max-properties-decreasedresponse body maxProperties decreased
Breakingresponse-body-max-properties-increasedresponse body max properties increased
Inforesponse-body-max-properties-setresponse body maxProperties set
Breakingresponse-body-max-properties-unsetresponse body maxProperties unset
Inforesponse-body-max-setresponse body max set
Breakingresponse-body-max-unsetresponse body max unset
Breakingresponse-body-min-contains-decreasedresponse body minContains decreased
Inforesponse-body-min-contains-increasedresponse body minContains increased
Inforesponse-body-min-contains-setresponse body minContains set
Breakingresponse-body-min-contains-unsetresponse body minContains unset
Breakingresponse-body-min-decreasedresponse body min decreased
Inforesponse-body-min-increasedresponse body min increased
Breakingresponse-body-min-items-decreasedresponse body min items decreased
Inforesponse-body-min-items-increasedresponse body minItems increased
Inforesponse-body-min-items-setresponse body minItems set
Breakingresponse-body-min-items-unsetresponse body min items unset
Breakingresponse-body-min-length-decreasedresponse body min length decreased
Inforesponse-body-min-length-increasedresponse body minLength increased
Inforesponse-body-min-length-setresponse body minLength set
Breakingresponse-body-min-length-unsetresponse body minLength unset
Breakingresponse-body-min-properties-decreasedresponse body min properties decreased
Inforesponse-body-min-properties-increasedresponse body minProperties increased
Inforesponse-body-min-properties-setresponse body minProperties set
Breakingresponse-body-min-properties-unsetresponse body minProperties unset
Inforesponse-body-min-setresponse body min set
Breakingresponse-body-min-unsetresponse body min unset
Breakingresponse-body-multiple-of-changedresponse body multipleOf changed
Inforesponse-body-multiple-of-setresponse body multipleOf set
Inforesponse-body-multiple-of-specializedresponse body multipleOf specializedMitigation: This change is not breaking because the new multipleOf is an integer multiple of the old one, so every value the server may now produce was already valid before.
Breakingresponse-body-multiple-of-unsetresponse body multipleOf unset
Inforesponse-body-pattern-property-addedpattern property added to response body
Breakingresponse-body-pattern-property-removedpattern property removed from response body
Breakingresponse-body-unique-items-unsetresponse body uniqueItems unset
Inforesponse-header-exclusive-max-decreasedresponse header exclusiveMaximum decreased
Breakingresponse-header-exclusive-max-increasedresponse header exclusiveMaximum increased
Inforesponse-header-exclusive-max-setresponse header exclusiveMaximum set
Breakingresponse-header-exclusive-max-unsetresponse header exclusiveMaximum unset
Breakingresponse-header-exclusive-min-decreasedresponse header exclusiveMinimum decreased
Inforesponse-header-exclusive-min-increasedresponse header exclusiveMinimum increased
Inforesponse-header-exclusive-min-setresponse header exclusiveMinimum set
Breakingresponse-header-exclusive-min-unsetresponse header exclusiveMinimum unset
Inforesponse-header-max-contains-decreasedresponse header maxContains decreased
Breakingresponse-header-max-contains-increasedresponse header maxContains increased
Inforesponse-header-max-contains-setresponse header maxContains set
Breakingresponse-header-max-contains-unsetresponse header maxContains unset
Inforesponse-header-max-decreasedresponse header max decreased
Breakingresponse-header-max-increasedresponse header max increased
Inforesponse-header-max-items-decreasedresponse header maxItems decreased
Breakingresponse-header-max-items-increasedresponse header maxItems increased
Inforesponse-header-max-items-setresponse header maxItems set
Breakingresponse-header-max-items-unsetresponse header maxItems unset
Inforesponse-header-max-length-decreasedresponse header maxLength decreased
Breakingresponse-header-max-length-increasedresponse header maxLength increased
Inforesponse-header-max-length-setresponse header maxLength set
Breakingresponse-header-max-length-unsetresponse header maxLength unset
Inforesponse-header-max-properties-decreasedresponse header maxProperties decreased
Breakingresponse-header-max-properties-increasedresponse header maxProperties increased
Inforesponse-header-max-properties-setresponse header maxProperties set
Breakingresponse-header-max-properties-unsetresponse header maxProperties unset
Inforesponse-header-max-setresponse header max set
Breakingresponse-header-max-unsetresponse header max unset
Breakingresponse-header-min-contains-decreasedresponse header minContains decreased
Inforesponse-header-min-contains-increasedresponse header minContains increased
Inforesponse-header-min-contains-setresponse header minContains set
Breakingresponse-header-min-contains-unsetresponse header minContains unset
Breakingresponse-header-min-decreasedresponse header min decreased
Inforesponse-header-min-increasedresponse header min increased
Breakingresponse-header-min-items-decreasedresponse header minItems decreased
Inforesponse-header-min-items-increasedresponse header minItems increased
Inforesponse-header-min-items-setresponse header minItems set
Breakingresponse-header-min-items-unsetresponse header minItems unset
Breakingresponse-header-min-length-decreasedresponse header minLength decreased
Inforesponse-header-min-length-increasedresponse header minLength increased
Inforesponse-header-min-length-setresponse header minLength set
Breakingresponse-header-min-length-unsetresponse header minLength unset
Breakingresponse-header-min-properties-decreasedresponse header minProperties decreased
Inforesponse-header-min-properties-increasedresponse header minProperties increased
Inforesponse-header-min-properties-setresponse header minProperties set
Breakingresponse-header-min-properties-unsetresponse header minProperties unset
Inforesponse-header-min-setresponse header min set
Breakingresponse-header-min-unsetresponse header min unset
Inforesponse-header-multiple-of-setresponse header multipleOf set
Breakingresponse-header-multiple-of-unsetresponse header multipleOf unset
Inforesponse-property-exclusive-max-decreasedresponse property exclusiveMaximum decreased
Breakingresponse-property-exclusive-max-increasedresponse property exclusiveMaximum increased
Inforesponse-property-exclusive-max-setresponse property exclusiveMaximum set
Breakingresponse-property-exclusive-max-unsetresponse property exclusiveMaximum unset
Breakingresponse-property-exclusive-min-decreasedresponse property exclusiveMinimum decreased
Inforesponse-property-exclusive-min-increasedresponse property exclusiveMinimum increased
Inforesponse-property-exclusive-min-setresponse property exclusiveMinimum set
Breakingresponse-property-exclusive-min-unsetresponse property exclusiveMinimum unset
Inforesponse-property-max-contains-decreasedresponse property maxContains decreased
Breakingresponse-property-max-contains-increasedresponse property maxContains increased
Inforesponse-property-max-contains-setresponse property maxContains set
Breakingresponse-property-max-contains-unsetresponse property maxContains unset
Inforesponse-property-max-decreasedresponse property max decreased
Breakingresponse-property-max-increasedresponse property max increased
Inforesponse-property-max-items-decreasedresponse property maxItems decreased
Breakingresponse-property-max-items-increasedresponse property max items increased
Inforesponse-property-max-items-setresponse property maxItems set
Breakingresponse-property-max-items-unsetresponse property maxItems unset
Inforesponse-property-max-length-decreasedresponse property maxLength decreased
Breakingresponse-property-max-length-increasedresponse property max length increased
Inforesponse-property-max-length-setresponse property maxLength set
Breakingresponse-property-max-length-unsetresponse property max length unset
Inforesponse-property-max-properties-decreasedresponse property maxProperties decreased
Breakingresponse-property-max-properties-increasedresponse property max properties increased
Inforesponse-property-max-properties-setresponse property maxProperties set
Breakingresponse-property-max-properties-unsetresponse property maxProperties unset
Inforesponse-property-max-setresponse property max set
Breakingresponse-property-max-unsetresponse property max unset
Breakingresponse-property-min-contains-decreasedresponse property minContains decreased
Inforesponse-property-min-contains-increasedresponse property minContains increased
Inforesponse-property-min-contains-setresponse property minContains set
Breakingresponse-property-min-contains-unsetresponse property minContains unset
Breakingresponse-property-min-decreasedresponse property min decreased
Inforesponse-property-min-increasedresponse property min increased
Breakingresponse-property-min-items-decreasedresponse property min items decreased
Inforesponse-property-min-items-increasedresponse property minItems increased
Inforesponse-property-min-items-setresponse property minItems set
Breakingresponse-property-min-items-unsetresponse property min items unset
Breakingresponse-property-min-length-decreasedresponse property min length decreased
Inforesponse-property-min-length-increasedresponse property minLength increased
Inforesponse-property-min-length-setresponse property minLength set
Breakingresponse-property-min-length-unsetresponse property minLength unset
Breakingresponse-property-min-properties-decreasedresponse property min properties decreased
Inforesponse-property-min-properties-increasedresponse property minProperties increased
Inforesponse-property-min-properties-setresponse property minProperties set
Breakingresponse-property-min-properties-unsetresponse property minProperties unset
Inforesponse-property-min-setresponse property min set
Breakingresponse-property-min-unsetresponse property min unset
Breakingresponse-property-multiple-of-changedresponse property multipleOf changed
Inforesponse-property-multiple-of-setresponse property multipleOf set
Inforesponse-property-multiple-of-specializedresponse property multipleOf specializedMitigation: This change is not breaking because the new multipleOf is an integer multiple of the old one, so every value the server may now produce was already valid before.
Breakingresponse-property-multiple-of-unsetresponse property multipleOf unset
Inforesponse-property-pattern-addedresponse property pattern set
Warningresponse-property-pattern-changedresponse property pattern changed
Inforesponse-property-pattern-property-addedpattern property added to response property
Breakingresponse-property-pattern-property-removedpattern property removed from response property
Breakingresponse-property-pattern-removedresponse property pattern unset
Breakingresponse-property-unique-items-unsetresponse property uniqueItems unset

Values35

TypeIDDescription
Breakingrequest-body-became-enumrequest body restricted to enum
Breakingrequest-body-const-addedrequest body const value set
Breakingrequest-body-const-changedrequest body const value modified
Inforequest-body-const-removedrequest body const value unset
Inforequest-body-default-value-addedrequest body default value set
Inforequest-body-default-value-changedrequest body default value modified
Inforequest-body-default-value-removedrequest body default value unset
Breakingrequest-body-enum-value-removedrequest body enum value deleted
Breakingrequest-property-became-enumrequest property restricted to enum
Breakingrequest-property-const-addedrequest property const value set
Breakingrequest-property-const-changedrequest property const value modified
Inforequest-property-const-removedrequest property const value unset
Inforequest-property-default-value-addedrequest property default value set
Inforequest-property-default-value-changedrequest property default value changed
Inforequest-property-default-value-removedrequest property default value unset
Inforequest-property-enum-value-addedrequest property enum value added
Breakingrequest-property-enum-value-removedrequest property enum value removed
Breakingrequest-property-x-extensible-enum-value-removedrequest property x-extensible-enum value removed
Inforequest-read-only-property-enum-value-removedrequest read-only property enum value removed
Inforesponse-body-const-addedresponse body const value set
Breakingresponse-body-const-changedresponse body const value modified
Breakingresponse-body-const-removedresponse body const value unset
Inforesponse-body-default-value-addedresponse body default value set
Inforesponse-body-default-value-changedresponse body default value changed
Inforesponse-body-default-value-removedresponse body default value unset
Inforesponse-mediatype-enum-value-removedresponse mediatype enum value removed
Inforesponse-property-const-addedresponse property const value set
Breakingresponse-property-const-changedresponse property const value modified
Breakingresponse-property-const-removedresponse property const value unset
Inforesponse-property-default-value-addedresponse property default value set
Inforesponse-property-default-value-changedresponse property default value changed
Inforesponse-property-default-value-removedresponse property default value unset
Breakingresponse-property-enum-value-addedresponse property enum value addedMitigation: The server may now return a value the previous contract excluded, so a client written against it may not handle the response. If the value set is meant to grow, declare it with x-extensible-enum.
Inforesponse-property-enum-value-removedresponse property enum value removed
Inforesponse-write-only-property-enum-value-addedresponse write-only property enum value added

Structure & composition144

TypeIDDescription
Breakingrequest-body-all-of-addedsub-schema added to allOf in request body
Inforequest-body-all-of-added-annotation-onlyannotation-only sub-schema added to allOf in request body (no wire-contract effect)
Inforequest-body-all-of-removedsub-schema deleted from allOf in request body
Inforequest-body-all-of-removed-annotation-onlyannotation-only sub-schema removed from allOf in request body (no wire-contract effect)
Inforequest-body-any-of-addedsub-schema added to anyOf in request body
Breakingrequest-body-any-of-removedsub-schema deleted from anyOf in request body
Breakingrequest-body-contains-addedcontains constraint added to request body
Inforequest-body-contains-removedcontains constraint removed from request body
Breakingrequest-body-dependent-required-addedrequest body dependentRequired added
Breakingrequest-body-dependent-required-changedrequest body dependentRequired changed
Inforequest-body-dependent-required-removedrequest body dependentRequired removed
Breakingrequest-body-dependent-schema-addeddependent schema added to request body
Inforequest-body-dependent-schema-removeddependent schema removed from request body
Inforequest-body-discriminator-addedrequest body discriminator added
Inforequest-body-discriminator-mapping-addedrequest body discriminator mapping added
Inforequest-body-discriminator-mapping-changedrequest body discriminator mapping changed
Inforequest-body-discriminator-mapping-deletedrequest body discriminator mapping deleted
Inforequest-body-discriminator-property-name-changedrequest body discriminator property name changed
Inforequest-body-discriminator-removedrequest body discriminator deleted
Breakingrequest-body-else-addedelse subschema added to request body
Inforequest-body-else-removedelse subschema removed from request body
Breakingrequest-body-if-addedif subschema added to request body
Inforequest-body-if-removedif subschema removed from request body
Inforequest-body-one-of-addedsub-schema added to oneOf in request body
Breakingrequest-body-one-of-removedsub-schema deleted from oneOf in request body
Warningrequest-body-prefix-items-addedsub-schema added to prefixItems in request body
Warningrequest-body-prefix-items-removedsub-schema removed from prefixItems in request body
Breakingrequest-body-property-names-addedpropertyNames constraint added to request body
Inforequest-body-property-names-removedpropertyNames constraint removed from request body
Breakingrequest-body-then-addedthen subschema added to request body
Inforequest-body-then-removedthen subschema removed from request body
Breakingrequest-body-unevaluated-items-addedunevaluatedItems constraint added to request body
Inforequest-body-unevaluated-items-removedunevaluatedItems constraint removed from request body
Breakingrequest-body-unevaluated-properties-addedunevaluatedProperties constraint added to request body
Inforequest-body-unevaluated-properties-removedunevaluatedProperties constraint removed from request body
Breakingrequest-body-wrapped-in-one-ofrequest body wrapped in a oneOf
Warningrequest-body-wrapped-in-one-of-original-preservedrequest body wrapped in a oneOf that keeps the original schema
Breakingrequest-property-all-of-addedsub-schema added to allOf in request property
Inforequest-property-all-of-added-annotation-onlyannotation-only sub-schema added to allOf in request property (no wire-contract effect)
Inforequest-property-all-of-removedsub-schema deleted from allOf in request property
Inforequest-property-all-of-removed-annotation-onlyannotation-only sub-schema removed from allOf in request property (no wire-contract effect)
Inforequest-property-any-of-addedsub-schema added to anyOf in request property
Breakingrequest-property-any-of-removedsub-schema deleted from anyOf in request property
Breakingrequest-property-contains-addedcontains constraint added to request property
Inforequest-property-contains-removedcontains constraint removed from request property
Breakingrequest-property-dependent-required-addedrequest property dependentRequired added
Breakingrequest-property-dependent-required-changedrequest property dependentRequired changed
Inforequest-property-dependent-required-removedrequest property dependentRequired removed
Breakingrequest-property-dependent-schema-addeddependent schema added to request property
Inforequest-property-dependent-schema-removeddependent schema removed from request property
Inforequest-property-discriminator-addedrequest property discriminator added
Inforequest-property-discriminator-mapping-addedrequest property discriminator mapping added
Inforequest-property-discriminator-mapping-changedrequest property discriminator mapping changed
Inforequest-property-discriminator-mapping-deletedrequest property discriminator mapping deleted
Inforequest-property-discriminator-property-name-changedrequest property discriminator property name changed
Inforequest-property-discriminator-removedrequest property discriminator removed
Breakingrequest-property-else-addedelse subschema added to request property
Inforequest-property-else-removedelse subschema removed from request property
Breakingrequest-property-if-addedif subschema added to request property
Inforequest-property-if-removedif subschema removed from request property
Inforequest-property-one-of-addedsub-schema added to oneOf in request property
Breakingrequest-property-one-of-removedsub-schema deleted from oneOf in request property
Warningrequest-property-prefix-items-addedsub-schema added to prefixItems in request property
Warningrequest-property-prefix-items-removedsub-schema removed from prefixItems in request property
Breakingrequest-property-property-names-addedpropertyNames constraint added to request property
Inforequest-property-property-names-removedpropertyNames constraint removed from request property
Breakingrequest-property-then-addedthen subschema added to request property
Inforequest-property-then-removedthen subschema removed from request property
Breakingrequest-property-unevaluated-items-addedunevaluatedItems constraint added to request property
Inforequest-property-unevaluated-items-removedunevaluatedItems constraint removed from request property
Breakingrequest-property-unevaluated-properties-addedunevaluatedProperties constraint added to request property
Inforequest-property-unevaluated-properties-removedunevaluatedProperties constraint removed from request property
Inforesponse-body-all-of-addedsub-schema added to allOf in response body
Inforesponse-body-all-of-added-annotation-onlyannotation-only sub-schema added to allOf in response body (no wire-contract effect)
Breakingresponse-body-all-of-removedsub-schema removed from allOf in response body
Inforesponse-body-all-of-removed-annotation-onlyannotation-only sub-schema removed from allOf in response body (no wire-contract effect)
Breakingresponse-body-any-of-addedsub-schema added to anyOf in response body
Inforesponse-body-any-of-removedsub-schema removed from anyOf in response body
Inforesponse-body-contains-addedcontains constraint added to response body
Breakingresponse-body-contains-removedcontains constraint removed from response body
Inforesponse-body-dependent-required-addedresponse body dependentRequired added
Breakingresponse-body-dependent-required-changedresponse body dependentRequired changed
Breakingresponse-body-dependent-required-removedresponse body dependentRequired removed
Inforesponse-body-dependent-schema-addeddependent schema added to response body
Breakingresponse-body-dependent-schema-removeddependent schema removed from response body
Inforesponse-body-discriminator-addedresponse body discriminator added
Inforesponse-body-discriminator-mapping-addedresponse body discriminator mapping added
Inforesponse-body-discriminator-mapping-changedresponse body discriminator mapping changed
Inforesponse-body-discriminator-mapping-deletedresponse body discriminator mapping deleted
Inforesponse-body-discriminator-property-name-changedresponse body discriminator property name changed
Inforesponse-body-discriminator-removedresponse body discriminator removed
Inforesponse-body-else-addedelse subschema added to response body
Breakingresponse-body-else-removedelse subschema removed from response body
Inforesponse-body-if-addedif subschema added to response body
Breakingresponse-body-if-removedif subschema removed from response body
Breakingresponse-body-one-of-addedsub-schema added to oneOf in response body
Inforesponse-body-one-of-removedsub-schema removed from oneOf in response body
Warningresponse-body-prefix-items-addedsub-schema added to prefixItems in response body
Warningresponse-body-prefix-items-removedsub-schema removed from prefixItems in response body
Inforesponse-body-property-names-addedpropertyNames constraint added to response body
Breakingresponse-body-property-names-removedpropertyNames constraint removed from response body
Inforesponse-body-then-addedthen subschema added to response body
Breakingresponse-body-then-removedthen subschema removed from response body
Inforesponse-body-unevaluated-items-addedunevaluatedItems constraint added to response body
Breakingresponse-body-unevaluated-items-removedunevaluatedItems constraint removed from response body
Inforesponse-body-unevaluated-properties-addedunevaluatedProperties constraint added to response body
Breakingresponse-body-unevaluated-properties-removedunevaluatedProperties constraint removed from response body
Breakingresponse-body-wrapped-in-one-ofresponse body wrapped in a oneOf
Warningresponse-body-wrapped-in-one-of-original-preservedresponse body wrapped in a oneOf that keeps the original schema
Inforesponse-property-all-of-addedsub-schema added to allOf in response property
Inforesponse-property-all-of-added-annotation-onlyannotation-only sub-schema added to allOf in response property (no wire-contract effect)
Breakingresponse-property-all-of-removedsub-schema removed from allOf in response property
Inforesponse-property-all-of-removed-annotation-onlyannotation-only sub-schema removed from allOf in response property (no wire-contract effect)
Breakingresponse-property-any-of-addedsub-schema added to anyOf in response property
Inforesponse-property-any-of-removedsub-schema removed from anyOf in response property
Inforesponse-property-contains-addedcontains constraint added to response property
Breakingresponse-property-contains-removedcontains constraint removed from response property
Inforesponse-property-dependent-required-addedresponse property dependentRequired added
Breakingresponse-property-dependent-required-changedresponse property dependentRequired changed
Breakingresponse-property-dependent-required-removedresponse property dependentRequired removed
Inforesponse-property-dependent-schema-addeddependent schema added to response property
Breakingresponse-property-dependent-schema-removeddependent schema removed from response property
Inforesponse-property-discriminator-addedresponse property discriminator added
Inforesponse-property-discriminator-mapping-addedresponse property discriminator mapping added
Inforesponse-property-discriminator-mapping-changedresponse property discriminator mapping changed
Inforesponse-property-discriminator-mapping-deletedresponse property discriminator mapping deleted
Inforesponse-property-discriminator-property-name-changedresponse property discriminator property name changed
Inforesponse-property-discriminator-removedresponse property discriminator removed
Inforesponse-property-else-addedelse subschema added to response property
Breakingresponse-property-else-removedelse subschema removed from response property
Inforesponse-property-if-addedif subschema added to response property
Breakingresponse-property-if-removedif subschema removed from response property
Breakingresponse-property-one-of-addedsub-schema added to oneOf in response property
Inforesponse-property-one-of-removedsub-schema removed from oneOf in response property
Warningresponse-property-prefix-items-addedsub-schema added to prefixItems in response property
Warningresponse-property-prefix-items-removedsub-schema removed from prefixItems in response property
Inforesponse-property-property-names-addedpropertyNames constraint added to response property
Breakingresponse-property-property-names-removedpropertyNames constraint removed from response property
Inforesponse-property-then-addedthen subschema added to response property
Breakingresponse-property-then-removedthen subschema removed from response property
Inforesponse-property-unevaluated-items-addedunevaluatedItems constraint added to response property
Breakingresponse-property-unevaluated-items-removedunevaluatedItems constraint removed from response property
Inforesponse-property-unevaluated-properties-addedunevaluatedProperties constraint added to response property
Breakingresponse-property-unevaluated-properties-removedunevaluatedProperties constraint removed from response property

Lifecycle16

TypeIDDescription
Inforequest-property-deprecatedrequest property deprecated
Breakingrequest-property-deprecated-sunset-invalidrequest property deprecated with invalid sunset date
Breakingrequest-property-deprecated-sunset-missingrequest property deprecated without sunset date
Inforequest-property-deprecated-with-sunsetrequest property deprecated with sunset date
Inforequest-property-reactivatedrequest property reactivated (deprecation set to false)
Breakingrequest-property-stability-decreasedrequest property stability level decreased
Inforequest-property-stability-increasedrequest property stability level increased
Breakingrequest-property-sunset-date-too-smalldeprecated request property sunset before min required deprecation days
Inforesponse-property-deprecatedresponse property deprecated
Breakingresponse-property-deprecated-sunset-invalidresponse property deprecated with invalid sunset date
Breakingresponse-property-deprecated-sunset-missingresponse property deprecated without sunset date
Inforesponse-property-deprecated-with-sunsetresponse property deprecated with sunset date
Inforesponse-property-reactivatedresponse property reactivated (deprecation set to false)
Breakingresponse-property-stability-decreasedresponse property stability level decreased
Inforesponse-property-stability-increasedresponse property stability level increased
Breakingresponse-property-sunset-date-too-smalldeprecated response property sunset before min required deprecation days

Parameters

72 changes

Existence9

TypeIDDescription
Infonew-optional-request-default-parameter-to-existing-pathoptional request parameter added at path level
Infonew-optional-request-parameteroptional request parameter added to endpoint
Breakingnew-request-path-parameternew request path parameter
Breakingnew-required-request-default-parameter-to-existing-pathrequired request parameter added at path level
Breakingnew-required-request-header-propertynew required request header
Breakingnew-required-request-parameterrequired request parameter added to endpoint
Warningrequest-parameter-removedrequest parameter deletedMitigation: This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first.
Breakingrequest-parameter-removed-before-sunsetrequest parameter deleted before sunset date
Inforequest-parameter-removed-with-deprecationrequest parameter deleted after deprecation

Requiredness7

TypeIDDescription
Breakingrequest-header-property-became-requiredrequest header property became required
Breakingrequest-parameter-became-not-nullablerequest parameter became not nullable
Inforequest-parameter-became-nullablerequest parameter became nullable
Inforequest-parameter-became-optionalrequest parameter became optional
Breakingrequest-parameter-became-requiredrequest parameter became required
Breakingrequest-parameter-property-became-not-nullablerequest parameter property became not nullable
Inforequest-parameter-property-became-nullablerequest parameter property became nullable

Type & format13

TypeIDDescription
Breakingrequest-parameter-list-of-types-narrowedrequest parameter list-of-types narrowed
Inforequest-parameter-list-of-types-widenedrequest parameter list-of-types widened
Breakingrequest-parameter-property-list-of-types-narrowedrequest parameter property list-of-types narrowed
Inforequest-parameter-property-list-of-types-widenedrequest parameter property list-of-types widened
Breakingrequest-parameter-property-schema-became-falserequest parameter property schema became the boolean `false`
Inforequest-parameter-property-schema-became-not-falserequest parameter property schema is no longer the boolean `false`
Warningrequest-parameter-property-type-changedrequest parameter property type changed
Inforequest-parameter-property-type-generalizedrequest parameter property type generalized
Breakingrequest-parameter-property-type-specializedrequest parameter property type specialized
Breakingrequest-parameter-schema-became-falserequest parameter schema became the boolean `false`
Inforequest-parameter-schema-became-not-falserequest parameter schema is no longer the boolean `false`
Breakingrequest-parameter-type-changedrequest parameter type changed
Inforequest-parameter-type-generalizedrequest parameter type generalized

Constraints26

TypeIDDescription
Breakingrequest-parameter-exclusive-max-decreasedrequest parameter exclusiveMaximum decreased
Inforequest-parameter-exclusive-max-increasedrequest parameter exclusiveMaximum increased
Breakingrequest-parameter-exclusive-max-setrequest parameter exclusiveMaximum set
Inforequest-parameter-exclusive-min-decreasedrequest parameter exclusiveMinimum decreased
Breakingrequest-parameter-exclusive-min-increasedrequest parameter exclusiveMinimum increased
Breakingrequest-parameter-exclusive-min-setrequest parameter exclusiveMinimum set
Breakingrequest-parameter-max-decreasedrequest parameter max decreased
Inforequest-parameter-max-increasedrequest parameter max increased
Breakingrequest-parameter-max-items-decreasedrequest parameter max items decreased
Inforequest-parameter-max-items-increasedrequest parameter max items increased
Breakingrequest-parameter-max-length-decreasedrequest parameter max length decreased
Inforequest-parameter-max-length-increasedrequest parameter max length increased
Breakingrequest-parameter-max-length-setrequest parameter max length set
Breakingrequest-parameter-max-setrequest parameter max set
Inforequest-parameter-min-decreasedrequest parameter min decreased
Breakingrequest-parameter-min-increasedrequest parameter min increased
Inforequest-parameter-min-items-decreasedrequest parameter min items decreased
Breakingrequest-parameter-min-items-increasedrequest parameter min items increased
Breakingrequest-parameter-min-items-setrequest parameter min items set
Inforequest-parameter-min-length-decreasedrequest parameter min length decreased
Breakingrequest-parameter-min-length-increasedrequest parameter min length increased
Breakingrequest-parameter-min-setrequest parameter min set
Breakingrequest-parameter-pattern-addedrequest parameter pattern set
Warningrequest-parameter-pattern-changedrequest parameter pattern changed
Inforequest-parameter-pattern-generalizedrequest parameter pattern generalized
Inforequest-parameter-pattern-removedrequest parameter pattern unset

Values10

TypeIDDescription
Breakingrequest-header-property-became-enumrequest header property restricted to enum
Breakingrequest-parameter-became-enumrequest parameter restricted to enum
Inforequest-parameter-default-value-addedrequest parameter default value set
Inforequest-parameter-default-value-changedrequest parameter default value changed
Inforequest-parameter-default-value-removedrequest parameter default value unset
Inforequest-parameter-enum-value-addedrequest parameter enum value added
Breakingrequest-parameter-enum-value-removedrequest parameter enum value deleted
Inforequest-parameter-property-enum-value-addedrequest parameter property enum value added
Breakingrequest-parameter-property-enum-value-removedrequest parameter property enum value removed
Breakingrequest-parameter-x-extensible-enum-value-removedrequest parameter x-extensible-enum value deleted

Lifecycle7

TypeIDDescription
Inforequest-parameter-deprecatedrequest parameter deprecated
Breakingrequest-parameter-deprecated-sunset-missingrequest parameter deprecated without sunset date
Inforequest-parameter-reactivatedrequest parameter reactivated (deprecation set to false)
Breakingrequest-parameter-sunset-date-changed-too-smallrequest parameter sunset date moved below min required deprecation days
Breakingrequest-parameter-sunset-date-too-smalldeprecated request parameter sunset before min required deprecation days
Breakingrequest-parameter-sunset-deletedrequest parameter sunset date deleted while still deprecated
Breakingrequest-parameter-sunset-parserequest parameter deprecated with invalid sunset date

Request Body

13 changes

Existence9

TypeIDDescription
Inforequest-body-added-optionaloptional request body added
Breakingrequest-body-added-requiredrequired request body added
Inforequest-body-media-type-addedrequest body media-type added
Breakingrequest-body-media-type-item-schema-addedrequest body media-type item schema added
Inforequest-body-media-type-item-schema-removedrequest body media-type item schema removed
Breakingrequest-body-media-type-removedrequest body media-type deleted
Breakingrequest-body-media-type-schema-addedrequest body media-type schema added
Inforequest-body-media-type-schema-removedrequest body media-type schema removed
Breakingrequest-body-removedrequest body removed

Requiredness2

TypeIDDescription
Inforequest-body-became-optionalrequest body became optional
Breakingrequest-body-became-requiredrequest body became required

Type & format2

TypeIDDescription
Breakingrequest-body-content-encoding-changedrequest body contentEncoding changed
Breakingrequest-body-content-media-type-changedrequest body contentMediaType changed

Responses

19 changes

Existence11

TypeIDDescription
Inforesponse-body-media-type-item-schema-addedresponse media-type item schema added
Breakingresponse-body-media-type-item-schema-removedresponse media-type item schema removed
Breakingresponse-body-media-type-item-schema-removed-untypedresponse media-type item schema removed, leaving the body untyped
Inforesponse-body-media-type-schema-addedresponse media-type schema added
Breakingresponse-body-media-type-schema-removedresponse media-type schema removed
Inforesponse-media-type-addedresponse media type added
Breakingresponse-media-type-removedresponse media type removed
Inforesponse-non-success-status-addedresponse non-success status added
Inforesponse-non-success-status-removedresponse non-success status removed
Inforesponse-success-status-addedresponse success status added
Breakingresponse-success-status-removedresponse success status removed

Type & format8

TypeIDDescription
Breakingresponse-body-content-encoding-changedresponse body contentEncoding changed
Breakingresponse-body-content-media-type-changedresponse body contentMediaType changed
Warningresponse-media-type-name-changedresponse media type changed
Breakingresponse-media-type-name-generalizedresponse media type changed to a more general type
Inforesponse-media-type-name-specializedresponse media type changed to a more specific type
Inforesponse-media-type-parameter-addedresponse media type parameter added
Breakingresponse-media-type-parameter-changedresponse media type parameter value changed
Breakingresponse-media-type-parameter-removedresponse media type parameter removed

Headers

12 changes

Existence3

TypeIDDescription
Infooptional-response-header-removedoptional response header deleted
Breakingrequired-response-header-removedrequired response header removed
Inforesponse-header-addedresponse header added

Requiredness3

TypeIDDescription
Inforesponse-header-became-not-nullableresponse header became not nullable
Breakingresponse-header-became-nullableresponse header became nullable
Breakingresponse-header-became-optionalresponse header became optional

Type & format6

TypeIDDescription
Inforesponse-header-schema-became-falseresponse header schema became the boolean `false`
Breakingresponse-header-schema-became-not-falseresponse header schema is no longer the boolean `false`
Breakingresponse-header-type-changedresponse header type changed
Inforesponse-header-type-compatibleresponse header type changed but backward compatibleMitigation: This change is backward compatible because a header value is transmitted as text, so any type can be represented as a string on the wire and is not enforced there.
Breakingresponse-header-type-generalizedresponse header type generalized
Inforesponse-header-type-specializedresponse header type specialized

Security & Connectivity

Security

16 changes

Existence12

TypeIDDescription
Infoapi-global-security-addedsecurity scheme added in security
Breakingapi-global-security-removedsecurity scheme deleted in security
Breakingapi-global-security-scope-addedscope added to a security scheme in security
Infoapi-global-security-scope-removedscope deleted from a security scheme in security
Infoapi-security-addedsecurity requirements added to endpoint
Infoapi-security-component-addedsecurity scheme added in components/securitySchemes
Infoapi-security-component-oauth-scope-addedscope added to OAuth flow in components/securitySchemes
Infoapi-security-component-oauth-scope-removedscope deleted from OAuth flow in components/securitySchemes
Infoapi-security-component-removedsecurity scheme deleted in components/securitySchemes
Breakingapi-security-removedsecurity requirements deleted from endpoint
Breakingapi-security-scope-addedscope added to an endpoint's security scheme
Infoapi-security-scope-removedscope deleted from an endpoint's security scheme

Type & format4

TypeIDDescription
Infoapi-security-component-oauth-scope-changedscope modified in OAuth flow in components/securitySchemes
Infoapi-security-component-oauth-token-url-changedtoken URL modified in OAuth flow in components/securitySchemes
Infoapi-security-component-oauth-url-changedauth URL modified in OAuth flow in components/securitySchemes
Infoapi-security-component-type-changedsecurity scheme type modified in components/securitySchemes

Tags

2 changes

Existence2

TypeIDDescription
Infoapi-tag-addedendpoint tag added
Infoapi-tag-removedendpoint tag deleted

Other

info

3 changes

Lifecycle3

TypeIDDescription
Infoapi-major-version-not-bumpeda breaking change was detected but the major version did not increase
Infoapi-version-decreaseda breaking change was detected but the version decreased
Infoapi-version-not-bumpeda breaking change was detected but the version was not bumped
Breaking (339)Warning (17)Informational (399)

This list is generated from the oasdiff checks changelog command, so it always matches the rules oasdiff actually runs. See the oasdiff GitHub repo for the source.