The cheapest API version is the one never created, and that stays achievable for far longer than most teams expect provided every change is additive.
SAFE adding a field to a response
adding an optional request parameter
adding a new endpoint
adding a value to a list the client only DISPLAYS
BREAKING renaming or removing a response field
changing a type: 4900 -> "4900", 4900 -> 49.00
changing nullability of something a client dereferences
adding a value to a list the client SWITCHES ON
tightening validation on an existing parameter
changing the HTTP status for an existing condition
The two list entries are the same change with opposite answers, which is the point: whether it breaks depends on what the client does with the value, and that knowledge lives outside your codebase. Tightening validation is the one that reads as a bug fix and is not — an endpoint that has silently accepted a null phone number for a year has clients that send one. This belongs on a review checklist rather than in a principles document, because principles lose to a tidy-up on a Friday afternoon.