# Replace example resource IDs and ownerId with values from your workspace.
: "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API key}"
curl --request GET \
--url 'https://api.migration.powerdialer.ai/api/public/v2/lists/456/contacts?limit=50' \
--header "Authorization: Bearer $POWERDIALER_API_KEY"{
"data": [
{
"ownerId": "user_example",
"externalId": "crm-contact-123",
"name": "Alex Morgan",
"phoneNumber": "+12125550100",
"additionalNumbers": [],
"metadata": {
"source": "website",
"timeZone": "America/New_York",
"timeZoneSource": "provided"
},
"timeZone": "America/New_York",
"timeZoneSource": "provided",
"id": 123,
"createdAt": "2026-10-08T12:00:00.000Z",
"updatedAt": "2026-10-08T12:00:00.000Z"
}
],
"nextCursor": null
}{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid, expired or revoked",
"requestId": "00000000-0000-4000-8000-000000000004"
}
}List contacts in a calling list
Enumerate the contacts your key can read in one calling list, for example to synchronize a rep’s current queue. Requires both lists:read and contacts:read. The list must be within the key’s owner scope, and each returned contact independently passes contact ownership checks.
A visible list can therefore contain more total members than this endpoint returns. Historical contacts without established attribution are not exposed merely because they appear in the list. Pages follow increasing contact IDs: return nextCursor as after until the cursor is null. Membership can change during pagination, so reconcile with change events when maintaining a mirror.
404 not_found means the list is absent or inaccessible. 403 insufficient_scope requires both read permissions; 400 invalid_request indicates a malformed list ID or pagination value. Reads are retryable after transient failures without an idempotency key.
See list membership.
# Replace example resource IDs and ownerId with values from your workspace.
: "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API key}"
curl --request GET \
--url 'https://api.migration.powerdialer.ai/api/public/v2/lists/456/contacts?limit=50' \
--header "Authorization: Bearer $POWERDIALER_API_KEY"{
"data": [
{
"ownerId": "user_example",
"externalId": "crm-contact-123",
"name": "Alex Morgan",
"phoneNumber": "+12125550100",
"additionalNumbers": [],
"metadata": {
"source": "website",
"timeZone": "America/New_York",
"timeZoneSource": "provided"
},
"timeZone": "America/New_York",
"timeZoneSource": "provided",
"id": 123,
"createdAt": "2026-10-08T12:00:00.000Z",
"updatedAt": "2026-10-08T12:00:00.000Z"
}
],
"nextCursor": null
}{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid, expired or revoked",
"requestId": "00000000-0000-4000-8000-000000000004"
}
}Authorizations
Issued in Developers. Workspace/owner/scopes come from credential, never acting-user headers. API keys cannot manage API credentials.
Path Parameters
Numeric calling-list ID returned by POST /lists or GET /lists. The list must be visible to this credential.
1 <= x <= 2147483647Query Parameters
Exclusive numeric ID cursor. Omit or use 0 for the first page, then pass the previous nextCursor. Keep the same filters while paging.
0 <= x <= 2147483647Maximum items to return in one page, from 1 to 200. Defaults to 50. Smaller pages reduce response size; this is not a total-result limit.
1 <= x <= 200