API reference

Executions

Read call results, logs, recordings and webhook deliveries.

An execution is the record of one call, inbound or outbound. It holds the status, the transcript, the cost breakdown, telephony details, the summary and extracted data. Executions are created by Make a call, by batches, by workflows and by inbound calls. You cannot create or edit one directly.

All routes except the recording download need Authorization: Bearer <key>. An unknown or foreign execution id answers 404 with Execution not found.

OperationMethod and path
Get an executionGET /executions/{execution_id}
Get an execution's logsGET /executions/{execution_id}/log
Get an execution of an agentGET /agent/{agent_id}/execution/{execution_id}
List an agent's executionsGET /v2/agent/{agent_id}/executions
List all of an agent's executionsGET /agent/{agent_id}/executions
List webhook deliveriesGET /executions/{execution_id}/webhooks
Resend the webhookPOST /executions/{execution_id}/webhook:resend
Download a recordingGET /recordings/{execution_id}.wav

Statuses

GroupStatuses
Not dialed yetscheduled, prepared, queued, rescheduled
Liveinitiated, ringing, in-progress
Wrapping upcall-disconnected (the call ended; post-call work is running)
Finalcompleted, no-answer, busy, failed, canceled, stopped, error, balance-low

Nothing leaves a final status, with one exception: a call with retry_config.enabled that ends in a retryable status goes back to scheduled under the same id.

The execution object

FieldTypeDescription
idstringExecution id.
agent_idstringThe agent that ran the call.
batch_idstringPresent for batch calls.
statusstringSee Statuses.
conversation_durationnumberSeconds of conversation.
total_costnumberTotal cost of the call, in minor units (hundredths) of currency.
currencystringThe billing currency of the costs on this execution, a three-letter code from the deployment's price book.
cost_breakdownobjectllm, network, platform, synthesizer, transcriber. The parts add up to total_cost.
transcriptstringOne role: text line per turn.
summarystringPresent when the agent has call_summary_enabled.
extracted_dataobjectAnswers to the agent's dispositions: {category: {name: {subjective, objective}}}.
telephony_dataobjectto_number, from_number, provider, call_type, provider_call_id, duration (a string), recording_url, hangup_by, hangup_reason and similar.
transfer_call_dataobjectDetails of a call transfer, when one happened.
tool_call_logsarrayFunction tool calls made during the call.
context_detailsobjectPer-call context, such as recipient_data, retry_count and rescheduled_reason.
answered_by_voice_mailbooleanPresent when voicemail detection ran.
error_messagestringPresent when the call failed.
scheduled_atstringPresent for scheduled or rescheduled calls.
user_number, agent_numberstringThe customer's and the agent's numbers, whatever the call direction.
retry_count, retry_configinteger, objectPresent when retries are enabled.
batch_run_detailsobjectPresent for batch calls: status, created_at, updated_at, retried.
node_path, node_extracted_dataarray, objectPresent for graph agents.
created_at, updated_atstringUTC timestamps with microseconds.

Fields with no value are left out of the response; they are never null.

Operations

Get an execution

GET /executions/{execution_id}

Returns one execution.

Auth: API key or session token. Role: viewer and up.

ParameterInTypeRequiredDescription
execution_idpathstring (UUID)yesThe execution.

Request

bash
curl https://api.sevennadi.si/executions/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11 \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

json
{
  "id": "0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11",
  "agent_id": "f412f2b1-3493-4458-bcf2-8676cc798edd",
  "conversation_duration": 21.4,
  "total_cost": 3.2,
  "status": "completed",
  "transcript": "assistant: Hi Asha, this is Example Bank calling.\nuser: Yes, speaking.\nassistant: Sure. (mock reply to: Yes, speaking.)",
  "created_at": "2026-10-13T07:30:11.120000Z",
  "updated_at": "2026-10-13T07:30:14.480000Z",
  "cost_breakdown": {"llm": 0.2, "network": 0.7, "platform": 1.4, "synthesizer": 0.6, "transcriber": 0.3},
  "telephony_data": {
    "to_number": "+919876500012",
    "from_number": "+918045550100",
    "provider": "twilio",
    "call_type": "outbound",
    "provider_call_id": "MOCK5f0c1e9b2a7d4c6e8f1a2b3c",
    "hosted_telephony": true,
    "duration": "21.4",
    "recording_url": "https://api.sevennadi.si/recordings/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11.wav?sig=0123456789abcdef0123456789abcdef",
    "hangup_by": "Caller",
    "hangup_reason": "Normal Hangup"
  },
  "transfer_call_data": {},
  "tool_call_logs": [],
  "context_details": {"bypass_call_guardrails": false},
  "user_number": "+919876500012",
  "agent_number": "+918045550100"
}

The numbers above are illustrative, not a price list.

Errors

StatusMessage
404Execution not found

Get an execution's logs

GET /executions/{execution_id}/log

Returns the raw component log of a call in order: what was sent to and received from telephony, the transcriber, the language model and the synthesizer.

Auth: API key or session token. Role: viewer and up.

ParameterInTypeRequiredDescription
execution_idpathstring (UUID)yesThe execution.

Request

bash
curl https://api.sevennadi.si/executions/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11/log \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

json
{
  "status": "success",
  "data": [
    {
      "created_at": "2026-10-13T07:30:11.300000Z",
      "type": "request",
      "component": "telephony",
      "provider": "twilio",
      "data": "dial +919876500012"
    },
    {
      "created_at": "2026-10-13T07:30:12.100000Z",
      "type": "response",
      "component": "transcriber",
      "provider": "deepgram",
      "data": "Yes, speaking."
    }
  ]
}

type is request or response. component is one of telephony, transcriber, llm, synthesizer, or a feature name such as knowledgebase, voicemail_detection or reschedule.

Errors

StatusMessage
404Execution not found

Get an execution of an agent

GET /agent/{agent_id}/execution/{execution_id}

Returns one execution, and also checks that it belongs to the given agent.

Auth: API key or session token. Role: viewer and up.

ParameterInTypeRequiredDescription
agent_idpathstring (UUID)yesThe agent.
execution_idpathstring (UUID)yesThe execution.

Request

bash
curl https://api.sevennadi.si/agent/f412f2b1-3493-4458-bcf2-8676cc798edd/execution/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11 \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

The execution object, as in Get an execution.

Errors

StatusMessage
404Execution not found (also when the execution belongs to another agent)

List an agent's executions

GET /v2/agent/{agent_id}/executions

Returns an agent's executions created inside a time window, newest first, one page at a time. Executions of a deleted agent can still be listed.

Auth: API key or session token. Role: viewer and up.

ParameterInTypeRequiredDescription
agent_idpathstring (UUID)yesThe agent.
fromquerystringyesStart of the window, ISO 8601. A value without an offset is read as UTC.
toquerystringyesEnd of the window, ISO 8601.
page_numberqueryintegernoStarts at 1. Default 1.
page_sizequeryintegerno1 to 50. Default 20.
statusquerystringnoOne execution status.
call_typequerystringnoinbound or outbound.
providerquerystringnoTelephony provider recorded on the call, for example twilio.
answered_by_voice_mailquerybooleannoFilter on voicemail.
batch_idquerystringnoOnly calls of this batch.

Request

bash
curl "https://api.sevennadi.si/v2/agent/f412f2b1-3493-4458-bcf2-8676cc798edd/executions?from=2026-10-01T00:00:00Z&to=2026-10-31T23:59:59Z&status=completed&page_size=20" \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

json
{
  "page_number": 1,
  "page_size": 20,
  "total": 1,
  "has_more": false,
  "data": [
    {"id": "0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11", "agent_id": "f412f2b1-3493-4458-bcf2-8676cc798edd", "status": "completed", "conversation_duration": 21.4, "total_cost": 3.2}
  ]
}

Each entry of data is a full execution object. See Pagination.

Errors

StatusMessage
400from and to are required
400from must be an ISO 8601 timestamp or to must be an ISO 8601 timestamp
400A validation message such as query.page_size: Input should be less than or equal to 50
404Agent not found

List all of an agent's executions

GET /agent/{agent_id}/executions

Returns the agent's executions, newest first, as a plain array of at most 1,000: an agent with more calls gets only the newest 1,000. There is no paging and no filter, so use the version 2 route for agents with many calls.

Auth: API key or session token. Role: viewer and up.

ParameterInTypeRequiredDescription
agent_idpathstring (UUID)yesThe agent.

Request

bash
curl https://api.sevennadi.si/agent/f412f2b1-3493-4458-bcf2-8676cc798edd/executions \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

An array of execution objects.

Errors

StatusMessage
404Agent not found

List webhook deliveries

GET /executions/{execution_id}/webhooks

Returns every webhook delivery of an execution, oldest first: which status was sent where, and how it went. This route is not part of the core OpenAPI document.

Auth: API key or session token. Role: viewer and up.

ParameterInTypeRequiredDescription
execution_idpathstring (UUID)yesThe execution.

Request

bash
curl https://api.sevennadi.si/executions/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11/webhooks \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

json
{
  "data": [
    {
      "id": 4812,
      "webhook_url": "https://hooks.example.test/calls",
      "status": "completed",
      "attempts": 1,
      "response_code": 200,
      "delivered": true,
      "delivered_at": "2026-10-13T07:30:15.020000Z",
      "error": null,
      "created_at": "2026-10-13T07:30:14.500000Z"
    }
  ]
}

Errors

StatusMessage
404Execution not found

Resend the webhook

POST /executions/{execution_id}/webhook:resend

Queues the execution's current payload for its webhook again. The agent's status filter does not apply to a resend. The destination is the call's own agent_data.webhook_url if it had one, otherwise the agent's webhook_url. This route is not part of the core OpenAPI document.

Auth: API key or session token. Role: admin and up.

ParameterInTypeRequiredDescription
execution_idpathstring (UUID)yesThe execution.

Request

bash
curl -X POST "https://api.sevennadi.si/executions/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11/webhook:resend" \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 202 Accepted

json
{
  "execution_id": "0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11",
  "webhook_url": "https://hooks.example.test/calls",
  "status": "completed",
  "delivery_id": 4813
}

Errors

StatusMessage
403Your role (member) can't change webhooks. It needs admin access; ask an owner or admin of the workspace.
404Execution not found
409No webhook is configured for this execution's agent

Download a recording

GET /recordings/{execution_id}.wav

Downloads a call recording that the platform hosts, as audio/wav. Use the complete URL from telephony_data.recording_url; do not build it yourself. The URL carries a per-recording signature in the sig query parameter and needs no Authorization header, so treat it like a secret link.

The platform hosts recordings of mock calls (tones, one per turn) and of calls recorded by its own voice engine. For other live calls recording_url points at the telephony provider.

Auth: The signature in the URL. No API key.

ParameterInTypeRequiredDescription
execution_idpathstring (UUID)yesThe execution.
sigquerystringyesThe signature, as issued in recording_url.

Request

bash
curl -o call.wav "https://api.sevennadi.si/recordings/0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11.wav?sig=0123456789abcdef0123456789abcdef"

Response 200 OK

The WAV file.

Errors

StatusMessage
403Invalid or missing signature
404Recording not found