# Versioning

> Dated versions. A key keeps the contract it was made against until you move it.

Source: https://mockflow.com/developers/concepts/versioning

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.

```bash
curl https://api.mockflow.com/v1/me \
  -H "Authorization: Bearer $MOCKFLOW_API_KEY" \
  -H "MockFlow-Version: 2026-10-01"
```

### Versions

- `2026-10-01` (current)

## What 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.
