Skip to main content

List All Calls

GET https://api.agentvoice.com/api/calls
Retrieves calls for your organization with pagination and filtering options. Query Parameters:
ParameterTypeDefaultDescription
limitinteger50Number of results per page (max: 100)
offsetinteger0Number of results to skip for pagination
orderstringdescSort direction: asc or desc
order_bystringstarted_atSort field: started_at, ended_at, or created_at
fieldsstringlightPayload size: light or full
phone_numberstring-Filter by customer phone number
contact_iduuid-Filter by contact ID
agent_iduuid-Filter by agent ID
campaign_iduuid-Filter by campaign ID
statusstring-Filter by call status
call_typestring-Filter by type: inbound or outbound
fromISO 8601-Filter calls starting after this date
toISO 8601-Filter calls starting before this date
most_recentbooleanfalseReturn only the most recent matching call
includestring-Comma-separated list of additional fields to include (see Include Options)
Example Request:
curl -X GET "https://api.agentvoice.com/api/calls?limit=10&order=desc" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
Example Response:
{
  "data": [
    {
      "id": "a7e85eef-65b6-4311-b8f2-7d8bb7abd0ea",
      "agent_id": "95cb3cab-de23-48ee-89c4-7341398f5cec",
      "agent_name": "Sales Agent",
      "contact_id": "123e4567-e89b-12d3-a456-426614174000",
      "contact_first_name": "John",
      "contact_last_name": "Doe",
      "contact_email": "[email protected]",
      "phone_number": "+14155551234",
      "phone_number_called_from": "+17375551234",
      "call_type": "outbound",
      "status": "completed",
      "call_success": true,
      "went_to_voicemail": false,
      "call_duration": 245,
      "started_at": "2024-01-15T10:30:00.000Z",
      "ended_at": "2024-01-15T10:34:05.000Z",
      "ended_reason": "customer-ended-call",
      "recording_url": "https://storage.example.com/recordings/abc123.mp3",
      "campaign_id": "456e7890-e89b-12d3-a456-426614174000",
      "campaign_name": "January Outreach",
      "created_at": "2024-01-15T10:29:55.000Z"
    }
  ],
  "pagination": {
    "total": 1901,
    "limit": 10,
    "offset": 0,
    "has_more": true
  }
}

Get a Specific Call

GET https://api.agentvoice.com/api/calls/:id
Retrieves a specific call by ID. Query Parameters:
ParameterTypeDefaultDescription
fieldsstringlightPayload size: light or full
includestring-Comma-separated list of additional fields to include (see Include Options)
Example Request:
curl -X GET "https://api.agentvoice.com/api/calls/a7e85eef-65b6-4311-b8f2-7d8bb7abd0ea?fields=full" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"

Get Most Recent Call

To retrieve only the most recent call matching your filters, use the most_recent=true parameter. This returns a single call object instead of an array. Example Request:
curl -X GET "https://api.agentvoice.com/api/calls?phone_number=%2B14155551234&most_recent=true" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
Example Response:
{
  "id": "a7e85eef-65b6-4311-b8f2-7d8bb7abd0ea",
  "agent_id": "95cb3cab-de23-48ee-89c4-7341398f5cec",
  "agent_name": "Sales Agent",
  "contact_id": "123e4567-e89b-12d3-a456-426614174000",
  "contact_first_name": "John",
  "contact_last_name": "Doe",
  "phone_number": "+14155551234",
  "call_type": "outbound",
  "status": "completed",
  "call_success": true,
  "call_duration": 245,
  "started_at": "2024-01-15T10:30:00.000Z",
  "ended_at": "2024-01-15T10:34:05.000Z",
  "created_at": "2024-01-15T10:29:55.000Z"
}

Payload Modes

The API supports two payload modes to optimize response size based on your needs.

Light Payload (Default)

Returns essential call information suitable for listings and summaries. Fields included:
  • id - Unique call identifier
  • agent_id - Agent that handled the call
  • agent_name - Agent display name
  • contact_id - Associated contact ID (if linked)
  • contact_first_name - Contact first name
  • contact_last_name - Contact last name
  • contact_email - Contact email
  • phone_number - Customer phone number
  • phone_number_called_from - Originating phone number
  • call_type - inbound or outbound
  • status - Call status
  • call_success - Whether the call was successful
  • went_to_voicemail - Whether call went to voicemail
  • call_duration - Duration in seconds
  • started_at - Call start timestamp
  • ended_at - Call end timestamp
  • ended_reason - Reason the call ended
  • recording_url - URL to call recording (if available)
  • campaign_id - Associated campaign ID
  • campaign_name - Campaign name
  • created_at - Record creation timestamp

Full Payload

Returns all light fields plus detailed analysis and transcript data. Use fields=full to enable. Additional fields:
  • transcript - Raw transcript text
  • transcript_formatted - Structured transcript with speaker labels and timestamps
  • post_call_analysis - AI-generated call analysis
  • call_description - Summary description of the call
  • custom_analysis - Custom analysis results
  • structured_data_results - Extracted structured data from the call
  • notes - Array of notes added to the call
  • action_executions - Actions triggered by the call
  • action_summary - Summary of executed actions
  • quality_metrics - Call quality measurements
  • enhanced_context - Additional contextual information

Include Options

Instead of using fields=full which returns everything, you can selectively include specific field groups using the include parameter. This allows you to get the light payload plus only the additional data you need. Use comma-separated values to include multiple groups: include=transcript,metrics
IncludeFields AddedDescription
transcripttranscript, transcript_formattedConversation transcript data
metricsquality_metrics, latency_metrics, audio_metricsPerformance and quality measurements
diagnosticsturn_events, interruptions, tool_usageDetailed call diagnostics for troubleshooting
actionsaction_executions, action_summaryActions triggered during the call

Include Examples

Get light payload with just the transcript:
curl -X GET "https://api.agentvoice.com/api/calls?include=transcript" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
Get light payload with transcript and performance metrics:
curl -X GET "https://api.agentvoice.com/api/calls?include=transcript,metrics" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
Get a specific call with all diagnostic data:
curl -X GET "https://api.agentvoice.com/api/calls/abc-123?include=transcript,metrics,diagnostics,actions" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
The include parameter works with both fields=light (default) and fields=full. When used with fields=full, any duplicate fields are automatically handled.

Filtering Examples

Filter by Contact

Get all calls for a specific contact:
curl -X GET "https://api.agentvoice.com/api/calls?contact_id=123e4567-e89b-12d3-a456-426614174000" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"

Filter by Phone Number

Get all calls to/from a specific phone number:
curl -X GET "https://api.agentvoice.com/api/calls?phone_number=%2B14155551234" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
Phone numbers should be URL-encoded when using cURL. The + character becomes %2B. Python’s requests library handles this automatically.

Filter by Date Range

Get calls from a specific time period:
curl -X GET "https://api.agentvoice.com/api/calls?from=2024-01-01T00:00:00Z&to=2024-01-31T23:59:59Z" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"

Filter by Agent and Status

Get completed calls for a specific agent:
curl -X GET "https://api.agentvoice.com/api/calls?agent_id=95cb3cab-de23-48ee-89c4-7341398f5cec&status=completed" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"

Filter by Campaign

Get all calls from a specific campaign:
curl -X GET "https://api.agentvoice.com/api/calls?campaign_id=456e7890-e89b-12d3-a456-426614174000&order_by=started_at&order=desc" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"

Combine Multiple Filters

Get recent inbound calls for a contact with full details:
curl -X GET "https://api.agentvoice.com/api/calls?contact_id=123e4567-e89b-12d3-a456-426614174000&call_type=inbound&order=desc&limit=5&fields=full" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"

Pagination

For large result sets, use limit and offset to paginate through results. Example - Page 2 with 25 results per page:
curl -X GET "https://api.agentvoice.com/api/calls?limit=25&offset=25" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-org-id"
The response includes pagination metadata:
{
  "data": [...],
  "pagination": {
    "total": 1901,
    "limit": 25,
    "offset": 25,
    "has_more": true
  }
}
Use has_more to determine if additional pages exist.

Common Error Responses

StatusErrorDescription
400 Bad Request"Invalid order_by parameter"order_by must be started_at, ended_at, or created_at
401 Unauthorized"Authentication failed"Invalid or missing API key or organization ID
404 Not Found"Call not found"Call ID does not exist or does not belong to your organization
404 Not Found"No calls found matching criteria"No calls match filters when using most_recent=true