Skip to main content
GET
/
calls
/
{callId}
cURL
curl --request GET \
  --url https://api.attent.app/v1/calls/{callId} \
  --header 'x-api-key: <api-key>'
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "leadId": "c4f23a1b-d8e5-4f67-90c1-2a5b8d3e9f7c",
  "direction": "OUTBOUND",
  "callStatus": "COMPLETE",
  "durationSeconds": 145,
  "createdAt": "2026-06-15T14:30:00.000Z",
  "updatedAt": "2026-06-15T14:32:25.000Z",
  "summary": "Customer inquired about pricing and requested a follow-up meeting.",
  "transcript": [
    {
      "role": "assistant",
      "content": "Hi, this is Apten calling about your inquiry.",
      "startTime": "2026-06-15T14:30:01.000Z",
      "endTime": "2026-06-15T14:30:05.000Z"
    },
    {
      "role": "user",
      "content": "Yes, I had some questions about pricing.",
      "startTime": "2026-06-15T14:30:06.000Z",
      "endTime": "2026-06-15T14:30:10.000Z"
    }
  ],
  "isTransfer": false,
  "endedBy": "LEAD"
}

When to use this endpoint

Call webhooks include data.callId and basic metadata (direction, duration, transfer flags). CALL events from GET /leads/{leadId}/events carry the same metadata, and the event’s top-level id field is the call ID. Neither includes the full transcript or every transfer detail. Use GET /calls/{callId} to enrich a call after a webhook fires — for example, to pull the AI-generated summary and full transcript into your CRM or data warehouse.

Recordings

Call recordings are not returned by this endpoint today. Use the Apten dashboard for playback until recording access is added to the public API.

Webchat calls

For webchat voice calls, the response includes sessionId instead of leadId.

Authorizations

x-api-key
string
header
required

Path Parameters

callId
string
required

Call ID from data.callId (webhooks) or the event id (CALL events).

Response

Call details fetched successfully.

Full call record returned by GET /calls/{callId}.

id
string
required

Stable unique identifier for the call.

direction
enum<string>
required
Available options:
INBOUND,
OUTBOUND
callStatus
string
required

Current or final status of the call (e.g. COMPLETE, NO_ANSWER, IN_PROGRESS).

durationSeconds
integer
required

Length of the call in seconds.

createdAt
string<date-time>
required
updatedAt
string<date-time>
required
transcript
object[]
required

Ordered transcript turns. Empty array if no transcript is stored yet.

leadId
string

The lead (room) this call belongs to. Absent for webchat-only calls.

sessionId
string

The webchat session ID. Present for webchat voice calls instead of leadId.

summary
string

AI-generated summary of the conversation. Present after the call is processed; may be absent immediately after a terminal webhook if processing is still in flight.

isTransfer
boolean

true if this was a transfer to a human agent.

midCallTransfer
boolean

true if a transfer happened mid-call.

hasVoicemail
boolean

true if the call left a voicemail.

transferNumber
string

E.164 number the call was transferred to, if applicable.

fallbackTransferNumber
string

Fallback transfer number used when the primary transfer failed.

transferAnswerStatus
enum<string>
Available options:
answered,
no_answer,
pending
transferAnsweredBy
enum<string>
Available options:
human,
machine_start,
machine_end_beep,
machine_end_silence,
machine_end_other,
unknown
transferFallbackAttempted
boolean
transferFallbackAnswerStatus
enum<string>
Available options:
answered,
no_answer,
pending
transferFallbackAnsweredBy
enum<string>
Available options:
human,
machine_start,
machine_end_beep,
machine_end_silence,
machine_end_other,
unknown
midCallTransferDuration
integer

Seconds the lead was connected to a transfer recipient during a mid-call transfer.

endedBy
enum<string>
Available options:
LEAD,
AGENT,
SYSTEM,
UNKNOWN
aiCallWithoutHumanResponse
boolean

true if the lead never spoke during an AI-initiated call.

isFollowUp
boolean
isAiInitiated
boolean
hitCallScreening
boolean
reachedHumanAfterScreening
boolean
isForward
boolean