TIDAL · Capability

TIDAL User Collections API — Folders and Save for Later

TIDAL User Collections API — Folders and Save for Later. 31 operations. Self-contained Naftiko capability covering one TIDAL business surface.

TIDAL User Collections API — Folders and Save for Later is a Naftiko capability published by TIDAL, one of 36 capabilities the APIs.io network indexes for this provider. It bundles 31 operations across the GET, POST, DELETE, and PATCH methods.

The capability includes 14 read-only operations and 17 state-changing operations. Lead operation: Get multiple userCollectionFolders. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include TIDAL, Music, userCollectionFolders, userCollectionSaveForLaters, and userCollections.

Run with Naftiko TIDALMusicuserCollectionFoldersuserCollectionSaveForLatersuserCollections

What You Can Do

GET
Getusercollectionfolders — Get multiple userCollectionFolders.
/v2/userCollectionFolders
POST
Postusercollectionfolders — Create single userCollectionFolder.
/v2/userCollectionFolders
DELETE
Deleteusercollectionfolders — Delete single userCollectionFolder.
/v2/userCollectionFolders/{id}
GET
Getusercollectionfolders — Get single userCollectionFolder.
/v2/userCollectionFolders/{id}
PATCH
Patchusercollectionfolders — Update single userCollectionFolder.
/v2/userCollectionFolders/{id}
DELETE
Deleteusercollectionfolders — Delete from items relationship ("to-many").
/v2/userCollectionFolders/{id}/relationships/items
GET
Getusercollectionfolders — Get items relationship ("to-many").
/v2/userCollectionFolders/{id}/relationships/items
POST
Postusercollectionfolders — Add to items relationship ("to-many").
/v2/userCollectionFolders/{id}/relationships/items
GET
Getusercollectionfolders — Get owners relationship ("to-many").
/v2/userCollectionFolders/{id}/relationships/owners
GET
Getusercollectionsaveforlaters — Get single userCollectionSaveForLater.
/v2/userCollectionSaveForLaters/{id}
DELETE
Deleteusercollectionsaveforlaters — Delete from items relationship ("to-many").
/v2/userCollectionSaveForLaters/{id}/relationships/items
GET
Getusercollectionsaveforlaters — Get items relationship ("to-many").
/v2/userCollectionSaveForLaters/{id}/relationships/items
POST
Postusercollectionsaveforlaters — Add to items relationship ("to-many").
/v2/userCollectionSaveForLaters/{id}/relationships/items
GET
Getusercollectionsaveforlaters — Get owners relationship ("to-many").
/v2/userCollectionSaveForLaters/{id}/relationships/owners
GET
Getusercollections — Get single userCollection.
/v2/userCollections/{id}
DELETE
Deleteusercollections — Delete from albums relationship ("to-many").
/v2/userCollections/{id}/relationships/albums
GET
Getusercollections — Get albums relationship ("to-many").
/v2/userCollections/{id}/relationships/albums
POST
Postusercollections — Add to albums relationship ("to-many").
/v2/userCollections/{id}/relationships/albums
DELETE
Deleteusercollections — Delete from artists relationship ("to-many").
/v2/userCollections/{id}/relationships/artists
GET
Getusercollections — Get artists relationship ("to-many").
/v2/userCollections/{id}/relationships/artists
POST
Postusercollections — Add to artists relationship ("to-many").
/v2/userCollections/{id}/relationships/artists
GET
Getusercollections — Get owners relationship ("to-many").
/v2/userCollections/{id}/relationships/owners
DELETE
Deleteusercollections — Delete from playlists relationship ("to-many").
/v2/userCollections/{id}/relationships/playlists
GET
Getusercollections — Get playlists relationship ("to-many").
/v2/userCollections/{id}/relationships/playlists
POST
Postusercollections — Add to playlists relationship ("to-many").
/v2/userCollections/{id}/relationships/playlists
DELETE
Deleteusercollections — Delete from tracks relationship ("to-many").
/v2/userCollections/{id}/relationships/tracks
GET
Getusercollections — Get tracks relationship ("to-many").
/v2/userCollections/{id}/relationships/tracks
POST
Postusercollections — Add to tracks relationship ("to-many").
/v2/userCollections/{id}/relationships/tracks
DELETE
Deleteusercollections — Delete from videos relationship ("to-many").
/v2/userCollections/{id}/relationships/videos
GET
Getusercollections — Get videos relationship ("to-many").
/v2/userCollections/{id}/relationships/videos
POST
Postusercollections — Add to videos relationship ("to-many").
/v2/userCollections/{id}/relationships/videos

MCP Tools

tidal-getusercollectionfolders

Get multiple userCollectionFolders.

read-only idempotent
tidal-postusercollectionfolders

Create single userCollectionFolder.

tidal-deleteusercollectionfolders

Delete single userCollectionFolder.

idempotent
tidal-getusercollectionfolders

Get single userCollectionFolder.

read-only idempotent
tidal-patchusercollectionfolders

Update single userCollectionFolder.

tidal-deleteusercollectionfolders

Delete from items relationship ("to-many").

idempotent
tidal-getusercollectionfolders

Get items relationship ("to-many").

read-only idempotent
tidal-postusercollectionfolders

Add to items relationship ("to-many").

tidal-getusercollectionfolders

Get owners relationship ("to-many").

read-only idempotent
tidal-getusercollectionsaveforlaters

Get single userCollectionSaveForLater.

read-only idempotent
tidal-deleteusercollectionsaveforlaters

Delete from items relationship ("to-many").

idempotent
tidal-getusercollectionsaveforlaters

Get items relationship ("to-many").

read-only idempotent
tidal-postusercollectionsaveforlaters

Add to items relationship ("to-many").

tidal-getusercollectionsaveforlaters

Get owners relationship ("to-many").

read-only idempotent
tidal-getusercollections

Get single userCollection.

read-only idempotent
tidal-deleteusercollections

Delete from albums relationship ("to-many").

idempotent
tidal-getusercollections

Get albums relationship ("to-many").

read-only idempotent
tidal-postusercollections

Add to albums relationship ("to-many").

tidal-deleteusercollections

Delete from artists relationship ("to-many").

idempotent
tidal-getusercollections

Get artists relationship ("to-many").

read-only idempotent
tidal-postusercollections

Add to artists relationship ("to-many").

tidal-getusercollections

Get owners relationship ("to-many").

read-only idempotent
tidal-deleteusercollections

Delete from playlists relationship ("to-many").

idempotent
tidal-getusercollections

Get playlists relationship ("to-many").

read-only idempotent
tidal-postusercollections

Add to playlists relationship ("to-many").

tidal-deleteusercollections

Delete from tracks relationship ("to-many").

idempotent
tidal-getusercollections

Get tracks relationship ("to-many").

read-only idempotent
tidal-postusercollections

Add to tracks relationship ("to-many").

tidal-deleteusercollections

Delete from videos relationship ("to-many").

idempotent
tidal-getusercollections

Get videos relationship ("to-many").

read-only idempotent
tidal-postusercollections

Add to videos relationship ("to-many").

Capability Spec

user-collections-folders.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: TIDAL User Collections API — Folders and Save for Later
  description: TIDAL User Collections API — Folders and Save for Later. 31 operations. Self-contained Naftiko capability covering
    one TIDAL business surface.
  tags:
  - TIDAL
  - Music
  - userCollectionFolders
  - userCollectionSaveForLaters
  - userCollections
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    TIDAL_ACCESS_TOKEN: TIDAL_ACCESS_TOKEN
capability:
  consumes:
  - type: http
    namespace: user-collections-folders
    baseUri: https://openapi.tidal.com
    description: TIDAL User Collections API — Folders and Save for Later business capability. Self-contained, no shared references.
    resources:
    - name: userCollectionFolders
      path: /userCollectionFolders
      operations:
      - name: getusercollectionfolders
        method: GET
        description: Get multiple userCollectionFolders.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: items,
            owners'
          required: false
        - name: filter[id]
          in: query
          type: array
          description: Folder Id (e.g. `CBMHXUOuJZgroV2kWpeVLL1I7xdgvF6ocDEGCXov8SZq3WVhrOcOq5pjnGawKX`)
          required: false
      - name: postusercollectionfolders
        method: POST
        description: Create single userCollectionFolder.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollectionFolders-id
      path: /userCollectionFolders/{id}
      operations:
      - name: deleteusercollectionfolders
        method: DELETE
        description: Delete single userCollectionFolder.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
      - name: getusercollectionfolders
        method: GET
        description: Get single userCollectionFolder.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: items,
            owners'
          required: false
      - name: patchusercollectionfolders
        method: PATCH
        description: Update single userCollectionFolder.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollectionFolders-id-relationships-items
      path: /userCollectionFolders/{id}/relationships/items
      operations:
      - name: deleteusercollectionfolders
        method: DELETE
        description: Delete from items relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
      - name: getusercollectionfolders
        method: GET
        description: Get items relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: sort
          in: query
          type: array
          description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: items'
          required: false
      - name: postusercollectionfolders
        method: POST
        description: Add to items relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollectionFolders-id-relationships-owners
      path: /userCollectionFolders/{id}/relationships/owners
      operations:
      - name: getusercollectionfolders
        method: GET
        description: Get owners relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Folder Id
          required: true
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: owners'
          required: false
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
    - name: userCollectionSaveForLaters-id
      path: /userCollectionSaveForLaters/{id}
      operations:
      - name: getusercollectionsaveforlaters
        method: GET
        description: Get single userCollectionSaveForLater.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection save for later id. Use `me` for the authenticated user's resource
          required: true
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: items,
            owners'
          required: false
    - name: userCollectionSaveForLaters-id-relationships-items
      path: /userCollectionSaveForLaters/{id}/relationships/items
      operations:
      - name: deleteusercollectionsaveforlaters
        method: DELETE
        description: Delete from items relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection save for later id. Use `me` for the authenticated user's resource
          required: true
      - name: getusercollectionsaveforlaters
        method: GET
        description: Get items relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection save for later id. Use `me` for the authenticated user's resource
          required: true
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: items'
          required: false
      - name: postusercollectionsaveforlaters
        method: POST
        description: Add to items relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection save for later id. Use `me` for the authenticated user's resource
          required: true
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollectionSaveForLaters-id-relationships-owners
      path: /userCollectionSaveForLaters/{id}/relationships/owners
      operations:
      - name: getusercollectionsaveforlaters
        method: GET
        description: Get owners relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection save for later id. Use `me` for the authenticated user's resource
          required: true
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: owners'
          required: false
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
    - name: userCollections-id
      path: /userCollections/{id}
      operations:
      - name: getusercollections
        method: GET
        description: Get single userCollection.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: locale
          in: query
          type: string
          description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: albums,
            artists, owners, playlists, tracks, videos'
          required: false
    - name: userCollections-id-relationships-albums
      path: /userCollections/{id}/relationships/albums
      operations:
      - name: deleteusercollections
        method: DELETE
        description: Delete from albums relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
      - name: getusercollections
        method: GET
        description: Get albums relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: sort
          in: query
          type: array
          description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
          required: false
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: locale
          in: query
          type: string
          description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: albums'
          required: false
      - name: postusercollections
        method: POST
        description: Add to albums relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollections-id-relationships-artists
      path: /userCollections/{id}/relationships/artists
      operations:
      - name: deleteusercollections
        method: DELETE
        description: Delete from artists relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
      - name: getusercollections
        method: GET
        description: Get artists relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: sort
          in: query
          type: array
          description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
          required: false
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: locale
          in: query
          type: string
          description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: artists'
          required: false
      - name: postusercollections
        method: POST
        description: Add to artists relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollections-id-relationships-owners
      path: /userCollections/{id}/relationships/owners
      operations:
      - name: getusercollections
        method: GET
        description: Get owners relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: owners'
          required: false
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
    - name: userCollections-id-relationships-playlists
      path: /userCollections/{id}/relationships/playlists
      operations:
      - name: deleteusercollections
        method: DELETE
        description: Delete from playlists relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
      - name: getusercollections
        method: GET
        description: Get playlists relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: collectionView
          in: query
          type: string
          description: ''
          required: false
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: sort
          in: query
          type: array
          description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: playlists'
          required: false
      - name: postusercollections
        method: POST
        description: Add to playlists relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollections-id-relationships-tracks
      path: /userCollections/{id}/relationships/tracks
      operations:
      - name: deleteusercollections
        method: DELETE
        description: Delete from tracks relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
      - name: getusercollections
        method: GET
        description: Get tracks relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: sort
          in: query
          type: array
          description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
          required: false
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: locale
          in: query
          type: string
          description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: tracks'
          required: false
      - name: postusercollections
        method: POST
        description: Add to tracks relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    - name: userCollections-id-relationships-videos
      path: /userCollections/{id}/relationships/videos
      operations:
      - name: deleteusercollections
        method: DELETE
        description: Delete from videos relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
      - name: getusercollections
        method: GET
        description: Get videos relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: page[cursor]
          in: query
          type: string
          description: Server-generated cursor value pointing a certain page of items. Optional, targets first page if not
            specified
          required: false
        - name: sort
          in: query
          type: array
          description: Values prefixed with "-" are sorted descending; values without it are sorted ascending.
          required: false
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: locale
          in: query
          type: string
          description: BCP 47 locale (e.g., en-US, nb-NO, pt-BR). Defaults to en-US if not provided or unsupported.
          required: false
        - name: include
          in: query
          type: array
          description: 'Allows the client to customize which related resources should be returned. Available options: videos'
          required: false
      - name: postusercollections
        method: POST
        description: Add to videos relationship ("to-many").
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: User collection id
          required: true
        - name: countryCode
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code
          required: false
        - name: body
          in: body
          type: object
          description: JSON:API document request body.
          required: true
    authentication:
      type: bearer
      value: '{{env.TIDAL_ACCESS_TOKEN}}'
      placement: header
      header: Authorization
      prefix: 'Bearer '
  exposes:
  - type: rest
    namespace: user-collections-folders-rest
    port: 8080
    description: REST adapter for TIDAL User Collections API — Folders and Save for Later. One Spectral-compliant resource
      per consumed operation, prefixed with /v2.
    resources:
    - path: /v2/userCollectionFolders
      name: userCollectionFolders
      description: REST surface for userCollectionFolders.
      operations:
      - method: GET
        name: getusercollectionfolders
        description: Get multiple userCollectionFolders.
        call: user-collections-folders.getusercollectionfolders
        with:
          include: rest.query.include
          filter[id]: rest.query.filter[id]
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postusercollectionfolders
        description: Create single userCollectionFolder.
        call: user-collections-folders.postusercollectionfolders
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollectionFolders/{id}
      name: userCollectionFolders-id
      description: REST surface for userCollectionFolders-id.
      operations:
      - method: DELETE
        name: deleteusercollectionfolders
        description: Delete single userCollectionFolder.
        call: user-collections-folders.deleteusercollectionfolders
        with:
          id: rest.path.id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getusercollectionfolders
        description: Get single userCollectionFolder.
        call: user-collections-folders.getusercollectionfolders
        with:
          id: rest.path.id
          include: rest.query.include
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: patchusercollectionfolders
        description: Update single userCollectionFolder.
        call: user-collections-folders.patchusercollectionfolders
        with:
          id: rest.path.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollectionFolders/{id}/relationships/items
      name: userCollectionFolders-id-relationships-items
      description: REST surface for userCollectionFolders-id-relationships-items.
      operations:
      - method: DELETE
        name: deleteusercollectionfolders
        description: Delete from items relationship ("to-many").
        call: user-collections-folders.deleteusercollectionfolders
        with:
          id: rest.path.id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getusercollectionfolders
        description: Get items relationship ("to-many").
        call: user-collections-folders.getusercollectionfolders
        with:
          id: rest.path.id
          page[cursor]: rest.query.page[cursor]
          sort: rest.query.sort
          include: rest.query.include
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postusercollectionfolders
        description: Add to items relationship ("to-many").
        call: user-collections-folders.postusercollectionfolders
        with:
          id: rest.path.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollectionFolders/{id}/relationships/owners
      name: userCollectionFolders-id-relationships-owners
      description: REST surface for userCollectionFolders-id-relationships-owners.
      operations:
      - method: GET
        name: getusercollectionfolders
        description: Get owners relationship ("to-many").
        call: user-collections-folders.getusercollectionfolders
        with:
          id: rest.path.id
          include: rest.query.include
          page[cursor]: rest.query.page[cursor]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollectionSaveForLaters/{id}
      name: userCollectionSaveForLaters-id
      description: REST surface for userCollectionSaveForLaters-id.
      operations:
      - method: GET
        name: getusercollectionsaveforlaters
        description: Get single userCollectionSaveForLater.
        call: user-collections-folders.getusercollectionsaveforlaters
        with:
          id: rest.path.id
          include: rest.query.include
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollectionSaveForLaters/{id}/relationships/items
      name: userCollectionSaveForLaters-id-relationships-items
      description: REST surface for userCollectionSaveForLaters-id-relationships-items.
      operations:
      - method: DELETE
        name: deleteusercollectionsaveforlaters
        description: Delete from items relationship ("to-many").
        call: user-collections-folders.deleteusercollectionsaveforlaters
        with:
          id: rest.path.id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getusercollectionsaveforlaters
        description: Get items relationship ("to-many").
        call: user-collections-folders.getusercollectionsaveforlaters
        with:
          id: rest.path.id
          page[cursor]: rest.query.page[cursor]
          countryCode: rest.query.countryCode
          include: rest.query.include
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postusercollectionsaveforlaters
        description: Add to items relationship ("to-many").
        call: user-collections-folders.postusercollectionsaveforlaters
        with:
          id: rest.path.id
          countryCode: rest.query.countryCode
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollectionSaveForLaters/{id}/relationships/owners
      name: userCollectionSaveForLaters-id-relationships-owners
      description: REST surface for userCollectionSaveForLaters-id-relationships-owners.
      operations:
      - method: GET
        name: getusercollectionsaveforlaters
        description: Get owners relationship ("to-many").
        call: user-collections-folders.getusercollectionsaveforlaters
        with:
          id: rest.path.id
          include: rest.query.include
          page[cursor]: rest.query.page[cursor]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/userCollections/{id}
      name: userCollections-id
      description: REST surface for userCollections-id.
      operations:
      - method: GET
        name: getusercollections
        description: Get single userCollection.
       

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tidal/refs/heads/main/capabilities/user-collections-folders.yaml