Phone & voice · Calls

List all calls (unified history)

Returns all calls (unified history), one page at a time.

GEThttps://api.pozy.ai/v1/calls
listCalls

Guide: Call history and recordings

Request

Send your API key as Authorization: Bearer pz_live_.... Read-only keys can call it. Keys with the messages resource group disabled get 403 resource_group_disabled. Authentication

Query parameters

NameTypeNotes
channelstringOne of whatsapp, pstn
statusstringOne of ringing, answered, ended, failed
directionstringOne of inbound, outbound
numberstring
searchstring
beforestring (date-time)
limitintegerDefault 501 to 200

Example

curl -X GET "https://api.pozy.ai/v1/calls?limit=50" \
  -H "Authorization: Bearer $POZY_API_KEY"

Response

200 on success

  • callsarray of object
    34 child fields
    • _idstring
    • accountIdstring
    • conversationIdstring

      Can be null.

    • contactIdstring

      Can be null.

    • channelstring

      One of whatsapp, pstn.

    • directionstring

      One of inbound, outbound.

    • fromstring
    • tostring
    • forwardTostring

      Can be null.

    • greetingstring

      Can be null.

    • statusstring

      One of ringing, answered, ended, failed.

    • isVoicemailboolean
    • amdboolean
    • answeredMachineboolean

      Can be null.

    • forwardCallerIdstring

      One of business, caller.

    • recordingEnabledboolean
    • transcriptionEnabledboolean
    • transcriptionLanguagestring

      One of auto, en, es.

    • startedAtstring (date-time)
    • answeredAtstring (date-time)

      Can be null.

    • endedAtstring (date-time)

      Can be null.

    • transferredAtstring (date-time)

      Can be null.

    • durationSecondsinteger
    • endReasonstring

      One of hangup, no_answer, rejected, error.

    • hangupCausestring

      Can be null.

    • sipHangupCausestring

      Can be null.

    • callErrorsarray of object
      2 child fields
      • codeinteger
      • messagestring
    • recordingUrlstring

      Can be null.

    • lastTranscriptSnippetstring

      Can be null.

    • transcriptarray of object
      3 child fields
      • textstring
      • confidencenumber
      • atstring (date-time)
    • billingobject
      10 child fields
      • metaMinutesnumber
      • carrierSecondsnumber
      • transcriptionSecondsnumber
      • transcriptionCostUSDnumber
      • metaCostUSDnumber
      • carrierCostUSDnumber
      • recordingCostUSDnumber
      • billableCostUSDnumber
      • totalCostUSDnumber
      • currencystring
    • createdAtstring (date-time)
    • updatedAtstring (date-time)
    • contactNamestring
  • nextCursorstring (date-time)

    Can be null.

200 response
{
  "calls": [
    {
      "_id": "635d87e261ae344ef27fd1df",
      "accountId": "696e0b682d0a31188e7a2ba9",
      "conversationId": "6e525f3820fc636aa96d2ee9",
      "contactId": "642d31f43531ce7d44aa5013",
      "channel": "whatsapp",
      "direction": "inbound",
      "from": "+14155550123",
      "to": "+14155550123",
      "forwardTo": "string",
      "greeting": "string",
      "status": "ringing",
      "isVoicemail": true,
      "amd": true,
      "answeredMachine": true,
      "forwardCallerId": "business",
      "recordingEnabled": true,
      "transcriptionEnabled": true,
      "transcriptionLanguage": "auto",
      "startedAt": "2026-10-02T09:00:00.000Z",
      "answeredAt": "2026-10-02T09:00:00.000Z",
      "endedAt": "2026-10-02T09:00:00.000Z",
      "transferredAt": "2026-10-02T09:00:00.000Z",
      "durationSeconds": 1,
      "endReason": "hangup",
      "hangupCause": "string",
      "sipHangupCause": "string",
      "callErrors": [
        {
          "code": 1,
          "message": "Hello from Pozy"
        }
      ],
      "recordingUrl": "https://pozy.ai/media/example-1.jpg",
      "lastTranscriptSnippet": "string",
      "transcript": [
        {
          "text": "Hello from Pozy",
          "confidence": 12.5,
          "at": "2026-10-02T09:00:00.000Z"
        }
      ],
      "billing": {
        "metaMinutes": 12.5,
        "carrierSeconds": 12.5,
        "transcriptionSeconds": 12.5,
        "transcriptionCostUSD": 12.5,
        "metaCostUSD": 12.5,
        "carrierCostUSD": 12.5,
        "recordingCostUSD": 12.5,
        "billableCostUSD": 12.5,
        "totalCostUSD": 12.5,
        "currency": "USD"
      },
      "createdAt": "2026-10-02T09:00:00.000Z",
      "updatedAt": "2026-10-02T09:00:00.000Z",
      "contactName": "Acme"
    }
  ],
  "nextCursor": "2026-10-02T09:00:00.000Z"
}

Errors

Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:

400invalid_request_errorA parameter or body field is missing or invalid. param names it.
401authentication_errorThe API key is missing, revoked or expired.
403permission_errorThe key is scoped to other profiles or has this resource group disabled.
429rate_limit_errorToo many requests this minute. Wait for Retry-After seconds.

Every code is listed in Errors.

More in Calls