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 accountGET /v1/agent-get/{agent_id}— get an agent and its variable contractPOST /v1/agent-create— create a prompt-based agent (deployed immediately)PATCH /v1/agent-modify/{agent_id}— update a prompt-based agent
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 publictranscript[] 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
Thetranscript 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
systemontranscript[].role. Previouslyrolewas alwaysagentorcaller; the enum now also includessystemfor flow-agent automation events. The vast majority of consumers (which iterate byrole == 'agent' || role == 'caller') will see no change beyond a few extra entries they silently ignore. - New optional field
transcript[].function_invocationonsystementries — carries the request method, URL, headers (sensitive values redacted), and request body captured just before the HTTP call dispatches. - New optional field
transcript[].function_resultonsystementries — 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).
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
Initial public release of the Voicy API.
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:- Announcements made at least 6 months in advance
- Deprecated features marked in documentation
- Migration guides provided
- Old versions remain functional during deprecation period
Subscribe to our status page for real-time updates on API availability.