Campaign LeadsAdd leads to campaign

Add leads to campaign

Add leads to a campaign using one of three modes:

Mode 1 - Explicit leads (max 5,000 per request): Provide a leads array with objects containing either leadId (existing lead) or email (creates a new lead if not found).

Mode 2 - Filter-based: Provide a filters object to match workspace leads by tags, search text, email verification status, country, or specific lead IDs.

Mode 3 - Select all: Set selectAll: true to add all workspace leads. Use excludeIds to skip specific leads.

A campaign can contain at most 100,000 non-removed leads. Duplicate leads (already in the campaign) are automatically skipped. If more leads are requested than the campaign can hold, only the first leads that fit are added; the remainder are reported as skipped. Newly created workspace leads are retained even when campaign capacity skips their enrollment. If the campaign is active, new leads are added with "active" status; otherwise they start as "pending". Removed leads do not count toward the limit.

curl -X POST "https://api.sendkit.ai/v1/campaigns/example_string/leads" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -d '{
  "leads": [
    {
      "email": "john@acme.com",
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Acme Corp",
      "customFields": {
        "custom_industry": "SaaS"
      }
    },
    {
      "email": "jane@example.com",
      "firstName": "Jane"
    },
    {
      "leadId": "665d4e5f6a7b8c9d0e1f2a3b"
    }
  ]
}'
{
  "success": true,
  "data": {
    "added": 2,
    "skipped": 1,
    "errors": [
      {
        "entry": {
          "email": "invalid@"
        },
        "message": "Either leadId or email is required"
      }
    ]
  }
}
POST
/v1/campaigns/{campaignId}/leads
POST
Base URLstring

Target server for requests. Edit to use your own host.

API Key (header: X-Api-Key)
X-Api-Keystring
Required

Platform API key (sk_user_...) or Workspace API key (sk_...)

Platform API key (sk_user_...) or Workspace API key (sk_...)
Content-Typestring
Required

The media type of the request body

Options: application/json
No request body parameters defined
Request Preview
Response

Response will appear here after sending the request

Authentication

header
X-Api-Keystring
Required

API Key for authentication. Platform API key (sk_user_...) or Workspace API key (sk_...)

Path Parameters

Body

application/json
datastring
Required

Raw application/json data

Responses