List completed calls
get /v1/calls
Calls are the records captured from a VoIP integration, addressed by their own call_ identifiers. They answer the same five routes as meetings and carry the same fields except bot_history: a VoIP capture has no recording bot, so the field is absent, not empty.
Returns a list of call objects.
Authorization
Section titled “Authorization”Requires the calls.read scope.
Query parameters
Section titled “Query parameters”| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Records per page, 1 to 100. A page may return fewer than this while has_more is still true; drive the loop by has_more, not by the size of data. |
cursor | string | No | Signed cursor returned by the previous page. |
created_after | string date-time | No | Return records created after this instant. |
created_before | string date-time | No | Return records created before this instant. |
meeting_after | string date-time | No | Return records whose event instant is after this value. |
meeting_before | string date-time | No | Return records whose event instant is before this value. |
owner_email | string email | No | Exact case-insensitive owner email match. |
type | video · audio | No | Media the record was captured as. Independent of the resource kind: a call can be video and a meeting can be audio. |
audience | internal · external | No | Whether the record had participants from outside the company (external) or only internal ones. |
has_transcript | boolean | No | Filter by existence of a transcript resource. |
Example request
Section titled “Example request”curl "https://api.salesbud.com.br/v1/calls?limit=...&cursor=..." \ -H "Authorization: Bearer $SALESBUD_ACCESS_TOKEN"Example response
Section titled “Example response”{ "data": [ { "id": "call_ExampleCall01", "object": "call", "title": "Call to +55 11 99999-0000", "status": "completed", "type": "audio", "audience": "external", "meeting_at": "2026-01-15T18:28:01.000Z", "duration_seconds": 714, "no_show": false, "participants": [ { "phone": "+5511999990000", "kind": "external" } ], "owner": { "id": "usr_ExampleOwner01", "name": "Example Rep", "email": "rep@example.com", "team": { "id": "team_ExampleTeam01", "name": "Inside Sales", "role": "participant", "is_default": true } }, "template": { "id": "tpl_ExampleTemplate01", "name": "Discovery script", "answers": [ { "field": "qst_ExampleQuestion01", "question": "What pains did the customer describe?", "answer": "Wants a demo before renewing the current contract." } ] }, "tags": [], "customer_questions": [], "competitors": [], "enablement": { "next_steps": "Online meeting booked for Thursday at 13:30; send the invite today.", "meeting_type": null, "speaking_duration": { "users": [], "others_seconds": 677 } }, "accounts": [], "overall_evaluation": { "status": "not_started", "justification": null }, "skill_scores": [], "transcript": { "available": false, "status": "not_started" }, "created_at": "2026-01-15T19:22:08.000Z", "updated_at": "2026-01-15T19:22:53.000Z" } ], "pagination": { "limit": 50, "has_more": true, "next_cursor": "cur_ExampleCursor02" }, "request_id": "req_ExampleRequestId01"}Responses
Section titled “Responses”| Status | Description |
|---|---|
200 | Company-scoped call page. |
400 | Invalid request. |
401 | Missing or invalid credentials. |
403 | The token does not contain the required scope. |
429 | Client rate limit exceeded. |
503 | A required audit or rate-limit dependency is unavailable. |