Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
{ "detail": [ { "loc": [ "<string>" ], "msg": "<string>", "type": "<string>" } ] }
Get real-time campaign execution progress.
campaign_id
{ "campaign_id": 42, "status": "running", "progress": { "total_contacts": 500, "completed": 325, "failed": 25, "processing": 5, "pending": 145, "progress_percentage": 70.0, "success_rate": 92.86 }, "metrics": { "total_duration_seconds": 14625, "average_duration_seconds": 45, "success_rate": 92.86, "answer_rate": 85.0, "completion_rate": 70.0, "cost_estimate": 25.50, "actual_cost": 18.75, "last_updated": "2024-02-15T14:30:00Z" }, "started_at": "2024-02-15T09:00:00Z", "completed_at": null, "recent_activity": [ { "execution_id": 1001, "contact_phone": "+15551234567", "status": "completed", "executed_at": "2024-02-15T14:29:30Z", "call_id": "CA123abc456def" }, { "execution_id": 1000, "contact_phone": "+15559876543", "status": "failed", "executed_at": "2024-02-15T14:28:45Z", "call_id": "CA789ghi012jkl" } ] }
total_contacts
completed
failed
processing
pending
progress_percentage
success_rate
total_duration_seconds
average_duration_seconds
answer_rate
completion_rate
cost_estimate
actual_cost
last_updated
execution_id
contact_phone
status
executed_at
call_id
curl -X GET "https://api.burki.dev/api/v1/campaigns/42/progress" \ -H "Authorization: Bearer YOUR_API_KEY"
import requests import time def monitor_campaign(campaign_id, api_key): """Poll campaign progress until complete.""" while True: response = requests.get( f"https://api.burki.dev/api/v1/campaigns/{campaign_id}/progress", headers={"Authorization": f"Bearer {api_key}"} ) data = response.json() progress = data["progress"] print(f"Progress: {progress['completed']}/{progress['total_contacts']} " f"({progress['progress_percentage']:.1f}%)") print(f"Success rate: {progress['success_rate']:.1f}%") if data["status"] in ["completed", "cancelled", "failed"]: print(f"Campaign {data['status']}") break time.sleep(5) # Poll every 5 seconds monitor_campaign(42, "YOUR_API_KEY")
async function monitorCampaign(campaignId, apiKey) { while (true) { const response = await fetch( `https://api.burki.dev/api/v1/campaigns/${campaignId}/progress`, { headers: { "Authorization": `Bearer ${apiKey}` } } ); const data = await response.json(); const progress = data.progress; console.log(`Progress: ${progress.completed}/${progress.total_contacts} ` + `(${progress.progress_percentage.toFixed(1)}%)`); console.log(`Success rate: ${progress.success_rate.toFixed(1)}%`); if (["completed", "cancelled", "failed"].includes(data.status)) { console.log(`Campaign ${data.status}`); break; } await new Promise(resolve => setTimeout(resolve, 5000)); } } monitorCampaign(42, "YOUR_API_KEY");
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Bearer <token>
<token>
Successful Response