In requests, adding a requirement is breaking. In responses, taking something away is breaking.
Breaking changes
A change in this list is never applied in place. It ships as a new version of the endpoint, or, for removals, as a deprecation. The version you are already calling keeps its current behavior until the removal date in the deprecation notice.Requests
- Adding a required field or parameter
- Making an optional field required
- Removing or renaming a field we used to accept
- Rejecting input we used to accept, including tighter validation and removed enum values
Responses
- Removing or renaming a field
- Changing a field’s type, or making an always-present field nullable or optional
- Changing the meaning of an existing field
- Changing the HTTP status or error code returned for the same condition
- Changing pagination, sort order, or any other documented guarantee
Endpoints
- Removing or renaming an endpoint
- Changing its default behavior
- Adding an authentication or permission requirement to an existing endpoint
Non-breaking changes
These ship at any time, without a version change:- New endpoints
- New optional request fields, with a default that preserves current behavior
- New response fields
- New enum values in responses
- New error messages under the same error code
- Accepting input we previously rejected
- Performance, infrastructure, and undocumented behavior
What your client must do
The list above holds only for clients that tolerate additive change. Your integration is expected to:- Ignore response fields it doesn’t recognize
- Accept enum values it hasn’t seen before
- Not depend on field order
- Match on error codes and HTTP status, never on message text
- Not depend on behavior absent from the API reference
When we make a breaking change
- It ships as a new version of that endpoint, or as a deprecation naming whatever replaces it — a differently named endpoint, or nothing at all. Either way what you are already calling is unaffected while the window below is open.
- We publish the migration guide before announcing the deprecation.
- We announce it in the changelog, in the API reference, on a deprecation page for that endpoint, and by direct notice to customers we see calling the endpoint.
- The old version is supported for at least 30 days from the announcement. After the removal date it stops answering and returns
404.
Exceptions
Ambiguous cases are decided by the API owner, and the default is to treat the change as breaking.
Learn more
API Versioning Policy
How endpoint versions are numbered and how long each one is supported
Deprecations
Endpoints currently deprecated, and what replaces them

