Versioning
Dated versions. A key keeps the contract it was made against until you move it.
Versions are dates. The current one is 2026-10-01.
A key remembers the version that was current when it was created, so a client that never sends the header keeps the behaviour it was written against. Send MockFlow-Version to pin a call to a version explicitly. Every response says which version answered it, in the same header.
curl https://api.mockflow.com/v1/me \
-H "Authorization: Bearer $MOCKFLOW_API_KEY" \
-H "MockFlow-Version: 2026-10-01"
Versions
2026-10-01currentWhat counts as breaking
A new field on a response, a new optional field on a request, a new endpoint, a new item type and a new enum value on a field you send are all added without a new version. Write clients that ignore fields they do not know.
Removing or renaming a field, making an optional field required, changing a type, and changing what a status code means all wait for a new dated version. Nothing is removed from a version that is already published.