Add up to 100 contacts to a list

POST
/lists/list/{listId}/contacts/batch

Adds 1 to 100 contacts in one call. Each item of contacts is the same flat object as in POST /lists/list/{listId}/contacts, with the same key resolution, custom variable creation, duplicate rules and updateIfExists behaviour (read that endpoint first).

Rows are processed one after the other and independently: a failing row is reported in results with its index and an error message and does not stop the others. A row repeating an email or LinkedIn URL already seen earlier in the same batch is counted as a duplicate of that earlier row and is never updated, even with updateIfExists=true.

Counters: created + duplicates + failed = total, and updated is a subset of duplicates. The body must be an object with a contacts array, not a bare array. Split larger loads into several calls of 100.

Authorization

apiKey
Authorization<token>

Your 48 character API key, sent as is (a Bearer prefix is tolerated). Create it at https://v3.emelia.io/settings/api.

In: header

Path Parameters

listId*string

List id.

Match^[0-9a-fA-F]{24}$

Query Parameters

updateIfExists?string

Only the exact string true enables it. Applies to every row.

Default"false"

Value in

  • "true"
  • "false"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/lists/list/65f1a2b3c4d5e6f760f68df4/contacts/batch" \  -H "Authorization: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "contacts": [      {        "firstName": "John",        "lastName": "Doe",        "email": "john.doe@acme.com",        "companyName": "Acme"      },      {        "firstName": "Jane",        "lastName": "Roe",        "email": "jane.roe@acme.com",        "companyName": "Acme",        "icebreaker": "Congrats on the new office"      }    ]  }'
{  "success": true,  "total": 3,  "created": 1,  "duplicates": 1,  "updated": 0,  "failed": 1,  "results": [    {      "index": 0,      "leadId": "66f2a1b2c3d4e5f6a7b8c9d0",      "companyId": "66f2a1b2c3d4e5f6a7b8c9e0",      "duplicate": true,      "updated": false    },    {      "index": 1,      "leadId": "66f2a1b2c3d4e5f6a7b8c9d1",      "companyId": "66f2a1b2c3d4e5f6a7b8c9e1",      "duplicate": false,      "updated": false    },    {      "index": 2,      "error": "Field \"tags\" must be a string, number or boolean"    }  ],  "createdCustomVariables": []}