---
title: "Append numbers to queue"
method: POST
path: "/v2/api/dialing-queues/current/numbers"
tags: ["Power Dialer"]
---

# Append numbers to queue

`POST /v2/api/dialing-queues/current/numbers`

Appends phone numbers to the Power Dialer queue assigned to the authenticated user. Creates the queue implicitly if none exists. Send `user_id` or `email` to append to a teammate's queue — if that teammate has no current queue, one is created with the API key owner as `creator_id` and the teammate as `assignee_id`. `user_id` wins when both are provided.

## Request body

- AppendQueueNumbersRequest
  - `numbers` object[], required — Numbers to append to the queue. Each entry requires a phone number; contact metadata is optional.
    - `number` string, required — Phone number in any format — will be normalized to E.164
    - `name` string, nullable — First name (optional — used to create or match a contact)
    - `last_name` string, nullable — Last name
    - `company` string, nullable — Company name — matched by name within the team (case-insensitive). If no matching company exists, one is created automatically.
    - `website` string, nullable — Website URL
    - `job_title` string, nullable — Job title
    - `emails` string[], nullable — Email addresses
    - `addresses` string[], nullable — Physical addresses
  - `user_id` string, nullable — 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](/en/v2/api-reference/users/list-users).
  - `email` string, email, nullable — Optional. Email of a teammate whose queue should receive the numbers. Ignored when `user_id` is also supplied.

## Response `200`

Numbers appended

- object
  - `data` AppendQueueNumbersResponse
    - `added` QueueNumber[] — Numbers that were successfully appended
      - `number_to` string — E.164 destination phone number
      - `position` integer — Order within the queue (0-based)
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `call_start_date` string, date-time, nullable — When the user started calling this entry. `null` if the entry is still unassigned.
      - `call_id` string, nullable — ID of the call placed for this entry (`cll-*`). `null` until a call is placed.
      - `routing_result` 'FAILED' | 'RECEIVED' | 'BLOCKED' | 'ANSWERED' | 'TRANSFERRED_BLAND' | 'TRANSFERRED_ELEVEN_LABS' | 'TRANSFERRED_EXTERNAL' | 'FAILED_EXTERNAL' | 'VOICEMAIL' | 'CLOSED', nullable — Final routing outcome of the call placed for this entry.
      - `sync_status` 'NOT_SYNCED' | 'PROCESSING' | 'SYNCED' — State of contact creation/sync for this entry.
      - `detected_outbound_voicemail` boolean, nullable — Whether the call was detected as having reached a voicemail box.
      - `not_reached_destination_reason` 'BUSY' | 'CALLEE_TEMPORARILY_UNAVAILABLE' | 'RING_TIMEOUT' | 'NOT_IN_SERVICE' | 'DECLINED' | 'NETWORK_ERROR', nullable — Why the call did not reach the contact (only set when applicable).
      - `voicemail_left` boolean, nullable — Whether the user left a voicemail on this entry.
    - `skipped` object[] — Numbers that were skipped (e.g. invalid format)
      - `number` string — The raw input number that was skipped
      - `reason` 'INVALID_PHONE_NUMBER' — Why the number was skipped

## Other responses

- `400` — Queue limit reached or validation error
- `401` — Invalid or missing API key
- `404` — Assignee not found
- `409` — Concurrent append conflict
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/withallo/apis/allo-api.md) · [All operations](https://skmtc.net/withallo/apis/allo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/withallo/allo-api/versions/9aab4db82933/schema)
