Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getsmartalex.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Calls API gives you read access to call records, transcripts, and metadata for every call SmartAlex has handled in your workspace.
Outbound calls are placed via Campaigns, not by directly creating calls through this API. Web-call sessions for embedded widgets are handled by the embeddable widget itself, not via a programmatic API.

List Calls

Get call records with optional filtering.
curl -X GET "https://api.getsmartalex.com/v1/calls?page=1&per_page=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Query Parameters

ParameterTypeDescription
statusstringFilter by call_status (e.g. completed, failed)
since_hoursintegerRestrict to calls within the last N hours
pageintegerPage number (default: 1)
per_pageintegerItems per page (default: 20)

Response

{
  "data": [
    {
      "id": "call_abc123",
      "agent_id": "agent_def456",
      "contact_id": "contact_xyz789",
      "direction": "inbound",
      "call_status": "completed",
      "duration_seconds": 245,
      "sentiment": "positive",
      "cost": 0.45,
      "start_timestamp": "2026-01-15T14:30:00Z",
      "end_timestamp": "2026-01-15T14:34:05Z"
    }
  ],
  "meta": {
    "total": 150,
    "page": 1,
    "per_page": 20
  }
}

Get Call

Retrieve full detail for a specific call, including transcript.
curl -X GET "https://api.getsmartalex.com/v1/calls/call_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "data": {
    "id": "call_abc123",
    "agent_id": "agent_def456",
    "contact_id": "contact_xyz789",
    "campaign_id": null,
    "direction": "inbound",
    "call_status": "completed",
    "duration_seconds": 245,
    "sentiment": "positive",
    "cost": 0.45,
    "summary": "Caller requested to schedule an appointment for next Tuesday at 2pm. Collected contact information and confirmed booking.",
    "transcript": [
      {
        "speaker": "agent",
        "text": "Hello, thank you for calling ABC Company. This is Alex, how can I help you today?",
        "timestamp": 0
      },
      {
        "speaker": "caller",
        "text": "Hi, I'd like to schedule an appointment.",
        "timestamp": 5
      }
    ],
    "start_timestamp": "2026-01-15T14:30:00Z",
    "end_timestamp": "2026-01-15T14:34:05Z"
  }
}

Call Direction

ValueMeaning
inboundThe caller dialled your SmartAlex phone number
outboundThe agent placed the call (e.g. via a campaign)
webThe call came from a SmartAlex widget on your website

Call Status

ValueDescription
completedCall ended normally
voicemailReached voicemail
no_answerNo one answered
busyLine was busy
failedCall could not be completed

Sentiment

ValueMeaning
positiveCaller expressed satisfaction or interest
neutralStandard informational exchange
negativeCaller frustrated or dissatisfied

Recordings and transcripts

Call recordings and transcripts are accessible from the dashboard under Call Logs. The API returns the transcript inline with GET /calls/:id. Audio recording URLs are available from the dashboard with role-gated access; programmatic recording access is on the roadmap — contact support if you need it.

Error Codes

CodeDescription
call_not_foundCall ID doesn’t exist