# 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/users?limit=50' \
--header "Authorization: Bearer $POWERDIALER_API_KEY"{
"data": [
{
"id": "user_example",
"name": "Alex Rivera",
"firstName": "Alex",
"lastName": "Rivera",
"identifier": "[email protected]",
"email": "[email protected]",
"role": "org:member",
"status": "active",
"joinedAt": "2026-09-01T09:00:00.000Z",
"updatedAt": "2026-09-01T09: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 workspace members
Discover which PowerDialer members your integration may assign as ownerId before creating contacts, lists or imports, instead of copying opaque IDs by hand. Requires a valid scoped bearer key; no additional resource scope is needed. Membership comes from the authoritative workspace directory, never from contact ownership or call history.
Visibility follows the key’s owner restrictions: a personal key returns only its owner; a workspace key with selected user IDs returns only those members who are still in the workspace; an unrestricted workspace key returns every current member. Results are ordered by join time and then member ID. Follow nextCursor with cursor until it is null; the cursor is opaque and valid only with the same key and page size. Pagination is not a snapshot, so re-read before relying on a mapping that is more than a few minutes old.
An empty page means the key currently has no eligible owners, for example a restricted key whose selected members have all left. Every returned id is accepted by ownerId at that moment; a member who leaves later makes subsequent writes fail with 403 invalid_owner. 400 invalid_request indicates an invalid cursor or page size. Reads can be retried after transient errors without an idempotency key.
See calling-list management for using the ID.
# 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/users?limit=50' \
--header "Authorization: Bearer $POWERDIALER_API_KEY"{
"data": [
{
"id": "user_example",
"name": "Alex Rivera",
"firstName": "Alex",
"lastName": "Rivera",
"identifier": "[email protected]",
"email": "[email protected]",
"role": "org:member",
"status": "active",
"joinedAt": "2026-09-01T09:00:00.000Z",
"updatedAt": "2026-09-01T09: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.
Query Parameters
Opaque page cursor. Omit for the first page, then pass the previous nextCursor. Keep the same limit while paging.
^\d{1,9}$Maximum members to return in one page, from 1 to 100. Defaults to 50.
1 <= x <= 100