# Versioning

What can change without notice, what can't, and how long you get when something must.

The version is the first segment of every path: `/v1/leads`. Within a version, LeadUp only makes changes that don't break a correct client.

## Safe changes

These happen without notice, so write your client to accept them:

- New endpoints.
- New optional fields in a request, and new fields in a response.
- New values in a response enum, such as a new stage.
- New error codes.

## Breaking changes

Removing or renaming a field, endpoint or error code, changing a field's type or meaning, making an optional field required, tightening validation or changing a status code all ship as a **new version** beside the old one. The old version keeps working as it did.

<Note title="Six months' notice">
  A public endpoint is removed only after at least six months' notice, announced in the [changelog](/changelog).
</Note>
