Skip to content

Get a call with transcript timeline and recording playback URL

GET
/voice/calls/{trackingId}
curl --request GET \
--url https://api.pingram.io/voice/calls/example \
--header 'Authorization: Bearer <token>'

Authorizations

Parameters

Path Parameters

trackingId
required
string

Call tracking id

Responses

200

Successful response

Media typeapplication/json
object
call
required
object
trackingId
required
string
status
required
string
Allowed values: active ended failed
agentId

Omitted for playground calls made before the agent was saved.

string
agentName
required
string
direction
required
string
Allowed values: inbound outbound
source
required
string
Allowed values: pstn web
from
required
string
to
required
string
startedAt
required
string
durationSeconds
required
number
outcome
string
Allowed values: completed transferred voicemail no_answer failed
endReason

Machine-readable reason the call ended — persisted on every call record.

string
Allowed values: user_hangup agent_end_call silence_timeout max_duration free_tier_limit transferred voicemail provider_error connection_lost no_answer session_expired server_shutdown
endDetail

Short human-readable detail (e.g. provider error message).

string
timeline
required

Full chronological timeline (transcript + ops events).

Array<object>

Chronological call timeline entry — transcript turns and operational events share one stream, sorted by offsetMs.

Speech: type is ‘user’ | ‘assistant’ | ‘tool’ with text. Ops: type is an event name (session_created, barge_in_cancel, …) with optional detail.

object
offsetMs
required
number
type
required
string
text
string
detail
string
latency
object
sttMs
number
llmMs
number
ttsMs
number
totalMs
required
number
toolName
string
toolArgs
object
key
additional properties
toolResult
string
recordingUrl
string
variables
object
key
additional properties
string
cost

Customer-facing call cost on GET /voice/calls/{trackingId} (SDK: GetVoiceCallResponseCallCost).

object
totalUsd
required
number
lines
required
Array<object>

One line item in a call cost breakdown (API / SDK).

object
role
required
string
label
required
string
provider

AI model vendor when applicable; omitted for phone-line charges.

string
model
string
amountUsd
required
number
detail
string
Example
{
"call": {
"status": "active",
"direction": "inbound",
"source": "pstn",
"outcome": "completed",
"endReason": "user_hangup"
}
}

400

Bad Request - validation errors, invalid input

Media typeapplication/json

Standard error response for API errors.

object
trackingId
required

Unique tracking ID for the request.

string
error
required

Structured error details for API error responses.

object
code
required

Machine-readable error code.

string
message
required

Human-readable error message.

string
fix

Actionable hint for fixing the error.

string
Examplegenerated
{
"trackingId": "example",
"error": {
"code": "example",
"message": "example",
"fix": "example"
}
}

401

Unauthorized

402

Payment Required - usage limits exceeded

Media typeapplication/json

Standard error response for API errors.

object
trackingId
required

Unique tracking ID for the request.

string
error
required

Structured error details for API error responses.

object
code
required

Machine-readable error code.

string
message
required

Human-readable error message.

string
fix

Actionable hint for fixing the error.

string
Examplegenerated
{
"trackingId": "example",
"error": {
"code": "example",
"message": "example",
"fix": "example"
}
}

500

Internal Server Error

502

Bad Gateway - provider error

Media typeapplication/json

Standard error response for API errors.

object
trackingId
required

Unique tracking ID for the request.

string
error
required

Structured error details for API error responses.

object
code
required

Machine-readable error code.

string
message
required

Human-readable error message.

string
fix

Actionable hint for fixing the error.

string
Examplegenerated
{
"trackingId": "example",
"error": {
"code": "example",
"message": "example",
"fix": "example"
}
}