List the contacts of a campaign

GET
/advanced/campaign/contacts

Paginated contacts of a campaign with their status in the campaign. page is ZERO based. perPage below 10 is replaced by 20; maximum 10,000.

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

Query Parameters

id*string

Campaign id.

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

Zero based page index.

Range0 <= value
perPage?integer
Range10 <= value <= 10000
Default20
event?|array<string>

Filter on contact status (for example SENT, MAIL_REPLIED; NO_ACTIVITY = no activity yet). Send it as an array: event[]=SENT or repeat the parameter. A single plain event=SENT is accepted by validation but currently fails with a 400 error.

query?string

Exact email, or words matched against email, names, phone and LinkedIn URL.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/advanced/campaign/contacts?id=6650f1a2b839d80011c5a0f1&page=0" \  -H "Authorization: YOUR_API_KEY"
{  "success": true,  "list": [    {      "_id": "6650f1a2b839d80011c5a0f1",      "email": "claire.fontaine@nexora.io",      "firstName": "Claire",      "lastName": "Fontaine",      "phone": "+33 6 12 34 56 78",      "linkedinUrlProfile": "https://www.linkedin.com/in/claire-fontaine",      "status": "SENT",      "lastContacted": "2026-10-06T09:30:00.000Z",      "lastReplied": "2026-10-06T09:30:00.000Z",      "integrationContactId": "6650f1a2b839d800ba9811eb",      "sentiment": "INTERESTED",      "custom": {}    }  ],  "count": 250,  "_id": "6650f1a2b839d800dcab1309"}