Skip to main content
POST
Import Contacts

Request

Supply either a structured rows array or a raw csv string. When CSV is provided, supply a mapping that maps CSV column names to contact fields. Imports are processed synchronously for up to 500 rows; larger imports are queued and can be tracked via the returned job_id.

Headers

string
Strongly recommended for imports. Same key returns the original result (including job_id) within 24 hours.

Body Parameters

array
Array of contact objects. Each object accepts the same fields as POST /v1/contacts. Provide either rows or csv.
string
Raw CSV text. First line is treated as headers unless has_header is false. Provide either rows or csv.
boolean
default:"true"
Applies only to CSV imports.
object
CSV-only. Maps CSV header names to contact field names (e.g. { "Email Address": "email", "Full Name": "full_name" }). Unknown columns are ignored.
boolean
default:"false"
When true, rows with matching email or phone are updated; when false, they are skipped.
array
Optional array of tag strings applied to every imported row.

Response

object
Responses include X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-Request-ID. Large imports emit an import.completed webhook event when done.

Example Response

Errors