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/bulk

Authorization

bearerAuth
AuthorizationBearer <token>

Use an account API key in the Authorization header: Authorization: Bearer f_....

In: header

Path Parameters

idstring

Campaign id.

Formatuuid

Header 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>
Items1 <= items <= 100
curl -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"  }}