What is a breaking change?
From a consumer's perspective, a breaking change
The optional-to-required trap
Marking a field as required when it was optional is one of the most frequent accidental majors: old clients stop sending it, and the server returns 400. Treat that as breaking in both request and response-oriented reviews unless you have a coordinated rollout.
Enum value removal
Removing an enum literal breaks any client that still emits or branches on that value. Adding literals is usually safe for wire format, but exhaustive switch statements in typed code may need updates — the tool calls that out in recommendations.
Request vs response context
The same structural diff can mean different compatibility: dropping a key from a response often breaks readers, while dropping it from a request body usually means the server simply ignores an extra field old clients still send. Conversely, new required request fields are breaking because legacy clients do not send them. Toggle the context control above to match the schema you pasted.
Once you know whether a change is breaking, use our API Versioning Decision Helper to choose the right SemVer bump and communicate it in changelogs.
See also: Breaking change (API)