The version is the first path segment, right after the host:

```
https://api.proppertrading.com/v1/affiliates/pre-registrations
                              ^^
```

## What can change inside v1

We treat these as additive and may ship them at any time, so your integration has
to tolerate them:

- New fields in a response.
- New optional request parameters.
- New endpoints.
- New values in an enum-like field, including new `error.code` values.
- New scopes.

Parse responses so unknown fields are ignored, and handle an unrecognised
`error.code` by falling back on `error.type`.

## What will not change inside v1

- Removing or renaming a field.
- Changing the type or meaning of a field.
- Removing an endpoint.
- Changing what an existing `error.code` means.

Anything in that list goes to `/v2`.

## Deprecation

When we do retire something, the responses involved carry `Deprecation` and
`Sunset` headers, it is announced in the [changelog](/docs/api/changelog), and you
get at least six months.