curl -G "https://backend.botcadence.com/organizations/ORG_ID/projects/PROJECT_ID/inbounds/INBOUND_ID/report" \
-H "X-API-Key: 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: { "X-API-Key": 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={"X-API-Key": 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 with optional CSV export
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 "X-API-Key: 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: { "X-API-Key": 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={"X-API-Key": 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.
Set
CSV mode returns raw CSV with
export_csv=true to download CSV (text/csv) instead of JSON.
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.boolean
default:"false"
When
true, returns a CSV file download instead of JSON.string
JSON filter object, for example
{"status":"completed"}.string
JSON sort object, for example
{"created_at":-1}.Response
JSON mode:array
required
Column definitions (
key, header, and related metadata).array
required
Report rows keyed by column
key.object
required
Pagination metadata for the rows.
Content-Disposition: attachment; filename=report_calls_YYYYMMDD_HHMMSS.csv.
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 "X-API-Key: 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: { "X-API-Key": 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={"X-API-Key": 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
}

