> This page is for Server SDKs.

> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# create

> Create a new queue.

Create a new queue.

### Schema

```yaml
openapi: 3.1.0
info:
  title: API
  version: 1.0.0
paths:
  /api/relay/rest/queues:
    post:
      operationId: subpackageQueues_create_queue
      summary: Create queue
      description: >-
        Creates a voice call queue in the project for calls that need to wait
        for later handling. Queue names must be unique among active queues; a
        deleted queue's name can be reused. The call workflow is responsible for
        placing callers into the queue. Use Compatibility [Create
        queue](/docs/compatibility-api/rest/queues/create-queue) for
        form-encoded requests.


        #### Permissions


        The API token used to authenticate must have the following scope(s)
        enabled to make a successful request: _Voice_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).
      tags:
        - subpackage_queues
      responses:
        '201':
          description: >-
            The request has succeeded and a new resource has been created as a
            result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '422':
          description: The request failed validation. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.ValidationError'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateQueueRequest'
tags:
  - name: subpackage_queues
servers:
  - url: https://%7BYour_Space_Name%7D.signalwire.com
    description: SignalWire API
components:
  schemas:
    CreateQueueRequest:
      type: object
      properties:
        name:
          type: string
          description: The name of the queue.
        max_size:
          type: integer
          description: The maximum number of callers allowed in the queue.
      description: Request body for creating a queue.
      title: CreateQueueRequest
    uuid:
      type: string
      format: uuid
      description: Universal Unique Identifier.
      title: uuid
    QueueResponse:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/uuid'
          description: The unique identifier of the queue.
        project_id:
          $ref: '#/components/schemas/uuid'
          description: The project ID associated with this queue.
        friendly_name:
          type: string
          description: The friendly name of the queue.
        max_size:
          type: integer
          description: The maximum number of callers allowed in the queue.
        current_size:
          type: integer
          description: The current number of callers in the queue.
        average_wait_time:
          type: integer
          description: The average wait time in seconds.
        uri:
          type: string
          description: The URL of this queue.
        date_created:
          type: string
          format: date-time
          description: Timestamp when the queue was created.
        date_updated:
          type: string
          format: date-time
          description: Timestamp when the queue was last updated.
      required:
        - id
        - project_id
        - friendly_name
      description: Response containing a single queue.
      title: QueueResponse
    TypesStatusCodesStatusCode401Error:
      type: string
      enum:
        - Unauthorized
      title: TypesStatusCodesStatusCode401Error
    Types.StatusCodes.StatusCode401:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/TypesStatusCodesStatusCode401Error'
      required:
        - error
      description: Access is unauthorized.
      title: Types.StatusCodes.StatusCode401
    Types.StatusCodes.SpaceApiErrorItem:
      type: object
      properties:
        detail:
          type: string
          description: A description of what caused the error.
        status:
          type: string
          description: The HTTP status code.
        title:
          type: string
          description: A short summary of the error type.
        code:
          type: string
          description: The error code.
      required:
        - detail
        - status
        - title
        - code
      description: Details about a specific validation error.
      title: Types.StatusCodes.SpaceApiErrorItem
    Types.StatusCodes.ValidationError:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Types.StatusCodes.SpaceApiErrorItem'
          description: List of validation errors.
      required:
        - errors
      description: The request failed validation. See errors for details.
      title: Types.StatusCodes.ValidationError
    TypesStatusCodesStatusCode500Error:
      type: string
      enum:
        - Internal Server Error
      title: TypesStatusCodesStatusCode500Error
    Types.StatusCodes.StatusCode500:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/TypesStatusCodesStatusCode500Error'
      required:
        - error
      description: An internal server error occurred.
      title: Types.StatusCodes.StatusCode500

```

## **Response Example**

### Response (201)

```json
{
  "id": "aae131db-214c-46f5-88b6-92004f8467cf",
  "project_id": "c6c4679b-716a-456a-9e41-a03821005005",
  "friendly_name": "test",
  "max_size": 5,
  "current_size": 0,
  "average_wait_time": 0,
  "uri": "/api/relay/rest/queues/aae131db-214c-46f5-88b6-92004f8467cf",
  "date_created": "2024-01-15T09:30:00Z",
  "date_updated": "2024-01-15T09:30:00Z"
}
```

## **Example**

```typescript {9}
import { RestClient } from "@signalwire/sdk";

const client = new RestClient({
  project: "your-project-id",
  token: "your-api-token",
  host: "your-space.signalwire.com"
});

const queue = await client.queues.create({ name: "support", max_size: 50 });
console.log("Queue ID:", queue.id);
```