Dasha
09/17/2026, 12:18 PMSix AI Prompts endpoints, holiday-calendar CSV export and the AI SDR duplicate operations came out of Coming soon. Contact import gains aπ’ Now Live AI Prompts β all six operations out of Coming soon: β’dedup key, sequence contacts can be repointed at a different sending mailbox, and Mailbox Procurement is documented ahead of a late-September release.contactId
GET /v3/ai-prompts β List AI prompts
β’ POST /v3/ai-prompts β Create a personal AI prompt
β’ PUT /v3/ai-prompts/{id} β Update a personal AI prompt
β’ DELETE /v3/ai-prompts/{id} β Delete a personal AI prompt
β’ POST /v3/ai-prompts/preview/sample β Preview a comment prompt against a sample post
β’ POST /v3/ai-prompts/preview/linkedin-post β Preview a comment prompt against a LinkedIn post
Scopes unchanged: sequences:read to list, sequences:write to create/update/delete, sequences:operate for both previews.
Sequence Contacts β repoint contacts at a different sending mailbox:
β’ POST /v3/sequences/{id}/contacts/set-email-account (sequences:operate)
Body takes contactIds (1β100, positive, no duplicates) and emailAccountId. The mailbox must already be linked to the sequence β link it with POST /v3/sequences/{id}/email-account-links first, otherwise you get 400 sequenceContact.invalidInput. The 200 is non-atomic: assigned lists the ids now sending from that mailbox (including ones already on it, so repeating the call is safe), notProcessed maps the rest to a reason (notInSequence, unknown). Owner-only (403); archived sequence β 409 sequenceContact.sequenceArchived.
Also out of Coming soon:
β’ GET /v3/holiday-calendars/{id}/export-csv β Export a holiday calendar as CSV
β’ POST /v3/ai-sdr/offers/{id}/duplicate β Duplicate an offer
β’ POST /v3/ai-sdr/playbooks/{id}/duplicate β Duplicate a playbook
Contact import β match existing contacts by Reply contact id
POST /v3/contacts/import accepts options.keys.contactId (boolean, default false) and a contactId on each item (integer, nullable). Two rules worth noting: the key is not additive β when enabled it decides the match on its own and the other keys are not consulted; and every item must then carry a contactId, where an id that doesn't resolve inside your team is imported as a new contact rather than failing. Available only to teams it has been enabled for β otherwise 403 contact.forbidden with Matching contacts by contactId is not enabled for your team.
π Coming Soon
Mailbox Procurement β buy domains and mailboxes through the API (targeted: late September 2026, not callable yet):
β’ GET /v3/email-accounts/procurement/domains/available (channels:read)
β’ POST /v3/email-accounts/procurement/domains/estimate (channels:read)
β’ POST /v3/email-accounts/procurement/domains/purchase (channels:write)
β’ POST /v3/email-accounts/procurement/users (channels:write)
What to expect: every monetary amount is in cents (1299 = $12.99). Domain search takes one label (up to 63 chars, letters/digits/hyphens, no leading or trailing hyphen) against up to 5 TLDs from com, net, org, biz, live. Orders specify serviceProvider of google or microsoft and 1β5 mailboxes, with unique usernames and exactly one isAdmin: true. Purchase is async β 202 + jobId, poll GET /v3/background-jobs/{jobId}. Registration is a precondition: every other procurement endpoint returns 403 until POST /v3/email-accounts/procurement/users succeeds.
Contacts β bulk opt-out (targeted: late September 2026):
β’ POST /v3/contacts/set-opted-out (contacts:operate) β contactIds (1β100, no duplicates) + isOptedOut. Opting out finishes the contacts in every sequence they're in; the contact_opted_out webhook fires once per enrolled sequence, and not at all for a contact in no sequence. The 200 lists only per-item failures (notFound, invalidInput); {} means all succeeded.
β οΈ Breaking Changes
1. steps is now required when creating a sequence
Before:required onlyPOST /v3/sequences.name
After:is required withstepsβ a sequence with no steps has nothing to send and cannot be started.minItems: 1
Action required: if you create an empty sequence and add steps in a follow-up call, move at least one step into the create request body.2. Inbox category pages moved
Before:and six sibling pages./api-reference/inbox/list-inbox-categories
After: thetag split into Inbox (Threads, 13 ops) and Inbox Categories (7 ops); category pages now live atInbox./api-reference/inbox-categories/β¦
Action required: documentation links only β no endpoint, request or response changed. Redirects are in place, so existing links still resolve.Housekeeping β’ The per-endpoint Beta banner is replaced by a New banner across 57 operations, meaning "recently shipped" with an invitation to give feedback β never a breaking-change warning. The API-wide Beta signal now appears once, as a pill beside the version. β’ The API reference is regrouped into 12 top-level sections, including the new Mailbox Procurement. β’ New schema pages: Available Domain, Estimate Seats. β’ The spec now declares
openapi: 3.2.0 (was 3.1.0) to use hierarchical tags.
π Full documentation