Jobs
Preview a bulk operation
Estimates matched/excluded/actionable counts for a scoped bulk mutation. Pass the returned preview_id when creating the job to bind execution to the preview.
POST
/v1/bulk/previewAuthorization
bearerAuth AuthorizationBearer <token>
Use an account API key in the Authorization header: Authorization: Bearer f_....
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
operationstring
Value in
- "api_lead_import"
- "add_to_campaign"
- "remove_from_campaign"
- "remove_from_all_campaigns"
- "pause_enrollments"
- "resume_enrollments"
- "add_to_lead_list"
- "remove_from_lead_list"
- "export_leads"
- "csv_lead_import_staged"
campaign_id?string
Format
uuidtarget_list_id?string
Format
uuidlist_id?string
Format
uuidglobal_lead_ids?array<string>
scope?BulkScope
Server-side population selector. Prefer list/campaign/staged scopes for bulk work.
kindstring
Value in
- "selection"
- "explorer_view"
- "saved_list"
- "saved_list_filtered"
- "campaign"
- "staged_upload"
global_lead_ids?array<string>
list_id?string
Format
uuidcampaign_id?string
Format
uuidupload_id?string
Format
uuidquery?object
exclusions?BulkExclusions
People to exclude from a scoped bulk mutation.
list_id?string
Format
uuidcampaign_id?string
Format
uuidglobal_lead_ids?array<string>
emails?array<string>
curl -X POST "https://example.com/v1/bulk/preview" \ -H "Content-Type: application/json" \ -d '{ "operation": "add_to_campaign", "campaign_id": "1d8dc901-3d2d-4d9f-9dcc-4f8b3aa1a1fb", "scope": { "kind": "saved_list", "list_id": "7c0d0f5a-2f61-4a2a-9f1d-1b2c3d4e5f60" }, "exclusions": { "list_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }'{ "data": { "preview_id": "string", "operation": "string", "operation_hash": "string", "expires_at": "2019-08-24T14:15:22Z", "counts": { "matched": 0, "excluded": 0, "duplicate": 0, "ineligible": 0, "actionable": 0 }, "warnings": [ "string" ], "scope": { "kind": "selection", "global_lead_ids": [ "string" ], "list_id": "430bbdbc-9d7f-4d06-a273-67ca4ba4ae4b", "campaign_id": "78614b6c-fe7c-41e2-8e25-c9b3a3c91904", "upload_id": "f2ef591b-135b-46fa-a604-3d4fda5bfbfb", "query": {} }, "exclusions": { "list_id": "430bbdbc-9d7f-4d06-a273-67ca4ba4ae4b", "campaign_id": "78614b6c-fe7c-41e2-8e25-c9b3a3c91904", "global_lead_ids": [ "string" ], "emails": [ "user@example.com" ] }, "target": {} }}{ "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": "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" }}