Skip to content

List recent calls newest-first (30-day retention)

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

Authorizations

Parameters

Query Parameters

agentId
string

Only calls handled by this agent

limit
number

Page size (default 25, max 100)

cursor
string

Pagination cursor from a previous response

Responses

200

Successful response

Media typeapplication/json
object
calls
required
Array<object>
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
cursor

Pass back as ?cursor= to fetch the next page.

string
Example
{
"calls": [
{
"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"
}
}