On this page

POST/campaigns/:campaignId/leads/batch-delete

Credits: None (no refund of insert credits)
LinkedIn risk: None
Rate limit: 10 / minute (max 100 items)

Optional Idempotency-Key (TTL 24h).


Purpose

Permanently delete up to 100 leads from a campaign. Same outcome as in-app bulk delete (lead removed; campaign totals refreshed). Irreversible — no credit refund.


Request

POST /campaigns/search_abc/leads/batch-delete
X-API-Key: sk_live_...
Idempotency-Key: optional-key
Content-Type: application/json
{
  "leadIds": ["lead_xyz", "lead_abc"]
}
FieldNotes
leadIdsYes — non-empty array, length 1…100 (hard max)

Duplicate ids: first wins; later → item validation_error.

409 conflict if the campaign is still finding/importing leads.

Idempotency: array order matters. Persist 200 only when summary.deleted > 0. Retry of already-deleted ids → not_found (safe).


Response 200

{
  "results": [
    { "index": 0, "leadId": "lead_xyz", "status": "deleted" }
  ],
  "summary": {
    "total": 1,
    "deleted": 1,
    "not_found": 0,
    "validation_error": 0,
    "failed": 0
  },
  "creditsCharged": 0,
  "reconciliationFailed": false
}

Statuses: deleted · not_found · validation_error · failed.

reconciliationFailed: true means deletes succeeded but campaign totals/stats refresh failed — retry is usually unnecessary for the delete itself.


MCP

Tool: delete_leads_batch (destructiveHint: true, idempotentHint: true — confirm first; retry of gone ids → not_found).

See also

  • List leads — verify remaining leads after delete