Skip to main content
v1 keeps working until November 20, 2026. After that, only /api/v2 responds. If you’re integrating for the first time, skip to v2.

What changed

Thread status mapping

Endpoint changes

Concrete before/after

Removed thread fields

Gone from responses (they leaked internals): version, yDocText, linearAttachmentId, recordingId, slackReplyId, chatThreadId, replied, slaDeadlineAt, showRecordCall, contactIsUnverified, isDeleted, workspace, workspace.slackSettings. Per-integration ids (intercomId, frontId, …) are now under external_ids.

Error envelope

Common codes: validation_failed (400), unauthenticated (401), scope_required (403), not_found (404), conflict (409), unsupported_key_version (410 - passed a v1 key), rate_limited (429), internal_error (500).

What did not change

Bearer token auth, pain levels (HIGH/MEDIUM/LOW/UNKNOWN), JSON bodies, HTTP status semantics.

Migrate with AI

Paste this prompt into Claude/Cursor/Copilot to apply the migration to your codebase: