logo
LeadsBulk create/update leads
Leads

Bulk create/update leads

Bulk import leads from a JSON array (max 5,000 per request). Processed in batches of 1,000 with up to 10 concurrent batches.

Options:

  • skipDuplicates (default true): When true, existing leads (by email) are skipped. When false, existing leads are updated with the new data.
  • dataCleanup (default true): Normalize emails, phone numbers, LinkedIn URLs, and strip special characters from names.
  • tag: Optional tag to apply to all imported leads.

Each lead object must include email. Standard fields (firstName, lastName, companyName, etc.) are mapped automatically. Any unrecognized keys become custom fields.

curl -X POST "https://api.sendkit.ai/v1/leads/bulk" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "leads": [
    {
      "email": "john@acme.com",
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Acme Corp",
      "jobTitle": "VP of Sales",
      "industry": "SaaS"
    },
    {
      "email": "jane@example.com",
      "firstName": "Jane",
      "lastName": "Smith",
      "companyName": "Example Inc"
    }
  ],
  "skipDuplicates": true,
  "dataCleanup": true,
  "tag": "batch-2025-06"
}'
{
  "success": true,
  "data": {
    "imported": 180,
    "updated": 0,
    "skipped": 15,
    "failed": 5,
    "importedLeadIds": [
      "665d4e5f6a7b8c9d0e1f2a3b",
      "665d4e5f6a7b8c9d0e1f2a3c"
    ],
    "errors": [
      {
        "email": "not-an-email",
        "error": "Invalid email format"
      }
    ]
  }
}
POST
/v1/leads/bulk
POST
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_...)
Bearer Token
Bearer Tokenstring
Required

API key as Bearer token

API key as Bearer token
Content-Typestring
Required

The media type of the request body

Options: application/json
leadsarray
Required

Array of lead objects (max 5,000)

skipDuplicatesboolean

Skip leads whose email already exists (false = update existing)

dataCleanupboolean

Normalize emails, phone numbers, names

tagstring

Tag to apply to all imported leads

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_...)

header
Authorizationstring
Required

Bearer token. API key as Bearer token

Body

application/json
leadsarray
Required

Array of lead objects (max 5,000)

skipDuplicatesboolean

Skip leads whose email already exists (false = update existing)

dataCleanupboolean

Normalize emails, phone numbers, names

tagstring

Tag to apply to all imported leads

Responses