AurionAI Docs

Calls & Recordings

Access voice call data, transcripts, and recordings via the Aurion API.

Calls & Recordings

The Calls API provides access to voice call sessions, transcripts, and recordings. Every AI voice conversation — whether from phone, mobile app, or web widget — is tracked as a call record.

List Calls

cURL
curl "https://apps.aurionai.net/api/v1/calls?limit=10&start_date=2026-03-01T00:00:00Z&end_date=2026-03-31T23:59:59Z" \
  -H "X-API-Key: itsm_sk_live_xxxx"
Python
import requests

response = requests.get(
    "https://apps.aurionai.net/api/v1/calls",
    headers={"X-API-Key": "itsm_sk_live_xxxx"},
    params={
        "limit": 10,
        "start_date": "2026-03-01T00:00:00Z",
        "end_date": "2026-03-31T23:59:59Z",
    },
)
calls = response.json()
TypeScript
const response = await fetch(
  "https://apps.aurionai.net/api/v1/calls?limit=10&start_date=2026-03-01T00:00:00Z&end_date=2026-03-31T23:59:59Z",
  {
    headers: { "X-API-Key": "itsm_sk_live_xxxx" },
  }
);
const calls = await response.json();

Response:

{
  "calls": [
    {
      "id": "9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f",
      "twilio_call_sid": "CA1234567890abcdef1234567890abcdef",
      "livekit_room_id": "call-9f1c8e3a",
      "phone_number": "+33612345678",
      "direction": "inbound",
      "status": "completed",
      "start_time": "2026-03-08T10:30:00Z",
      "end_time": "2026-03-08T10:33:05Z",
      "duration_seconds": 185,
      "recording_url": "https://s3.eu-west-3.amazonaws.com/recordings/9f1c8e3a.ogg",
      "recording_duration_seconds": 185,
      "recording_size_bytes": 1482240,
      "recording_format": "ogg",
      "outcome": "resolved",
      "created_at": "2026-03-08T10:30:00Z",
      "updated_at": "2026-03-08T10:33:05Z"
    }
  ],
  "total": 234,
  "limit": 10,
  "offset": 0
}

Query Parameters:

ParameterTypeDescription
start_datestringOptional ISO-8601 date-time. Returns only calls where start_time >= start_date.
end_datestringOptional ISO-8601 date-time. Returns only calls where start_time <= end_date.
limitintegerResults per page (default: 20, min: 1, max: 100)
offsetintegerNumber of results to skip (default: 0)

Results are always ordered by start_time descending. Unknown query parameters are ignored.

Get Call Details

curl "https://apps.aurionai.net/api/v1/calls/9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f" \
  -H "X-API-Key: itsm_sk_live_xxxx"

The call_id path parameter is a UUID. A non-UUID value returns 422. An unknown or cross-tenant ID returns 404 {"detail": "Call not found"}.

Response:

{
  "id": "9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f",
  "twilio_call_sid": "CA1234567890abcdef1234567890abcdef",
  "livekit_room_id": "call-9f1c8e3a",
  "phone_number": "+33612345678",
  "direction": "inbound",
  "status": "completed",
  "start_time": "2026-03-08T10:30:00Z",
  "end_time": "2026-03-08T10:33:05Z",
  "duration_seconds": 185,
  "recording_url": "https://s3.eu-west-3.amazonaws.com/recordings/9f1c8e3a.ogg",
  "recording_duration_seconds": 185,
  "recording_size_bytes": 1482240,
  "recording_format": "ogg",
  "outcome": "resolved",
  "created_at": "2026-03-08T10:30:00Z",
  "updated_at": "2026-03-08T10:33:05Z"
}

The detail response is identical to a single item in the list response.

Call Fields:

FieldTypeDescription
idstringCall UUID
twilio_call_sidstringTwilio call SID (for PSTN calls)
livekit_room_idstringLiveKit room identifier for the session
phone_numberstringCaller phone number (E.164)
directionstringCall direction, typically inbound or outbound
statusstringCall status (see below)
start_timestring | nullISO-8601 call start time
end_timestring | nullISO-8601 call end time
duration_secondsinteger | nullCall duration in seconds
recording_urlstring | nullStored recording URL, or null if no recording
recording_duration_secondsinteger | nullRecording length in seconds
recording_size_bytesinteger | nullRecording file size in bytes
recording_formatstring | nullRecording container format (e.g. ogg)
outcomestring | nullCall outcome label
created_atstring | nullISO-8601 record creation time
updated_atstring | nullISO-8601 last update time

Get Transcript

Retrieve the conversation transcript for a call as an ordered list of exchanges:

curl "https://apps.aurionai.net/api/v1/calls/9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f/transcript" \
  -H "X-API-Key: itsm_sk_live_xxxx"

An unknown or cross-tenant ID returns 404 {"detail": "Call not found"}. A call with no recorded exchanges returns an empty exchanges array.

Response:

{
  "call_id": "9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f",
  "exchanges": [
    {
      "sequence_number": 1,
      "user_transcript": "Hi, my VPN is not connecting since this morning.",
      "agent_response": "I can help with that. Let me check your account first.",
      "error": false,
      "error_message": null,
      "exchange_timestamp": "2026-03-08T10:30:12Z"
    }
  ]
}

Each exchange pairs the caller's transcribed speech (user_transcript) with the agent's reply (agent_response). error flags a failed turn, with error_message carrying the detail when present.

Get Recording

Retrieve the stored recording metadata for a call:

curl "https://apps.aurionai.net/api/v1/calls/9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f/recording" \
  -H "X-API-Key: itsm_sk_live_xxxx"

An unknown or cross-tenant ID returns 404 {"detail": "Call not found"}. A call that has no recording stored returns 404 {"detail": "Recording not available"}.

Response:

{
  "call_id": "9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f",
  "recording_url": "https://s3.eu-west-3.amazonaws.com/recordings/9f1c8e3a.ogg",
  "recording_format": "ogg",
  "recording_size_bytes": 1482240,
  "recording_duration_seconds": 185
}

The recording_url is the stored recording location as recorded against the call.

Call Statuses

The status field is surfaced as stored on the call record. Common values you will see:

StatusDescription
activeCall is in progress
completedCall ended normally
failedCall failed (network issue, timeout)

Webhook Events

Subscribe to call events via webhooks:

EventDescription
call.startedA voice call session started
call.completedA voice call session ended
call.escalatedA call was escalated to a human agent

Required Scope

All call endpoints require the calls:read scope on your API key.

On this page