Skip to main content
Legacy public endpoints under /public/* are deprecated and sunset on 31 October 2026. New integrations should use /public/v1/*. Every legacy response includes deprecation headers:

Why migrate

Base URL change

Authentication is unchanged: cx-api-key header.

Response envelope

Legacy list (example):
v1 list:
Legacy error:
v1 error:
Branch on code, not message. See Errors.

Pagination migration

See Pagination.

Endpoint mapping

Scopes during migration

Create new keys with explicit scopes: Keys with empty scopes (pre-migration) still have full access until rotated.

Migration checklist

1

Audit legacy usage

List which /public/* endpoints your integration calls today.
2

Create scoped v1 key

Settings → APItickets:read for read paths.
3

Map filters to views

For each legacy list filter, create or identify a matching saved inbox view.
4

Update client code

Switch base URL, envelope parsing, and pagination to cursor model.
5

Add message/thread fetch

Replace custom workarounds with GET /tickets/:ticketNumber/messages.
6

Test in staging

Verify view access for agent-linked keys vs service keys.
7

Deploy and rotate

Deploy v1 client, then delete legacy-only API keys.

Documentation and tools

OpenAPI v1 reference

Interactive Scalar docs for all v1 endpoints.

Legacy OpenAPI

Deprecated /public/* reference (sunset Oct 2026).

Getting started

First v1 request walkthrough.

Agent tool examples

AI agent patterns on v1.

Timeline

Plan migration before the sunset date. Legacy write, export, and analytics endpoints have no v1 replacement yet — keep scoped legacy keys only for those calls until v2.