Bulk Create / Update Contacts
Upsert up to 1,000 contacts in a single call, processed asynchronously.
POSThttps://api.audienceful.com/v2/people/bulk
curl --location --request POST 'https://api.audienceful.com/v2/people/bulk' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>' \
--data-raw '{
"people": [
{ "email": "a@example.com", "tags": ["import"], "notes": "", "extra_data": { "plan": "pro" } },
{ "email": "b@example.com" }
]
}'{
"operation_id": "task-abc123",
"operation_url": "https://api.audienceful.com/v2/operations/task-abc123",
"status": "pending",
"accepted": 2
}Requires the people:write scope. This endpoint accepts up to 1,000 contacts per call and processes them asynchronously — it returns immediately with an operation_id you can poll for completion. Like the single Create a Contact endpoint, contacts are keyed by email: any email that already exists is merged with the supplied data (there is no skip-existing mode).
Body
peoplearrayrequired
The contacts to create or merge (at least one, at most 1,000).
Response
Returns 202 Accepted.
operation_idstring
The id of the async operation.
operation_urlstring
The full URL of the operation — poll it to watch the batch progress from
pending → processing → succeeded.statusstring
The operation's initial status,
pending. Poll the operation to see it move as the batch is processed.acceptednumber
The number of contacts accepted for processing.
Last updated: July 11, 2026