Documentation Index Fetch the complete documentation index at: https://docs.blackbox.dasha.ai/llms.txt
Use this file to discover all available pages before exploring further.
Find any past call. Filter by status, date, agent, or endpoint — then drill down to transcripts, recordings, and tool executions for complete conversation analysis.
What you’ll learn: Filtering and searching calls, viewing call details, and API response structure.
Access call history
Navigate to Calls in the sidebar to view all calls.
Navigate to Agents → Select agent → Calls tab to view calls for that specific agent.
// Search call results with pagination
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
page: 0 ,
size: 50
})
}
). then ( r => r. json ());
console. log ( `Total calls: ${ response . totalCount }` );
response.results. forEach ( call => {
console. log ( `${ call . callId }: ${ call . callStatus }` );
});
Filter calls
By status
Filter calls by their final outcome:
Status Description Completed Conversation finished successfully Failed Error occurred during call Canceled Call was canceled before completion Running Call currently in progress Queued Waiting in queue Pending Waiting to be queued Created Just created, not yet queued
API example: Filter by status
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
callStatuses: [ 'Completed' , 'Failed' ],
page: 0 ,
size: 50
})
}
). then ( r => r. json ());
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
fromDate: '2025-01-01T00:00:00Z' ,
toDate: '2025-01-31T23:59:59Z' ,
page: 0 ,
size: 50
})
}
). then ( r => r. json ());
console. log ( `Calls in January: ${ response . totalCount }` );
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
agentIds: [ 'YOUR_AGENT_ID' ],
page: 0 ,
size: 50
})
}
). then ( r => r. json ());
console. log ( `Agent calls: ${ response . totalCount }` );
Search across transcripts and metadata: const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
searchText: 'connection timeout' ,
page: 0 ,
size: 50
})
}
). then ( r => r. json ());
View call details
Quick details
Click any call row to expand inline details:
Full call ID — Complete identifier for API operations
Duration and timestamps — Precise timing information
Agent configuration — Agent that handled the call
Additional data — Custom metadata passed when scheduling
Transcript preview — Quick view of conversation
Open Call Inspector
Click the Inspect button for full analysis:
Complete transcript with timestamps
Audio recording playback
Tool execution logs
LLM interaction details
Performance metrics
Call Inspector Deep dive into individual calls
API response structure
Search call results
Request: POST /api/v1/callresults/search
Request body:
Field Type Description pageinteger Page number (0-indexed) sizeinteger Results per page (max 100) fromDateDateTimeOffset Filter start date toDateDateTimeOffset Filter end date agentIdsstring[] Filter by agents callStatusesCallStatus[] Filter by status searchTextstring Full-text search includeAggregationsboolean Include statistics
{
"results" : [
{
"callId" : "call_abc123" ,
"agentId" : "agent_def456" ,
"orgId" : "org_xyz" ,
"callStatus" : "Completed" ,
"callType" : "OutboundAudio" ,
"createdTime" : "2025-01-20T10:30:00Z" ,
"completedTime" : "2025-01-20T10:35:00Z" ,
"durationSeconds" : 300 ,
"endpoint" : "+1-555-123-4567" ,
"callAdditionalData" : {
"customerId" : "cust_123"
},
"transcription" : [ ... ],
"result" : { ... },
"inspectorUrl" : "https://..." ,
"recordingUrl" : "https://..."
}
],
"totalCount" : 150 ,
"page" : 0 ,
"size" : 20 ,
"totalPages" : 8 ,
"executionTimeMs" : 45
}
Get single call
Request: GET /api/v1/calls/{callId}
Returns call details including status, timestamps, and endpoint.
Get call queue
View scheduled and pending calls:
Request: GET /api/v1/calls/queue/list
Query parameters:
Parameter Type Description skipinteger Items to skip takeinteger Items to return (max 1000) agentIdstring Filter by agent statusCallStatus[] Filter by status fromDateDateTimeOffset Filter start date toDateDateTimeOffset Filter end date
Call statistics
Get aggregated call statistics:
Request: GET /api/v1/calls/statistics/statuses
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/calls/statistics/statuses' ,
{ headers: { 'Authorization' : 'Bearer YOUR_API_KEY' } }
). then ( r => r. json ());
console. log ( 'Call counts by status:' , response.statuses);
// { Created: 5, Pending: 3, Queued: 10, Running: 2, Completed: 150, Failed: 12, Canceled: 8 }
Common tasks
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
callStatuses: [ 'Failed' ],
sortField: 'completedTime' ,
sortDirection: 'Descending' ,
size: 50
})
}
). then ( r => r. json ());
// Review error messages
response.results. forEach ( call => {
console. log ( `${ call . callId }: ${ call . errorMessage }` );
});
Query calls using custom fields in additional data: const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
additionalDataFilters: {
'result.postCallAnalysis.sentiment' : 'positive' ,
'result.postCallAnalysis.info.age' : { 'gte' : 25 , 'lte' : 65 }
},
size: 100
})
}
). then ( r => r. json ());
const response = await fetch (
'https://blackbox.dasha.ai/api/v1/callresults/search' ,
{
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_API_KEY' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
includeAggregations: true ,
aggregationFields: [ 'result.postCallAnalysis.sentiment' ],
size: 0 // Only get aggregations, no results
})
}
). then ( r => r. json ());
console. log ( 'Status counts:' , response.aggregations?.statusCounts);
console. log ( 'Agent counts:' , response.aggregations?.agentCounts);
Call statuses reference
Status Description Created Call created but not yet queued Pending Waiting to be queued Queued In queue, waiting for resources Running Call in progress Completed Successfully finished Failed Error occurred Canceled Manually canceled or deadline exceeded
What’s next
Call Inspector Deep dive into individual calls
Conversations Understand call transcripts
Concurrency Monitoring Monitor active calls