Skip to content
View as Markdown

Call logs

Returns the authenticated user's dialer call logs, inbound and outbound, including a recording_url when a recording is available. This is the call log analog of /get-messages-api.

GET/get-call-logs-apiBearer token
Inbound and outbound
Omit direction to return inbound and outbound calls. Pass direction=outbound to get the previous outbound only behavior. Inbound rows include missed calls and voicemails. A voicemail's audio is in recording_url and its text is in transcript.
recording_url can be null — that's expected

This endpoint reports call attempts, not just recorded calls — so unanswered, busy, failed, and very short calls all show up with recording_url: null. Answered calls typically populate recording_url within seconds of ended_at.

If a long-completed call still has recording_url: null, it usually means no audio was captured for that call (e.g. recording disabled on the line).

Query parameters

limitinteger (1–100)
Maximum number of call logs to return. Defaults to 100.
offsetinteger (≥ 0)
Pagination offset. Defaults to 0. offset + limit must be ≤ 2000; deeper pages return 400 regardless of limit.
call_log_timestamp"asc" | "desc"
Sort direction by the call log's created_at, so unanswered attempts interleave with answered calls. Defaults to desc (newest first).
pb_line_idstring (UUID)
Encoded Project Blue line id (from GET /get-lines). Returns 400 if the line does not belong to the API key's user.
direction"inbound" | "outbound"
Filter to inbound or outbound only. Omit for both.
answered_at_gtestring (ISO-8601)
Inclusive lower bound on answered_at. Note: only matches calls that were actually answered.
answered_at_ltestring (ISO-8601)
Inclusive upper bound on answered_at. Note: only matches calls that were actually answered.

CallLog object

idstringRequired
Internal call log id (stable, useful for dedupe).
line_idstring | nullRequired
UUID-encoded PB line id. Round-trips with the pb_line_id filter.
direction"inbound" | "outbound"Required
Whether the call was received on the user's line or placed from it.
from_numberstringRequired
E.164. On outbound rows this is the user's line. On inbound rows this is the caller.
to_numberstringRequired
E.164. On outbound rows this is the number dialed. On inbound rows this is the user's line.
statusstringRequired
Call status (completed, no-answer, busy, failed, canceled, …).
dispositionstring | nullRequired
AI-assigned disposition derived from the call transcript. See the Dispositions table below for all possible values.
transcriptstring | nullRequired
Speaker-labelled transcript when one was generated.
duration_secondsnumber | nullRequired
Connected duration. null for calls that never connected.
answered_atstring (ISO-8601) | nullRequired
When the call was answered.
ended_atstring (ISO-8601) | nullRequired
When the call ended.
recording_urlstring | nullRequired
URL to the call recording when one is available; null otherwise.

Dispositions

After a recording is transcribed, the transcript is run through an AI classifier that assigns one of the following dispositions. Use this for routing, follow-up automation, or analytics. The disposition can be null on calls that haven't been classified yet.

Value
Meaning
answered
A human answered and spoke (any clear human speech that isn't a voicemail greeting).
voicemail
The call went to voicemail (voicemail greeting, beep, or 'leave a message' prompt detected).
busy
The line was busy.
no_answer
No one answered — just ringing or silence.
wrong_number
The person on the other end indicated this is the wrong number.
not_interested
The person explicitly declined or showed no interest.
callback_requested
The person asked to be called back at a later time.
meeting_scheduled
A meeting or appointment was scheduled on the call.
information_provided
Information was exchanged but no clear next step was set.
no_speech
The transcript was empty (no speech to classify).
unknown
Truly cannot determine from the transcript. Used sparingly.

Status codes

200
Call logs returned
400
Invalid query parameter (limit/offset/call_log_timestamp/dates/pb_line_id/direction)
401
Missing or invalid API key
429
Rate limit exceeded
500
Internal server error
API reference