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

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
configName
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
answeredAt

Set when the callee answers. Absent while the phone is still ringing.

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, such as why the call failed.

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"
}
}