Outreach

Campaign analytics

Campaign performance for a period: emails sent, replies, reply rate, hot leads, spend, cost per lead, budget allocation, the leads pool and the manual lead funnel. The same numbers the Explee dashboard shows — use them to drive your own budget/start/stop decisions.

get/public/api/v1/autogtm/campaigns/{campaign_id}/analytics

Request

  • Base URL: https://api.explee.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.explee.com/public/api/v1/autogtm/campaigns/{campaign_id}/analytics
  • Auth: APIKeyHeader (a scheme the document does not define)

Path parameters

campaign_idinteger required

Query parameters

period'today' | '7d' | '30d' | 'all'

Aggregation window.

Response

Successful Response

campaign_idinteger required

Campaign identifier.

namestring required

Campaign name.

statusstring required

Effective campaign status: discovery (not launched), starting, searching (finding leads), review, outreach (sending), listening (sending finished or paused — see status_reason), budget_paused, card_paused, stopped, launch_failed, archived, error. Note: a paused campaign reports listening with a pause reason in status_reason (e.g. user_pause, billing_pause) — the literal value paused is never emitted.

status_reasonstring nullable

Machine-readable reason for the latest status change.

periodstring required

The period these counts cover: today, 7d, 30d or all.

emails_sentinteger required

Cold + follow-up emails sent in the period.

total_repliesinteger required

Human replies received in the period (bounces/auto-replies excluded).

reply_rate_pctnumber required

Replies ÷ emails sent, in percent (0 when nothing was sent).

hot_leadsinteger required

Distinct contacts classified as hot leads in the period.

spend_usdnumber required

Spend in the period (derived from emails sent), USD.

cost_per_lead_usdnumber required

Spend ÷ hot leads, USD (0 when there are no hot leads yet).

daily_budget_usdnumber required

The campaign's current daily budget allocation, USD/day.

leads_pool_usedinteger required

Leads already contacted (first cold email sent, lifetime).

leads_pool_totalinteger required

Leads with a verified, send-ready email address (lifetime). Verification runs in batches just ahead of sending, so this figure grows with the campaign and usually stays only slightly ahead of leads_pool_used. It is NOT the full collected pool: for that, see collected_leads_total; leads still awaiting verification are in leads_pool_pending.

leads_pool_pendinginteger required

Collected leads still waiting for email finding or verification. They join leads_pool_total only after their address verifies as sendable.

collected_leads_totalinteger required

All leads collected for this campaign (lifetime) — the lead count the campaign page shows. Includes verified, pending and unsendable (invalid or not-found address) leads.

manual_status_countsobject

Lifetime manual lead-funnel counts {status_name: lead_count} (empty when none set). The Lost bucket counts only leads that were hot before the deal died — leads retired by an unsubscribe / GDPR / dead-address reply without ever replying with interest are reported separately as cold_lost.

cold_lostinteger

Contacted leads retired as lost without ever being hot (unsubscribe, GDPR, dead address). Kept out of manual_status_counts so funnel sums stay pipeline-only.

Changes

No recorded changes to this operation across all 1 revision of this API.