- Bulk create contacts
You can bulk create contacts by submitting an array of contact objects. This is a strict create and never updates an existing contact.
The endpoint creates an async job that processes the items in the background. Use the returned job ID with GET /contacts/bulk/{id} to check the job status.
Only the fields listed in the request schema below can be set. Any other fields in a contact object are ignored.
If a contact already exists with the given external_id or email (including an archived contact), that item is rejected and the job's state ends as completed_with_errors. New contacts in the same request are still created. The job state from GET /contacts/bulk/{id} is the signal that one or more items were rejected.
Created contacts aren't returned with IDs in the response. Look them up afterwards with Get a contact by External ID or Search contacts.
- Maximum of 100 contacts per request.
- You can append tasks to an existing job by including
job.idin the request body. - Tag application is best-effort and processed asynchronously: unknown tag IDs are skipped, and per-tag results are not returned in the job status.
Intercom API version.
By default, it's equal to the version set in the app package.
- The production API serverhttps://api.intercom.io/contacts/bulk
- The european API serverhttps://api.eu.intercom.io/contacts/bulk
- The australian API serverhttps://api.au.intercom.io/contacts/bulk
- Successful
- Attach companies
- Add tags
- Append to existing job
curl -i -X POST \
https://api.intercom.io/contacts/bulk \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Intercom-Version: Preview' \
-d '{
"contacts": [
{
"external_id": "abc123",
"email": "joe@bloggs.com",
"name": "Joe Bloggs",
"role": "user",
"phone": "+353871234567",
"avatar": "https://www.example.com/avatar_image.jpg",
"signed_up_at": 1571672154,
"last_seen_at": 1571672154,
"owner_id": "321",
"unsubscribed_from_emails": false,
"language_override": "fr",
"custom_attributes": {
"plan": "pro"
},
"companies": [
{
"company_id": "6",
"name": "Blue Sun"
}
],
"tags": {
"add": [
{
"id": "123"
}
]
}
}
]
}'Accepted
The current state of the job.
The time the job was last updated as a Unix timestamp.
The time the job completed as a Unix timestamp. Null if not yet completed.
{ "id": "job_v2_2", "type": "contacts.bulk.job", "state": "running", "created_at": 1713360000, "updated_at": 1713360060, "completed_at": null, "tasks": [ { … } ], "url": "https://api.intercom.io/contacts/bulk/job_v2_2" }