---
title: "Get the contents of a collection"
method: GET
path: "/collections/{collection_id}/items"
tags: ["Collections"]
---

# Get the contents of a collection

`GET /collections/{collection_id}/items`

The collection's members, grouped by object_type under `contents`. A collection is heterogeneous by design, so a flat list would leave the client guessing what each id is. The scalar `items` stays the member count.

## Path parameters

- `collection_id` string, required

## Query parameters

- `offset` integer
- `limit` integer

## Response `200`

The collection and its contents

- CollectionItemsResponse
  - `collection` object, required
    - `id` string, required
    - `name` string, required
    - `owner` string, nullable, required
    - `type` string, nullable, required
    - `object_type` string, nullable, required
    - `items` integer, required
    - `has_art` boolean, required
    - `playlist_folder_id` string
    - `playlist_folder_sort_order` integer
    - `contents` CollectionItemObject[], required
      - `track` integer, required — 1-based position in the collection
      - `track_id` integer, required — id of the membership row, not of the object
      - `object_type` string, required — The kind of object referenced, as a bare string. The set is intentionally open so a new media type is not a breaking change; values seen today include `song`, `album`, `artist`, `playlist`, `podcast`, `podcast_episode` and `video`.

## Other responses

- `400` — HTTP 400 Bad Request (errors 4705, 4710).
- `401` — HTTP 401 Unauthorized (error 4701).
- `403` — HTTP 403 Forbidden (errors 4700, 4703, 4742).
- `404` — HTTP 404 Not Found (error 4704).
- `500` — HTTP 500 Internal Server Error (error 4702).

## Changes

- **2026-08-07** `f37b545b95d7` — 2 info
  - added the optional property `collection/playlist_folder_id` to the response with the `200` status
  - added the optional property `collection/playlist_folder_sort_order` to the response with the `200` status
- **2026-07-31** `c3ba583076d6` — 1 breaking, 2 info
  - the `collection/contents/items/additionalProperties/` response's property type/format changed from `array`/`` to `object`/`` for status `200`
  - added the required property `collection/contents/items/track` to the response with the `200` status
  - added the required property `collection/contents/items/track_id` to the response with the `200` status
- **2026-07-29** `d57745813d53` — 3 breaking
  - the `collection/contents/items/additionalProperties/` response's property type/format changed from `object`/`` to `array`/`` for status `200`
  - removed the required property `collection/contents/items/track` from the response with the `200` status
  - removed the required property `collection/contents/items/track_id` from the response with the `200` status
- **2026-07-29** `ccf0de34be2c` — 1 breaking, 2 info
  - the `collection/contents/items/additionalProperties/` response's property type/format changed from `array`/`` to `object`/`` for status `200`
  - added the required property `collection/contents/items/track` to the response with the `200` status
  - added the required property `collection/contents/items/track_id` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/ampache/apis/ampache-rest-api/changes/collections/:collection_id/items/get.md)

---

[API](https://skmtc.dev/ampache/apis/ampache-rest-api.md) · [All operations](https://skmtc.dev/ampache/apis/ampache-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ampache/ampache-rest-api/revisions/42d304fb6867/schema)
