A REST API over your accounts, campaigns, leads, and results. Everything the dashboard does, you can automate.
All endpoints live under https://app.8leads.io/api/v1. Requests and responses are JSON.
Create an API key in your workspace settings, then send it as a bearer token. Keys are prefixed 8l_live_ and are scoped to a single workspace. Keep them secret.
Authorization: Bearer 8l_live_xxxxxxxxxxxxxxxxEach key is limited to 120 requests per minute. When you exceed it, the API returns 429 with a Retry-After header. Back off and retry.
The core resources:
GET /campaigns and GET /campaigns/:id, campaigns and their stats.GET /prospects and POST /prospects, list and add leads.GET /accounts, connected accounts and their health.GET /analytics, aggregate reply and delivery metrics.List endpoints are paginated. Pass the nextCursor from a response as the cursor query on the next request.
curl https://app.8leads.io/api/v1/campaigns \
-H "Authorization: Bearer 8l_live_xxxxxxxxxxxxxxxx"{
"data": [
{
"id": "cmp_3f9a",
"name": "Q3 Agency Outbound",
"status": "active",
"sent": 418,
"replies": 37,
"replyRate": 0.089
}
],
"nextCursor": "cmp_2b1c"
}Subscribe to events such as reply.created and campaign.completed. 8Leads signs every delivery with an HMAC signature in the X-8Leads-Signature header so you can verify it came from us. Retries use exponential backoff.
{
"event": "reply.created",
"data": {
"threadId": "thr_9c2e",
"account": "@growthstudio",
"prospect": "@mayabuilds",
"sentiment": "positive"
}
}The complete, machine-readable contract is published as an OpenAPI document. Point your client or code generator at it directly.