Skip to main content
POST

Targeting a teammate’s queue

By default, numbers are appended to the queue assigned to the API key owner. To append to a teammate’s queue, send user_id or email in the JSON body. The teammate must belong to the same team as the API key owner.
  • user_id — wins when both are provided. Resolve teammate ids via GET /v2/api/users.
  • email — used only when user_id is absent.
If the teammate has no current queue, one is created with the API key owner recorded as creator_id and the teammate as assignee_id. If the resolved user isn’t on your team, the response is 404 ASSIGNEE_NOT_FOUND.

Custom fields

Each number can carry custom_attributes: values for your team’s person custom fields, keyed by field key. List the keys with GET /v2/api/crm/attributes. The values are written on the contact behind the number, and the contact is created if the number has none.
Values are strings, written in the field’s format:

Date order

03/04/2026 is 3 April in Europe and 4 March in the US. Send date_order next to numbers to say which one you mean: DAY_FIRST or MONTH_FIRST. It applies to every date field in the request.
Without date_order, each date field is read in the order its own values settle: 13/04/2026 can only be day first, 04/13/2026 only month first. When the values don’t settle it, the country of your phone number decides: month first for the US, day first everywhere else. Blank values are ignored. When the contact already exists, only its empty fields are filled: a value already set is kept. Custom fields are never created by this endpoint. Create them first with POST /v2/api/crm/attributes. A key that matches none of your team’s custom fields, or names a deleted field, is ignored. The number is still added with its known attributes, and the unknown keys are listed in ignored_custom_attributes: an always-present array of { "number", "keys" } entries, with number in E.164 format. The array is empty when no key was ignored.
A known key with an unusable value is different: the number is not added and comes back in skipped:

Authorizations

Authorization
string
header
required

Body

application/json
numbers
object[]
required

Numbers to append to the queue. Each entry requires a phone number; contact metadata is optional.

Minimum array length: 1
user_id
string | null

Optional. ID of a teammate whose queue should receive the numbers. The teammate must belong to the same team as the API key owner. Wins over email when both are provided. Resolve teammate ids via GET /v2/api/users.

Example:

"usr-15BB68317A7F06F0C07A3BBD8F244102A6872220"

email
string<email> | null

Optional. Email of a teammate whose queue should receive the numbers. Ignored when user_id is also supplied.

date_order
enum<string> | null

Optional. How to read numeric DATE values in custom_attributes such as 03/04/2026: DAY_FIRST (3 April) or MONTH_FIRST (4 March). Applies to every date field in the request. When absent, each date field is read in the order its values settle (a 13/04/2026 can only be day first); when none settle it, your phone number's country decides: month first for the US, day first everywhere else.

Available options:
DAY_FIRST,
MONTH_FIRST
Example:

"DAY_FIRST"

Response

Numbers appended

data
object