curl -G "https://backend.botcadence.com/organizations/ORG_ID/projects/PROJECT_ID/inbounds/INBOUND_ID/report" \
-H "Authorization: Bearer bot_live_YOUR_KEY" \
--data-urlencode "skip=0" \
--data-urlencode "limit=20" \
--data-urlencode 'filters={"status":"completed"}'
const params = new URLSearchParams({
skip: "0",
limit: "20",
filters: JSON.stringify({ status: "completed" }),
});
const response = await fetch(
`https://backend.botcadence.com/organizations/${organizationId}/projects/${projectId}/inbounds/${inboundId}/report?${params}`,
{ headers: { "Authorization": `Bearer ${process.env.BOTCADENCE_API_KEY}` } }
);
import json
import os
import requests
response = requests.get(
f"https://backend.botcadence.com/organizations/{organization_id}/projects/{project_id}/inbounds/{inbound_id}/report",
headers={"Authorization": f"Bearer {os.environ['BOTCADENCE_API_KEY']}"},
params={
"skip": 0,
"limit": 20,
"filters": json.dumps({"status": "completed"}),
},
)
{
"status": "success",
"message": "Inbound report data retrieved successfully",
"data": {
"columns": [
{ "key": "phone_number", "header": "Phone" },
{ "key": "status", "header": "Status" },
{ "key": "duration_seconds", "header": "Duration" }
],
"rows": [
{
"phone_number": "+14155550123",
"status": "completed",
"duration_seconds": 98
}
],
"pagination": {
"total": 42,
"page": 1,
"page_size": 20,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
},
"status_code": 200
}
Conversations
Get inbound report
Tabular inbound call report
GET
/
organizations
/
{organization_id}
/
projects
/
{project_id}
/
inbounds
/
{inbound_id}
/
report
curl -G "https://backend.botcadence.com/organizations/ORG_ID/projects/PROJECT_ID/inbounds/INBOUND_ID/report" \
-H "Authorization: Bearer bot_live_YOUR_KEY" \
--data-urlencode "skip=0" \
--data-urlencode "limit=20" \
--data-urlencode 'filters={"status":"completed"}'
const params = new URLSearchParams({
skip: "0",
limit: "20",
filters: JSON.stringify({ status: "completed" }),
});
const response = await fetch(
`https://backend.botcadence.com/organizations/${organizationId}/projects/${projectId}/inbounds/${inboundId}/report?${params}`,
{ headers: { "Authorization": `Bearer ${process.env.BOTCADENCE_API_KEY}` } }
);
import json
import os
import requests
response = requests.get(
f"https://backend.botcadence.com/organizations/{organization_id}/projects/{project_id}/inbounds/{inbound_id}/report",
headers={"Authorization": f"Bearer {os.environ['BOTCADENCE_API_KEY']}"},
params={
"skip": 0,
"limit": 20,
"filters": json.dumps({"status": "completed"}),
},
)
{
"status": "success",
"message": "Inbound report data retrieved successfully",
"data": {
"columns": [
{ "key": "phone_number", "header": "Phone" },
{ "key": "status", "header": "Status" },
{ "key": "duration_seconds", "header": "Duration" }
],
"rows": [
{
"phone_number": "+14155550123",
"status": "completed",
"duration_seconds": 98
}
],
"pagination": {
"total": 42,
"page": 1,
"page_size": 20,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
},
"status_code": 200
}
Returns a paginated tabular report of inbound calls for an inbound configuration.
To get the whole report as a spreadsheet, use Export on the report page in the dashboard. It emails a confidential CSV link instead of downloading the file.
Authentication
string
required
Project API key for this organization and project. Format:
bot_live_…Path parameters
string
required
Organization ID. Must match the API key.
string
required
Project ID. Must match the API key.
string
required
Inbound configuration ID.
Query parameters
integer
default:"0"
Number of rows to skip.
integer
default:"20"
Page size. Range:
1–100.string
JSON filter object, for example
{"status":"completed"}.string
JSON sort object, for example
{"created_at":-1}.Response
array
required
Column definitions (
key, header, and related metadata).array
required
Report rows keyed by column
key.object
required
Pagination metadata for the rows.
Errors
Unauthorized
Missing, invalid, or revoked API key.
Forbidden
API key is not authorized for this organization or project.
curl -G "https://backend.botcadence.com/organizations/ORG_ID/projects/PROJECT_ID/inbounds/INBOUND_ID/report" \
-H "Authorization: Bearer bot_live_YOUR_KEY" \
--data-urlencode "skip=0" \
--data-urlencode "limit=20" \
--data-urlencode 'filters={"status":"completed"}'
const params = new URLSearchParams({
skip: "0",
limit: "20",
filters: JSON.stringify({ status: "completed" }),
});
const response = await fetch(
`https://backend.botcadence.com/organizations/${organizationId}/projects/${projectId}/inbounds/${inboundId}/report?${params}`,
{ headers: { "Authorization": `Bearer ${process.env.BOTCADENCE_API_KEY}` } }
);
import json
import os
import requests
response = requests.get(
f"https://backend.botcadence.com/organizations/{organization_id}/projects/{project_id}/inbounds/{inbound_id}/report",
headers={"Authorization": f"Bearer {os.environ['BOTCADENCE_API_KEY']}"},
params={
"skip": 0,
"limit": 20,
"filters": json.dumps({"status": "completed"}),
},
)
{
"status": "success",
"message": "Inbound report data retrieved successfully",
"data": {
"columns": [
{ "key": "phone_number", "header": "Phone" },
{ "key": "status", "header": "Status" },
{ "key": "duration_seconds", "header": "Duration" }
],
"rows": [
{
"phone_number": "+14155550123",
"status": "completed",
"duration_seconds": 98
}
],
"pagination": {
"total": 42,
"page": 1,
"page_size": 20,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
},
"status_code": 200
}

