Skip to main content
cURL

Authorizations

Authorization
string
header
required

Issued in Developers. Workspace/owner/scopes come from credential, never acting-user headers. API keys cannot manage API credentials.

Headers

Idempotency-Key
string
required

Persist one key for this logical operation before sending it. Reuse the same value only with the same method, path and body after a timeout. A changed request returns 409 idempotency_conflict; a matching retry returns the original response.

Pattern: ^[A-Za-z0-9._:-]{1,200}$

Body

application/json

Accepts 1–10,000 rows for background processing. The serialized parsed request is limited to 10,000,000 UTF-16 code units (JavaScript string length). Rows are validated individually, using the job ownerId.

listId
integer
required

Existing calling list to receive successfully imported contacts.

Required range: 1 <= x <= 2147483647
ownerId
string
required

Active workspace member assigned to every row. Overrides any ownerId supplied inside a row.

Required string length: 1 - 100
rows
any[]
required

Between 1 and 10,000 contact objects. Each row uses ContactWrite fields except that ownerId comes from the job. Invalid rows are reported separately during processing.

Required array length: 1 - 10000 elements

Response

The import was queued. Use the returned ID to poll progress; row-level success is not yet established.

id
string<uuid>
required

Import job ID. Poll GET /imports/{id} with the same API key.

state
enum<string>
required

A newly accepted job starts as pending. Acceptance does not mean the contacts have been imported.

Available options:
pending
processed
integer
required

Number of rows processed so far; zero in the initial response.