> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tied.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Base URLs and versioning

> Path segments, not headers — and a live exception worth knowing about.

Tied versions by URL path segment. There's no `Accept-Version` header to set, no content-type suffix, and no default that changes underneath you — the version is whatever you typed in the path, permanently.

## The four roots

| Root | Family | Version |
| - | - | - |
| `/api/v1/` | Application | v1 |
| `/api/v2/` | Application — Reports only | v2 |
| `/platform/api/v1/` | Platform | v1 |
| `/public/api/v1/` | Client | v1 |

Three of the four roots exist only at v1. **The live exception is Reports.** `/api/v2/accounts/{account_id}/reports`, `/reports/summary`, and the two conversation-metrics endpoints all live under `v2` — there is no v1 equivalent to fall back to, and no v2 equivalent for anything else in the Application family. Conversations, contacts, inboxes, teams, webhooks, canned responses — all v1, permanently, as far as this reference is concerned.

<Note>
  Don't infer the version from the resource name. Reports happens to be v2; that doesn't mean any other resource has a v2 form waiting to be discovered. Check [the endpoint list](/api-reference) rather than guessing.
</Note>

## What counts as a breaking change

Treat these as breaking. They get a new version segment, not a silent change to v1:

* Removing a field a response currently includes.
* Renaming a field, or changing its type or meaning — a string ID becoming a UUID, for instance.
* Removing an endpoint or a documented query parameter.
* Tightening what an endpoint accepts — an optional field becoming required.
* Changing authentication or authorization requirements on an existing endpoint.

These are additive, and can land on v1 without a version bump:

* New optional request fields.
* New response fields you weren't reading.
* New endpoints.
* New values in an existing enum — a new webhook event, a new conversation `status`. If your client switches over an enum value, give it a default case rather than assuming the list is closed.

<Warning>
  We don't publish a fixed deprecation window elsewhere in these docs. If you're building something that needs to run unattended indefinitely, don't assume advance notice of a breaking change — pin to the response shape you've verified, and design your parsing to ignore fields it doesn't recognize rather than reject them.
</Warning>

## Next

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/api-reference/authentication">
    Every root above authenticates with the same mechanism — pick the right credential.
  </Card>

  <Card title="Pagination" icon="chevrons-right" href="/api-reference/pagination">
    Page numbers, and the one endpoint that doesn't use them.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.