List campaign contacts
curl --request GET \
--url https://dashboard.ondial.ai/api/v1/campaigns/{campaignId}/contacts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dashboard.ondial.ai/api/v1/campaigns/{campaignId}/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://dashboard.ondial.ai/api/v1/campaigns/{campaignId}/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"contacts": [
{
"contactId": "<string>",
"campaignId": "<string>",
"phone": "<string>",
"status": "<string>",
"callReceiveStatus": 123,
"whatsappStatus": "<string>",
"whatsappQueueStatus": "<string>",
"emailStatus": "<string>",
"emailScheduledAt": "2023-11-07T05:31:56Z",
"whatsappScheduledAt": "2023-11-07T05:31:56Z",
"emailTemplateId": "<string>",
"emailProfileId": "<string>",
"whatsappTemplateId": "<string>",
"whatsappProfileId": "<string>",
"isFollowUp": true,
"scheduledAt": "2023-11-07T05:31:56Z",
"requestedChannels": [
"<string>"
],
"source": "<string>",
"sandbox": true,
"deletedAt": "2023-11-07T05:31:56Z",
"lastCall": {
"callId": "<string>",
"status": "<string>",
"hasAnalysis": true,
"startedAt": "2023-11-07T05:31:56Z"
}
}
],
"nextCursor": "<string>"
}{
"error": "Invalid or inactive API key",
"reasonCode": "unauthorized"
}{
"error": "Not found",
"reasonCode": "not_found"
}List campaign contacts
Paginated contacts for a campaign — not campaign CRUD.
GET
/
api
/
v1
/
campaigns
/
{campaignId}
/
contacts
List campaign contacts
curl --request GET \
--url https://dashboard.ondial.ai/api/v1/campaigns/{campaignId}/contacts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dashboard.ondial.ai/api/v1/campaigns/{campaignId}/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://dashboard.ondial.ai/api/v1/campaigns/{campaignId}/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"contacts": [
{
"contactId": "<string>",
"campaignId": "<string>",
"phone": "<string>",
"status": "<string>",
"callReceiveStatus": 123,
"whatsappStatus": "<string>",
"whatsappQueueStatus": "<string>",
"emailStatus": "<string>",
"emailScheduledAt": "2023-11-07T05:31:56Z",
"whatsappScheduledAt": "2023-11-07T05:31:56Z",
"emailTemplateId": "<string>",
"emailProfileId": "<string>",
"whatsappTemplateId": "<string>",
"whatsappProfileId": "<string>",
"isFollowUp": true,
"scheduledAt": "2023-11-07T05:31:56Z",
"requestedChannels": [
"<string>"
],
"source": "<string>",
"sandbox": true,
"deletedAt": "2023-11-07T05:31:56Z",
"lastCall": {
"callId": "<string>",
"status": "<string>",
"hasAnalysis": true,
"startedAt": "2023-11-07T05:31:56Z"
}
}
],
"nextCursor": "<string>"
}{
"error": "Invalid or inactive API key",
"reasonCode": "unauthorized"
}{
"error": "Not found",
"reasonCode": "not_found"
}There is no
POST /api/v1/campaigns. Create and start campaigns in the dashboard. Use List campaigns and Get campaign to look up campaignId and templates.Authorizations
Paste only your API key (ond_live_… or ond_test_…). Do not type the word Bearer — the playground adds it.
Path Parameters
Response
Page of contacts
Hide child attributes
Hide child attributes

