Campaign stats
Fetch a snapshot of contact and attempt counts for a campaign.campaigns:read or campaigns:manage scope. The X-Anyreach-Org header is only needed for user PATs (pat_); org API keys (ak_) carry their org implicitly.
The response groups contacts by lifecycle bucket and reports attempt totals plus current concurrency:
Response fields
active_calls and concurrency_limit together tell you how much headroom the campaign has. When active_calls reaches concurrency_limit, the dialer waits for a call to finish before starting the next one. See Dialing and retries.Live polling
The campaign Overview tab calls the stats endpoint on load and then polls it every 5 seconds while the campaignstatus is active and the browser tab is visible. Polling stops when the tab is hidden or the campaign is no longer active, and resumes when the tab becomes visible again. Use the refresh control to fetch on demand at any time.
Attempts and conversations
Each call attempt links to a conversation through itsconversation_id. List a campaign’s contacts to see their attempts:
limit defaults to 50 (max 200) and offset defaults to 0. Pass status to filter contacts by bucket. Each contact carries an attempts array, and every attempt includes:
Attempts come back oldest-first, so the last entry is the most recent attempt.
One contact’s conversations
When you already know which contact you care about, fetch it directly instead of paging the campaign. The single-contact route returns the same shape as the list, including theattempts array:
{contact_id} accepts either the contact’s UUID or the external_id you supplied when creating it. Pass default as the {campaign_id} for ad-hoc contacts that belong to no campaign — including the one created for you when you enqueue a call through POST /conversations, whose contact_id that call returns.
Conversation outcomes
When an attempt produced a conversation, the contacts list enriches that attempt with its evaluation outcome. For each attempt with aconversation_id, the server looks up completed evaluation runs for that conversation and populates the attempt’s result object, keyed by <metric_key>.<criterion_key>. Attempts whose conversation has no completed evaluation, or no conversation at all, leave result as null.
To review the full transcript and recording for any attempt, open the linked conversation by its conversation_id in Conversations.
Conversations
Read transcripts and listen to recordings for every linked conversation.
Dialing and retries
Understand how attempts, retries, and concurrency drive the stats buckets.

