Skip to main content

Getting Calls & Reports via API

Getting a list of calls via API from Speed To Lead

Send a GET request to retrieve Speed To Lead call data in webhook payload format.

Use an account API key from General settings. A bc_live_... key needs Read for Speed To Lead calls and leads (s2l.calls:read). Replace the placeholders below; dates use YYYY-MM-DD.

curl --get 'https://api.leads.convolo.ai/api/v2/calls/payload-data-list' \
--header 'api-key: %ACCOUNT_API_KEY%' \
--data-urlencode 'date_from=%DATE_FROM%' \
--data-urlencode 'date_to=%DATE_TO%' \
--data-urlencode 'max_calls=500' \
--data-urlencode 'page=1'

List of Parameters

date_from

Start date in YYYY-MM-DD format (00:00:00 UTC). Default: 30 days ago. Set both dates for a fixed export.

date_to

End date in YYYY-MM-DD format (23:59:59.999 UTC). If omitted, no upper date bound is applied to the call query.

widget_ids

Comma-separated IDs of the widgets for which data will be retrieved

max_calls

Calls per page: a positive integer. Default: 20; maximum: 500. Larger values are capped at 500.

page

Page number, starting at 1. Increment to retrieve the remaining calls.

search_string

Search by call/lead ID, agent, visited page URL, widget name, comments, custom fields or phone number.

status

Common values: CallStatusType.NO_ANSWER — missed; CallStatusType.OPERATOR_ANSWERED — agent answered, lead did not; CallStatusType.CLIENT_ANSWERED — both answered. Omit to include all statuses.

filter_url

Filter by the URL of the page visited by the lead (substring match).

filter_referer

Filter by the visit’s HTTP referrer (substring match).

filter_lead_number

Filter by lead phone number

filter_agent

Filter by agent name or phone number

filter_answer_time_from

Retrieve data only for calls where the agent answer time is greater than the specified value (in seconds)

filter_answer_time_to

Retrieve data only for calls where the agent answer time is less than the specified value (in seconds)

filter_talk_time_from

Retrieve data only for calls where the agent and lead talk time is greater than the specified value (in seconds)

filter_talk_time_to

Retrieve data only for calls where the agent and lead talk time is less than the specified value (in seconds)

Each request covers at most 90 days. Longer ranges are truncated; check the actual data.date_from and data.date_to. Older historical ranges are supported. For longer history, export consecutive monthly ranges, for example 2026-01-01–2026-01-31, then 2026-02-01–2026-02-28.

Increment page until you have collected data.calls_total calls or endCallPayloadList is empty. Keep dates, filters and max_calls unchanged. data.pagesCount may include an extra empty page.

Example of a successful response:

success: true indicates a successful request. endCallPayloadList contains this page’s payloads: end_call for ended calls, otherwise lead_created. data contains call counters for the full filtered result, query dates, timing statistics and pagination.

Shortened response example; call payloads may contain additional fields:

{
"success": true,
"endCallPayloadList": [
{
"type": "end_call",
"call_id": "%CALL_ID%",
"widget_key": "%WIDGET_KEY%",
"widget_name": "Example widget",
"call_status": "answered",
"time_started_iso_string": "2026-01-20T07:49:38.000Z",
"time_ended_iso_string": "2026-01-20T07:49:55.000Z",
"answer_duration_sec": 11,
"talk_duration_sec": 6,
"total_duration_sec": 17,
"called_lead_phone": "%LEAD_PHONE%"
}
],
"data": {
"calls_total": 1,
"calls_answered": 1,
"calls_no_answer": 0,
"calls_missed": 0,
"calls_processed": 0,
"calls_failed": 0,
"calls_pending": 0,
"calls_initiated": 0,
"calls_on_demand": 0,
"calls_future": 0,
"calls_done": 0,
"calls_real": 1,
"date_from": "2026-01-01T00:00:00.000Z",
"date_to": "2026-01-31T23:59:59.999Z",
"min_agent_answer_time": 11,
"max_agent_answer_time": 11,
"min_talk_time": 6,
"max_talk_time": 6,
"page": 1,
"pagesCount": 1
}
}

Main data parameters

calls_total

Total calls matching the date range and filters, across all pages.

calls_answered

Number of answered calls

calls_no_answer

Number of calls not answered by the lead

calls_missed

Number of calls missed by agents

date_from

Actual start of the query range in UTC; may be later than requested because of the 90-day limit.

date_to

End of the query range in UTC. If no end date was supplied, this reports the current time.

min_agent_answer_time

Minimum time for an agent to answer a call (in seconds)

max_agent_answer_time

Maximum time for an agent to answer a call (in seconds)

min_talk_time

Minimum duration of a conversation (in seconds)

max_talk_time

Maximum duration of a conversation (in seconds)

page

Current page number.

pagesCount

Page-count hint. Use calls_total or an empty list to determine when the export is complete.

The min/max timing values are calculated before applying the answer-time and talk-time filters.

Did this answer your question?