Import leads into a smart list
Takes the same criteria as the generate endpoint but, instead of returning a sample, builds the full audience and writes every matching contact into the destination smart list as rows. The list must already exist — create one with the Lists API first and pass its id.
Runs in the background: responds 202 with a taskId as soon as the import is
queued, and rows appear in the list over the next few minutes. Costs 1 data
credit per contact imported. The credit check gates on the FULL match count,
not on count, because the whole audience is built regardless of how many
rows are imported — call the generate endpoint first to see totalAvailable.
Authorizations
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Body
Lead import criteria plus the destination smart list
Company ID (bills its data credits)
Destination smart list id. Must already exist.
Buyer-intent keyword search — the highest-signal input. { segmentSearches: string[] } is free-text topics the lead is actively shopping for (e.g. ['CRM software']); optional b2b: bool biases to business vs consumer intent. Distinct from filters.businessProfile.companyDescription, which describes what the company IS. Combine with filters to intersect intent and firmographics.
Name for the generated audience. Default "Leads".
Max contacts to import. Required when importAll is false. Note the full audience is still built vendor-side.
Recency window for intent data, 2-10, default 7.
Attribute filters (each a string[] unless noted). Location: city, state, zip_codes. Person: age {minAge,maxAge}, gender, ethnicity, language, education, occupationGroup. Financial: incomeRange, netWorth, homeowner, married, creditRating, creditCardUser, investor. Housing: dwellingType, estimatedHomeValue, mortgageAmount {min,max}. Contact quality: contactNotNulls (fields that must be present). businessProfile (nested object): industry, seniority, department, jobTitle, companyName, companyDomain, companyDescription, employeeCountRange, annualRevenue, sicCodes, naicsCodes. Use lead_field_options for the enumerated fields' valid values.
true = import every matching contact. Defaults to true only when no count is given; pass count to import a slice.
Attach this configuration to the list so it can be edited and auto-refreshed later. Ignored when the list already has an audience — an existing one is never overwritten.
Premade segment externalIds from lead_segments (e.g. "b2b_12636", "b2c_1253").

