v1

latestOpenAPI 3.1.02026-07-2670105729.6 KB
Contacts

Bulk-import contacts from CSV

Parse a raw CSV string and upsert the rows as contacts (≤ 1000). By default each column header maps to a field of the same name (email is required); pass mapping to remap columns explicitly. Rows with a missing/invalid email are SKIPPED (counted in summary.skipped), not errored; disposable-domain rows are imported with validationStatus: "risky" (deliverable but flagged). Returns the same { summary, fieldsCreated, errors, warnings } as batch-create — 207 when some rows fail validation.

post/v1/contacts/import-csv

Request body

csvstring required
mappingobject
validateboolean

Optional deliverability check on ingestion. When true, each address is validated with the provider (2 credits per address, charged on success) and the verdict is saved to the contact’s validationStatus. Submissions above the inline cap (100 addresses) upsert first and validate as a background job, returning a validationJobId.

Response

Import summary (all rows valid).

fieldsCreatedstring[] required
validationJobIdstring