---
title: "Create a new queue."
method: POST
path: "/api/v1/playback-queues"
tags: ["Playback Queues"]
---

# Create a new queue.

`POST /api/v1/playback-queues`

<h3>🛡️ Requires Capabilities: None</h3>

## Request body

- CreatePlaybackQueueDto

## Response `201`

- PlaybackQueue
  - `queueId` string, required
  - `user` User, required
    - `userId` string, required
    - `cardinalId` string
    - `cachedCloudUser` object, required
      - `subscription` 'free' | 'early_adopter' | 'starter' | 'pro' | 'ultimate'
    - `cachedCloudUserAt` string, date-time
    - `enabled` boolean
    - `role` string, required
    - `designation` string
    - `activityStatus` string
    - `activityStatusUpdatedAt` string, date-time
    - `roles` RoleAssignment[], required
      - `id` number, required
      - `user` User, required — recursive
      - `role` string, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `deletedAt` string, date-time, required
    - `username` string
    - `password` string
    - `id` number, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `deletedAt` string, date-time, required
  - `type` object, required
  - `dynamicType` string, required
  - `libraries` Library[], required
    - `id` number, required
    - `libraryId` string, required
    - `name` string, required
    - `paths` string[], required
    - `user` User, required
      - `userId` string, required
      - `cardinalId` string
      - `cachedCloudUser` object, required
        - `subscription` 'free' | 'early_adopter' | 'starter' | 'pro' | 'ultimate'
      - `cachedCloudUserAt` string, date-time
      - `enabled` boolean
      - `role` string, required
      - `designation` string
      - `activityStatus` string
      - `activityStatusUpdatedAt` string, date-time
      - `roles` RoleAssignment[], required
        - `id` number, required
        - `user` User, required — recursive
        - `role` string, required
        - `createdAt` string, date-time, required
        - `updatedAt` string, date-time, required
        - `deletedAt` string, date-time, required
      - `username` string
      - `password` string
      - `id` number, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `deletedAt` string, date-time, required
    - `playbackQueues` PlaybackQueue[], required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `deletedAt` string, date-time, required
  - `items` PlaybackQueueItem[]
    - `queueItemId` string, required
    - `queue` PlaybackQueue, required — recursive
    - `mediaType` string, required
    - `mediaId` string, required
    - `position` number, required
    - `id` number, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `deletedAt` string, date-time, required
  - `id` number, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `deletedAt` string, date-time, required

## Other responses

- `401` — Possible reasons: The authorization token is invalid.

## Changes

- **2026-03-10** `1ec5a2e9d039` — 1 warning
  - removed the optional property `items/items/history` from the response with the `201` status

[Change history](https://skmtc.dev/cardinalapps/apis/cardinal-media-server-api/changes/api/v1/playback-queues/post.md)

---

[API](https://skmtc.dev/cardinalapps/apis/cardinal-media-server-api.md) · [All operations](https://skmtc.dev/cardinalapps/apis/cardinal-media-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cardinalapps/cardinal-media-server-api/revisions/b09fd4df42df/schema)
