Skip to content

DNC

Your organization’s Do Not Call list.

Every example sends your key ID and secret as CALLVIEW_KEY_ID and CALLVIEW_SECRET (see Keys and authentication). The base address is https://v2-api.callview.ai/api/v1/external.

GET /dnc/check

Needs dnc:read.

Parameters

Name In Type Required Notes
phone query string yes The number to check, in any common format. URL-encode a leading plus (%2B); an unencoded one arrives as a space and is read as a plus.
Terminal window
curl -X GET 'https://v2-api.callview.ai/api/v1/external/dnc/check?phone=%2B12125557812' \
-u "$CALLVIEW_KEY_ID:$CALLVIEW_SECRET"

200 The answer. normalizedPhone is the number in E.164 form, as the list stores it; null when the number couldn’t be read (the value as sent was then matched exactly, so onDncList false does not mean it is safe to call).

{
"data": {
"phone": "+15550100001",
"normalizedPhone": "string",
"onDncList": true,
"livemode": true
}
}

Errors

Status Codes
400 invalid_request, invalid_phone
401 authentication_failed
403 permission_denied
429 rate_limited, too_many_concurrent_requests
500 internal_error

POST /dnc

No campaign of your organization dials it again. Your leads with this number get a lead.opted_out event. Needs dnc:write.

Parameters

Name In Type Required Notes
Idempotency-Key header string Any string you choose (1 to 255 visible characters), new for each new action. Send the same key again within 24 hours and you get the first answer back instead of a second lead or call. At most 255 characters.

Body

Field Type Required Notes
phone string yes
Terminal window
curl -X POST 'https://v2-api.callview.ai/api/v1/external/dnc' \
-u "$CALLVIEW_KEY_ID:$CALLVIEW_SECRET" \
-H 'Idempotency-Key: postDnc-0001' \
-H 'Content-Type: application/json' \
-d '{
"phone": "+12125557812"
}'

201 Added

{
"data": {
"id": "9c8b7a6f-5e4d-4c3b-8a29-1f0e9d8c7b6a",
"phone": "+12125557812",
"source": "api",
"createdAt": "2026-10-06T16:58:04.000Z",
"livemode": true
}
}

Errors

Status Codes
400 invalid_request, invalid_phone
401 authentication_failed
403 permission_denied
409 duplicate_dnc_entry, idempotency_mismatch, idempotency_in_progress
429 rate_limited, too_many_concurrent_requests
500 internal_error
503 service_unavailable

POST /dnc/batch

Each number is added on its own; errors lists the ones that weren’t (bad or already there). Needs dnc:write.

Parameters

Name In Type Required Notes
Idempotency-Key header string Any string you choose (1 to 255 visible characters), new for each new action. Send the same key again within 24 hours and you get the first answer back instead of a second lead or call. At most 255 characters.

Body

Field Type Required Notes
phones array of string yes At most 100 items.
Terminal window
curl -X POST 'https://v2-api.callview.ai/api/v1/external/dnc/batch' \
-u "$CALLVIEW_KEY_ID:$CALLVIEW_SECRET" \
-H 'Idempotency-Key: postDncBatch-0001' \
-H 'Content-Type: application/json' \
-d '{
"phones": [
"+12125557812",
"+13105557845"
]
}'

200 How many were added

{
"data": {
"succeeded": 1,
"failed": 1,
"errors": [
"string"
],
"livemode": true
}
}

Errors

Status Codes
400 invalid_request
401 authentication_failed
403 permission_denied
409 idempotency_mismatch, idempotency_in_progress
429 rate_limited, too_many_concurrent_requests
500 internal_error
503 service_unavailable

GET /dnc

Page by page (cursor = the next_cursor you were given). Needs dnc:read.

Parameters

Name In Type Required Notes
cursor query string
limit query integer Default 50. 1 to 100.
search query string Part of a phone number. At most 200 characters.
Terminal window
curl -X GET 'https://v2-api.callview.ai/api/v1/external/dnc' \
-u "$CALLVIEW_KEY_ID:$CALLVIEW_SECRET"

200 A page of entries

{
"data": [
{
"id": "9c8b7a6f-5e4d-4c3b-8a29-1f0e9d8c7b6a",
"phone": "+12125557812",
"source": "api",
"createdAt": "2026-10-06T16:58:04.000Z",
"livemode": true
}
],
"meta": {
"next_cursor": null,
"has_more": false
}
}

Errors

Status Codes
400 invalid_request
401 authentication_failed
403 permission_denied
429 rate_limited, too_many_concurrent_requests
500 internal_error

DELETE /dnc/{id}

Needs dnc:write. Be sure the person asked for it; we can call the number again after this.

Parameters

Name In Type Required Notes
id path string (uuid) yes
Terminal window
curl -X DELETE 'https://v2-api.callview.ai/api/v1/external/dnc/9c8b7a6f-5e4d-4c3b-8a29-1f0e9d8c7b6a' \
-u "$CALLVIEW_KEY_ID:$CALLVIEW_SECRET"

200 The entry that was removed

{
"data": {
"id": "9c8b7a6f-5e4d-4c3b-8a29-1f0e9d8c7b6a",
"phone": "+12125557812",
"source": "api",
"createdAt": "2026-10-06T16:58:04.000Z",
"livemode": true
}
}

Errors

Status Codes
400 invalid_request
401 authentication_failed
403 permission_denied
404 not_found
429 rate_limited, too_many_concurrent_requests
500 internal_error