SMAO API Documentation
Public APICalls & recordings

List calls (paginated)

GET
/calls
AuthorizationBearer <token>

API key in the Authorization: Bearer <key> header. Keys are created in the SMAO dashboard (Settings → API Keys).

In: header

Query Parameters

cursor?string

Opaque cursor from a prior meta.next_cursor. Base64url-encoded (unpadded) — do not parse or construct it manually.

Match^[A-Za-z0-9_-]+$
limit?integer

Items per page (1–100, default 25).

Default25
Range1 <= value <= 100
assistant_id?string

Filter by assistant.

Match^[a-f0-9]{24}$
assistant_phone?string

Filter by assistant phone number. E.164 format — a leading + followed by 6–20 digits.

Match^\+\d{6,20}$
created_from?string
Formatdate-time
created_to?string
Formatdate-time

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.smao.ai/api/v1/calls"
{
  "data": [
    {
      "id": "string",
      "assistant_id": "string",
      "assistant_name": "string",
      "assistant_phone": "string",
      "direction": "inbound",
      "source": "inbound_phone",
      "phone_number": "string",
      "duration_seconds": 0,
      "done": true,
      "success": true,
      "language": "string",
      "started_at": "2019-08-24T14:15:22Z",
      "ended_at": "2019-08-24T14:15:22Z",
      "created_at": "2019-08-24T14:15:22Z"
    }
  ],
  "meta": {
    "has_more": true,
    "next_cursor": "string"
  }
}
{
  "error": {
    "code": "validation_failed",
    "message": "Validation failed"
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Missing API key"
  }
}
{
  "error": {
    "code": "subscription_required",
    "message": "This feature is not available in your current subscription. Please upgrade to a higher plan"
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "No permission"
  }
}
{
  "error": {
    "code": "not_found",
    "message": "Not found"
  }
}
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded"
  }
}
{
  "error": {
    "code": "internal_error",
    "message": "An unexpected error occurred."
  }
}