API

Build on 8Leads

A REST API over your accounts, campaigns, leads, and results. Everything the dashboard does, you can automate.

Base URL

All endpoints live under https://app.8leads.io/api/v1. Requests and responses are JSON.

Authentication

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_xxxxxxxxxxxxxxxx

Rate limits

Each 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.

Endpoints

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.

Example request

curl https://app.8leads.io/api/v1/campaigns \
  -H "Authorization: Bearer 8l_live_xxxxxxxxxxxxxxxx"

Example response

{
  "data": [
    {
      "id": "cmp_3f9a",
      "name": "Q3 Agency Outbound",
      "status": "active",
      "sent": 418,
      "replies": 37,
      "replyRate": 0.089
    }
  ],
  "nextCursor": "cmp_2b1c"
}

Webhooks

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"
  }
}

Full reference

The complete, machine-readable contract is published as an OpenAPI document. Point your client or code generator at it directly.