Skip to main content

Changes

Non-Breaking Change​

A non-breaking change is any update to the API that does not require existing clients to change their behavior or implementation. Existing clients continue to work as expected.

Example of Non-Breaking Change​

ScenarioWhy It's Non-Breaking
Adding a new optional fieldClients can ignore fields they don't recognize.
Adding a new endpointClients using old endpoints remain unaffected.
Extending enum valuesClients can default to ignoring unknown values.
Increasing a limit (e.g., pagination)Clients using previous limits still function.

Example: Adding a New Field​

Old Response:

{
"id": 1,
"name": "Alice"
}

New Response(Non-Breaking)

{
"id": 1,
"name": "Alice",
"nickname": "Ally"
}

Why it's non-breaking: Existing clients that don't expect nickname will simply ignore it.

Breaking Change​

A breaking change is any modification that requires existing clients to change their code in order to continue functioning properly.

Example of Breaking Changes​

ScenarioWhy It's Breaking
Removing an existing fieldClients depending on it may break.
Renaming a fieldClient parsing will fail.
Changing a field’s data typeData may be incompatible.
Changing URL structure or HTTP methodsClients using hardcoded URLs/methods will break.
Changing authentication mechanismClients using the old auth method fail.

Example: Renaming a Field​

Old Response:

{
"id": 1,
"name": "Alice"
}

New Response(Breaking)

{
"id": 1,
"fullName": "Alice"
}

Why it's breaking: Existing clients looking for name will no longer find it and may throw errors.