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

# API updates

> Public API additions, behavior changes, deprecations, and migration notes.

This page records changes to the Sendora v1 public API that can affect integrations. Endpoint additions are generally backward-compatible; behavior and contract changes include migration notes.

## October 2026

* One id everywhere. Every `id` the API returns can now be sent back to any endpoint that takes that kind of object, and it is the same value you see in the app address bar. Call records, knowledge base sources, tools, webhook endpoints and do-not-contact entries now return a short public id in `id`, and references such as `lead_id`, `agent_id` and `campaign_id` in call records return public ids too. Ids you stored from earlier responses keep working as input. See [Identifiers](/concepts/identifiers).
* Webhook events: `lead_id`, `campaign_id` and `agent_id` in event payloads are now the same public ids the API returns, so an event can be matched to an API object. Ids from earlier events still work as input.
* List voice calls: the `lead_id` and `campaign_id` filters accept the same ids List all leads and List campaigns return.
* Copilot: `GET /api/v1/public/copilot/sessions/{thread_id}` and the `thread_id` field of Stream a Copilot reply accept the `thread_id` the reply stream sends. The session response now contains only conversation fields.
* New: `GET /api/v1/public/campaign-folders` lists campaign folders, the source of `folder_id` for Create campaign.
* List connected channel accounts now lists the accounts a voice agent can send from (ready mailboxes, WhatsApp and LinkedIn accounts, phone numbers). Each `id` is the `account_id` that Save channel assignments accepts, and that endpoint now rejects accounts that are not connected in the workspace. The `channel` filter value for phone numbers is `phone`; `sms_voice` is still accepted.
* Send message to lead: `connection_id` is marked deprecated. It never chose the sending account (the account is picked from the lead's existing conversation). It is still accepted and ignored, so existing requests keep working.
* List campaign leads: rows no longer carry their own `id`. An enrollment is identified by the campaign and the `lead_id`.
* Register webhook endpoint: `description` is now saved. Registering an endpoint with a description previously failed with a server error.
* Responses no longer include internal bookkeeping fields (for example the workspace's internal id or billing references). These were never part of the documented contract.
* Campaign trigger webhooks (the URL on a campaign's "Webhook received" step): the success response now returns the lead's public id as `lead_id` and no longer returns `workflow_id`. Send that `lead_id` back on later calls to target the same lead; lead ids from earlier responses still work.
* Error messages are now complete sentences that never include internal ids. Match on the HTTP status code, not on the message text.
* Bringing numbers from your own carrier account now uses `POST /api/v1/public/phone-numbers/import/search`, `/import/confirm` and `/import/outbound-profile`. Request and response bodies are unchanged. The earlier paths keep working with the same behavior and now return a `Deprecation: true` header plus a `Link` header that points to the new path; move to the new paths when convenient.

## September 2026

* Expanded the public contract to cover voice-agent operations, widgets, partner workflows, imports, and campaign workflow updates.
* Added route classification and live-contract drift checks to the documentation build.
* Added dedicated guidance for pagination, idempotency, async jobs, resource isolation, voice-agent operations, widgets, and partner APIs.

For the exact current operation set, use the [API Reference](/api-reference/introduction).


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