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

# Changelog

> API updates and changes

# Changelog

All notable changes to the Voicy API will be documented here.

## June 2026

### Agent API (prompt-based agents)

A minimal Agent API is now available:

* `GET /v1/agent-list` — list the agents in your account
* `GET /v1/agent-get/{agent_id}` — get an agent and its variable contract
* `POST /v1/agent-create` — create a prompt-based agent (deployed immediately)
* `PATCH /v1/agent-modify/{agent_id}` — update a prompt-based agent

The API manages **prompt-based** agents. Flow agents (built in the dashboard)
are listable and gettable but cannot be created or modified via the API, and
their internal configuration is never returned. An agent's `agent_id` is what
you pass as `override_agent_id` on Dial.

### `call-extract` removed from the public API

Retrying summary/variable extraction is now a dashboard-only operation. The
`POST /v1/call-extract/{call_id}` endpoint has been removed and returns `404`.

**Why:** A retry re-runs the full post-call orchestration — it re-fires
notification emails, webhooks, and campaign advancement as side effects — which
is not safe as a self-serve API operation.

**Action required:** if you were calling this endpoint with an API key, trigger
re-extraction from the dashboard's call view instead, or contact support.

### `count-calls` removed from the documentation

The `POST /v1/count-calls` endpoint was documented but never deployed (it
returned `404`). It has been removed from the reference. Use the `total_count`
field already returned by `POST /v1/call-list` — it reflects the full match
count for your `filter_criteria`, independent of `limit`/pagination.

### Transcript shape clarified

The public `transcript[]` returned by `GET /v1/call-get/{call_id}` is documented
as exactly `{ role, content, timestamp_ms }`. The `role` enum is `agent`,
`caller`, or `system`. Internal per-turn fields (latency breakdowns, caller
gender) and flow-agent `function_invocation`/`function_result` payloads are not
part of the public API and are not returned to API-key callers. This is a
documentation correction — API-key responses already behaved this way; no
response payloads changed.

## May 2026

### `call-delete` removed from the public API

Call deletion has been moved to a dashboard-only operation. The
`DELETE /v1/call-delete/{call_id}` and `POST /v1/call-delete` endpoints
no longer exist on `api.voicy.co` and now return `404`.

**Why:** Deleting a call is now treated as a billing write-off — deleted
calls are excluded from the account's consumed-minutes balance — so the
action has been restricted to internal/global-admin use via the
dashboard.

**Action required:** if you were calling these endpoints with an API
key, contact support to delete calls on your behalf.

## April 2026

### Function-call visibility on transcripts

The `transcript` array returned by `GET /v1/call-get/{id}` now exposes the HTTP
function invocations that flow-agent function nodes make during a call.

**Additive changes — no field removals or behavior changes on existing fields:**

* **New role** `system` on `transcript[].role`. Previously `role` was always
  `agent` or `caller`; the enum now also includes `system` for flow-agent
  automation events. The vast majority of consumers (which iterate by `role ==
  'agent' || role == 'caller'`) will see no change beyond a few extra entries
  they silently ignore.
* **New optional field** `transcript[].function_invocation` on `system`
  entries — carries the request method, URL, headers (sensitive values
  redacted), and request body captured just before the HTTP call dispatches.
* **New optional field** `transcript[].function_result` on `system` entries —
  carries the status code, response body, response headers, extracted
  variables, duration, and any classified error (`timeout`, `non_2xx`,
  `ssrf_blocked`, `bad_response_json`, `type_validation_failed`,
  `invalid_url`, `network`).

Each function-node call produces exactly two `system` turns (an invocation
and a result), correlated by a shared `invocation_id`. URL basic-auth
credentials, known-sensitive query parameters (`api_key`, `token`,
`access_token`, etc.), and sensitive request/response headers
(`Authorization`, `Cookie`, `Set-Cookie`, and anything matching
`token|secret|password|api_key|bearer`) are redacted at capture time, so the
persisted transcript is safe to share.

**Action required:** if your code uses an exhaustive `switch` on the `role`
field (`case 'agent': ... case 'caller': ... default: throw`), add handling
for `'system'` or ignore it.

## January 2026

### v1.0 Release

<Note>
  Initial public release of the Voicy API.
</Note>

#### New Features

* **Phone Call API**: Create, retrieve, list, update, and delete phone calls
* **API Key Authentication**: Secure API access with account-scoped keys
* **Dual Authentication**: Support for both API keys and JWT tokens
* **Dynamic Variables**: Inject custom data into agent prompts
* **Call Metadata**: Attach custom metadata to calls for CRM integration
* **Transcript Access**: Full transcript available via API (text and structured)
* **Recording URLs**: Signed URLs for call recordings

#### Endpoints

| Endpoint                      | Description             |
| ----------------------------- | ----------------------- |
| `POST /v1/call-dial`          | Initiate outbound calls |
| `GET /v1/call-get/{id}`       | Retrieve call details   |
| `POST /v1/call-list`          | List and filter calls   |
| `DELETE /v1/call-delete/{id}` | Delete calls            |

***

## Coming Soon

### Planned Features

* **Webhooks**: Real-time notifications for call events
* **Web Call API**: Browser-based voice calls via WebRTC
* **Agent API**: Manage agents programmatically
* **Phone Number API**: Manage phone number assignments
* **Analytics API**: Call statistics and usage metrics

### Deprecation Policy

When we deprecate API features:

1. Announcements made at least 6 months in advance
2. Deprecated features marked in documentation
3. Migration guides provided
4. Old versions remain functional during deprecation period

***

<Info>
  Subscribe to our [status page](https://status.voicy.co) for real-time updates on API availability.
</Info>
