Bulk-import every row of a user-owned list into a campaign as prospects, pulling enrichment data from profile_data.
list_rows 1000 at a time and pulls:
linkedin_url — direct from the rowemail — from profile_data.enrichment.work_email when presentfirstName, lastName, fullName, currentCompany, currentRole, headline — from profile_dataprofile_data.enrichment.work_email on the row. LinkedIn campaigns require a real linkedin_url — placeholder imported-* URLs (used when a list was imported from a non-LinkedIn source) do NOT count and are rejected as invalid.Response shapes.200 — import succeeded (fully or partially); imported, duplicates, invalid, errors, total all returned.206 — a page fetch failed mid-run after earlier rows had already committed. partial: true. Retry with the same listId to pick up remaining rows — already-imported prospects will be rejected as duplicates.422 — the list was readable but zero prospects could be imported: every row invalid, every row a duplicate, or a mix of the two with zero new inserts. The response body still contains the count breakdown.500 — failed to fetch any list rows, or every insert batch errored.206 with partial: true rather than rolling back. Agents should surface this as “imported so far” in UI.Dedup semantics. Same as addCampaignProspects — the unique constraint is (campaign_id, email) for email campaigns and (campaign_id, linkedin_url) for LinkedIn campaigns.Memory. Paginated fetch + batched insert (500/batch) keeps memory bounded for large lists. Safe for lists up to tens of thousands of rows.Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Campaign UUID
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$UUID of a saved list (lists table) owned by the caller. Every row is imported as a prospect into the campaign.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Import succeeded. Returns counts for imported, duplicate, invalid, and error rows, plus the total inspected.
Prospects actually inserted.
0 <= x <= 9007199254740991Rows rejected by the DB unique constraint (already in this campaign).
0 <= x <= 9007199254740991Rows missing the required identity field — for LinkedIn campaigns that's a real linkedin_url (placeholder imported-* URLs don't count), for email campaigns it's a work email in the list's enrichment data.
0 <= x <= 9007199254740991Rows that failed to insert for reasons other than duplicate key (e.g. DB errors).
0 <= x <= 9007199254740991Total list rows inspected (sum of all pages).
0 <= x <= 9007199254740991Present on 206 responses. Indicates a page fetch failed after some rows had already been inserted — the counts reflect the committed subset.