Leads
Bulk sync leads
Synchronously imports or upserts up to 100 leads in a single request. Per-row lead webhooks are suppressed; Furnace emits one lead.bulk_import.completed batch event. Supports idempotent retries with Idempotency-Key.
POST
/v1/campaigns/{id}/leads/bulkAuthorization
bearerAuth AuthorizationBearer <token>
Use an account API key in the Authorization header: Authorization: Bearer f_....
In: header
Path Parameters
idstring
Campaign id.
Format
uuidHeader Parameters
Idempotency-Key?string
Optional idempotency key for campaign create, lead create, and bulk lead imports. Retries with the same key and body return the cached response.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
leadsarray<LeadCreate>
Items
1 <= items <= 100curl -X POST "https://example.com/v1/campaigns/497f6eca-6276-4993-bfeb-53cbbbba6f08/leads/bulk" \ -H "Content-Type: application/json" \ -d '{ "leads": [ { "email": "jane@example.com", "first_name": "Jane", "custom_lead_data": { "company": "Acme Co", "source": "Landing Page" }, "tags": [ "Hunter", "ICP Fit" ], "email_verification": { "status": "ok", "provider": "millionverifier" } }, { "email": "max@example.com", "first_name": "Max", "custom_lead_data": { "company": "Northwind", "source": "Conference" }, "tags": [ "Apollo" ] } ] }'{ "imported": 2, "incomplete": 0, "failed": 0, "errors": []}{ "error": { "type": "invalid_request_error", "code": "invalid_flow", "message": "Flow validation failed" }, "details": [ { "path": "nodes[1].data.variants[0].id", "code": "invalid_variant_id", "message": "Email variants must have a stable UUID id." } ]}{ "error": { "type": "authentication_error", "code": "invalid_api_key", "message": "A valid Furnace API key is required" }}{ "error": { "type": "permission_error", "code": "smartlead_read_only", "message": "Smartlead campaigns are read-only via the API" }}{ "error": { "type": "invalid_request_error", "code": "campaign_not_found", "message": "Campaign not found" }}{ "error": { "type": "rate_limit_error", "code": "rate_limit_exceeded", "message": "Rate limit exceeded for this account" }}{ "error": { "type": "api_error", "code": "internal_error", "message": "Internal server error" }}