# Changelog

Changes to the API and the documentation, newest first. Each entry is labelled **Added**, **Changed**, **Deprecated**, **Removed** or **Fixed**. Additive changes (new operations, fields, enum values, event types and error codes) can ship at any time and are listed here; breaking changes need a new major version and at least six months' notice. See [Base URL and versioning](/fundamentals/base-url-and-versioning).

## 2026-10-21: API v1 private preview

**Availability: Preview** API version `2026-10-21`.

**Added.** The first release of API v1, for workspaces in the private preview ([request access](/getting-started/api-availability#getting-access)).

**Availability: Available**

- **Workspace**: retrieve the workspace, the current key, capabilities and limits.
- **Agents**: list and retrieve agents, and check whether an agent can place calls (readiness).
- **Phone numbers**: list and retrieve the workspace's numbers and the agents that use them.
- **Calls**: list and retrieve calls, with status, outcome, timing and cost; read transcripts and analysis.
- **Campaigns**: create, list, retrieve and update campaigns, add recipients, pause and stop.
- **Contacts**: create, list, retrieve, update, delete, and create-or-update by phone number, with consent and custom fields.
- **Do-not-call list**: add, list, look up and remove numbers.
- Conventions for every operation: scoped `rai_test_` and `rai_live_` keys, the error envelope with `retry` hints, optional idempotency keys, cursor pagination, ETags on campaigns and contacts, rate limits with `RateLimit-*` headers, and `X-Request-Id` on every response.

**Availability: Preview**

- **Calls**: place a call (`POST /v1/calls`); retrieve recording links and download recording audio.
- **Campaigns**: start and resume; list recipients.
- **Webhooks**: webhook endpoints (create, list, retrieve, update, delete, rotate the signing secret, send a test event), deliveries (list, retry) and nine event types: `call.ended`, `call.settled`, `campaign.started`, `campaign.paused`, `campaign.resumed`, `campaign.stopped`, `campaign.completed`, `campaign.failed` and `webhook_endpoint.test`.

**Availability: Test mode**

- **Test mode** for every operation with `rai_test_` keys: simulated calls whose result is chosen by the destination number (`+12025550100` to `+12025550106`), simulated transcripts, recordings and analysis, test-mode campaigns, contacts, do-not-call entries and webhooks, a built-in Sample agent and sample number. Nothing is dialled or charged.

**Availability: Console only**

- Creating, configuring and publishing agents; adding and assigning phone numbers; creating, rotating and revoking API keys; members, billing and workspace settings.

**Availability: Planned**

- Creating, configuring and publishing agents through the API. Until then, agents are a console prerequisite.

**Changed.** `Idempotency-Key` is optional on every `POST` and `DELETE`. When you send one, a retry of the same request replays the original answer; without one, every request runs, so check the state before retrying an action whose outcome you do not know. See [Idempotency](/fundamentals/idempotency).

**Changed.** Older `sk_live_` keys keep working where they worked before, and are not accepted by API v1 ([`legacy_api_key_not_supported`](/errors/legacy_api_key_not_supported)). Create scoped keys in the platform under **Settings → API Keys**.

**Added (docs).** These docs: guides, API fundamentals, the API reference, a page for every error code, and machine-readable versions ([llms.txt](/llms.txt), Markdown pages, [OpenAPI JSON](/openapi.json) and [YAML](/openapi.yaml)).
