Listing Users

Fetch the people in a customer's domain.

Returns the common users in a customer's domain. You can use this, for example, to let your interface ask who is placing this callPOST /v1/domains/{domain_id}/calls needs an extension, and this is where you get one.

Requires the user:read permission and an active integration on the requested domain.

Request

curl https://partner-api.kricktalk.com/v1/domains/yourcustomer.kricktalk/users \
  -H "Authorization: Bearer $ACCESS_TOKEN"
ParameterInRequiredNotes
domain_idpathyesThe customer's domain name. Not the domain from /v1/auth, which is your own.

Response

{
  "users": [
    { "user_id": "101", "first_name": "Dana", "last_name": "Reed" },
    { "user_id": "102", "first_name": "Sam", "last_name": "Ortiz" }
  ]
}

user_id is the extension. Pass it as from_extension when placing a call.

Names come from the customer's own phone-system records and are not guaranteed to be filled in — render a sensible fallback when they are blank.

Who is included

Only people. Extensions that belong to the phone system rather than a human — ring groups, shared voicemail boxes, parking lots, reserved ranges, and service accounts, including the one your integration authenticates as — are filtered out.

This is deliberate: the list exists to populate a picker, and a call cannot meaningfully be placed "as" a parking lot. If a user you expect is missing, their extension is outside the range the phone system reserves for people, and the customer's KrickTalk administrator can correct it.

The list reflects the domain as it stands right now. Cache it for a screen or a session if you like, but re-fetch rather than storing it indefinitely to account for the possibility (unlikely as it may be) of staff change.

Errors

StatusMeaning
403Token missing/invalid/expired, or no active integration on this domain.
5xxThe phone system did not answer. Retry — this request is safe to repeat.

A 403 here is most often the domain check rather than the token — see Errors and rate limits.

📘

An empty domain_id is not a 400

Because the domain is part of the path, omitting it does not reach the endpoint at all — you get the gateway's 403 for an unrecognized route rather than a validation error. Check the path when a 403 arrives with no message body.


Did this page help you?