AurionAI Docs

Calls & Recordings

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

Calls & Recordings

The Calls API provides access to voice call sessions, transcripts, and recording metadata. 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": "recordings/production/0b6e2c1d-4f3a-4e8b-9c7d-2a1b3c4d5e6f/2026/03/9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f.wav",
      "recording_duration_seconds": 185,
      "recording_size_bytes": 1482240,
      "recording_format": "wav",
      "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": "recordings/production/0b6e2c1d-4f3a-4e8b-9c7d-2a1b3c4d5e6f/2026/03/9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f.wav",
  "recording_duration_seconds": 185,
  "recording_size_bytes": 1482240,
  "recording_format": "wav",
  "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 identifier as the channel provides it, so not always an E.164 number. Phone calls carry the caller's number as received (it can lack the +, or be prefixed sip_), or unknown; web widget, WebRTC and mobile-app calls carry unknown. Any other stored value, such as the caller's email address or display name on calls recorded up to early August 2026, is returned as unknown
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 | nullStorage key of the recording (recordings/<environment>/<tenant_id>/<YYYY>/<MM>/<call_id>.wav), or null if no recording. Not a download link: the public API does not serve recording audio
recording_duration_secondsinteger | nullRecording length in seconds
recording_size_bytesinteger | nullRecording file size in bytes
recording_formatstring | nullRecording container format: wav
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": "recordings/production/0b6e2c1d-4f3a-4e8b-9c7d-2a1b3c4d5e6f/2026/03/9f1c8e3a-7b2d-4c5e-8f90-1a2b3c4d5e6f.wav",
  "recording_format": "wav",
  "recording_size_bytes": 1482240,
  "recording_duration_seconds": 185
}

The recording_url is the recording's storage key, not a download link: the public API does not serve the recording audio.

Call Statuses

The status field is surfaced as stored on the call record. It is one of:

StatusDescription
ringingCall is ringing, not yet answered
in_progressCall is in progress
completedCall ended normally
failedCall failed (network issue, timeout)
no_answerCall was not answered

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