On this page

Credits & rate limits

Credits

ActionCredits
POST /campaigns/:campaignId/leads when a lead is created1 (normal lead credits)
POST /campaigns/:campaignId/leads/batch per successfully created lead1 (summed in creditsCharged)
Duplicate / excluded / validation soft-fail / insufficient / failed (no insert)0
PATCH …/leads/:leadId, POST …/leads/batch-update, POST …/leads/batch-delete0 (delete does not refund insert credits)
POST /campaigns/lookalikeLookalike allowance (reserved at launch; unused refunded). Request-log creditsCharged stays 0
Search, lookup, send, start, pause, all GETs (including /activity, /insights/overview)0

Insufficient normal credits → 403 insufficient_credits. Insufficient Lookalike → 403 insufficient_lookalike_credits.

Global rate limit

All /public/v1/* routes: 120 requests / minute per API key.

Route classExtra limit
POST .../leads60 / minute
POST .../leads/batch10 / minute (max 100 items)
POST .../leads/batch-update6 / minute (max 100 items)
POST .../leads/batch-delete10 / minute (max 100 items)
PATCH .../leads/:id60 / minute
POST .../start, POST .../pause30 / minute
POST /inbox/messages10 / minute
POST /linkedin/profiles/lookup5 / minute per key; 1 / 20s per account; 80/day classic or 150/day Sales Nav
POST /linkedin/search6 / minute per key; 1 page / 15s per account; daily people quota shared with in-app search (1000 / 1500 SN)
POST /campaigns/lookalike6 / minute per key

429 responses include Retry-After and error.details.retryAfterSeconds.

Prefer depth: basic on lookup. Search limit: max 50 classic / 100 Sales Nav.

Idempotency

For POST .../leads, POST .../leads/batch, POST .../leads/batch-update, POST .../leads/batch-delete, POST /inbox/messages, and POST /campaigns/lookalike:

Idempotency-Key: <opaque-string-max-128>

Same key + same body → replay stored success (24h). Same key + different body, or request still in flight → 409 conflict.

If we cannot record the key (a transient failure on our side), the request is not performed and you get 503 upstream_unavailable saying nothing happened — retry the same key. We would rather fail than risk sending a duplicate message or charging a second credit.

For add-leads batch, the key is only retained when at least one item is created, duplicate, or excluded (so all-insufficient / all-validation retries work after a top-up). For batch-update, persist when summary.updated > 0. For batch-delete, persist when summary.deleted > 0.

Request size

Request bodies are capped at 128 KiB. Larger bodies get 413 validation_error with error.details.maxBytes.