---
title: "List all collections"
method: GET
path: "/public/v1/collections"
tags: ["Collections - Management"]
---

# List all collections

`GET /public/v1/collections`

Retrieve all active collections accessible to the authenticated user with pagination support.

This endpoint returns collections that the user has read access to, including:
- User-owned collections (`scope: User`)
- Customer collections (`scope: Customer`) - organization-wide collections accessible to the user
- Team-shared collections (via collection roles)

**Note**:
- Only active (non-deactivated) collections are returned
- Featured collections (`scope: Featured`) are excluded from this endpoint
- Inactive (deactivated) collections are automatically filtered out

**Response:**
Returns a paginated list of collection objects. Each collection includes basic information such as id, uuid, scope, type, name, count, lanes, tiersEnabled, and optional parentId and children fields. See the `PublicCollectionDTO` schema for complete field definitions.

**Note**: Fields with null values (`parentId`, `updatedAt`) are omitted from the JSON response. This is standard JSON serialization behavior. In the list endpoint, `children` arrays are typically empty - use `GET /public/v1/collections/{collectionId}` to retrieve a collection with its full children tree populated.

        **Pagination:**
        - Results are paginated for efficient data retrieval
        - Use query parameters to control pagination:
  - `page`: Page number (0-indexed, default: 0)
  - `size`: Number of items per page (default: 500)
        - Results are sorted alphabetically by collection name
        - Only active collections are included in pagination (inactive/deactivated collections are filtered out)

**Access Control:**
- Collections are filtered to include only those accessible to you:
  - Collections owned by you (`scope: User`)
  - Customer collections accessible to your organization (`scope: Customer`)
  - Collections where you have been granted access (via collection roles)
- Featured collections are excluded from this endpoint
- Inactive (deactivated) collections are automatically excluded

**Required Permission**: `ACCESS_COLLECTION`

## Query parameters

- `page` integer
- `size` integer
- `sort` string[]

## Response `200`

200 OK - Successfully retrieved collections

- object
  - `content` PublicCollectionDTO[]
    - `id` integer, required
    - `uuid` string, uuid, required
    - `scope` 'User' | 'Customer' | 'Featured', required
    - `type` 'Default' | 'Commodity' | 'Ariba', required
    - `name` string, required
    - `count` integer, nullable
    - `lanes` boolean, required
    - `tiersEnabled` boolean, required
    - `parentId` integer, nullable
    - `children` PublicCollectionDTO[], required
    - `updatedAt` string, date-time, nullable
  - `size` integer
  - `number` integer
  - `totalElements` integer
  - `totalPages` integer
  - `numberOfElements` integer
  - `first` boolean
  - `last` boolean
  - `empty` boolean

## Other responses

- `403` — 403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.
- `429` — 429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.
- `500` — 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.

---

[API](https://skmtc.net/prewave/apis/public-prewave-api.md) · [All operations](https://skmtc.net/prewave/apis/public-prewave-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prewave/public-prewave-api/revisions/466169815b78/schema)
