Collections Controller Documentation

The CollectionsController provides APIs for managing collections of tracks, including creating, updating, deleting, and retrieving collections. Collections allow users to create auto-generated playlists using filters based on metadata. It also supports setting permissions for who can view and edit a collection. For more info on Collections see the Playlist Guide.

For more details on managing collections, refer to the Melon Collections Guide.

Controller Route: /api/collections

All routes within the CollectionsController are prefixed by /api/collections.


Summary of Endpoints

Endpoint Method Description Authorization
/api/collections/create POST Creates a new collection. Admin, User
/api/collections/add-filters POST Adds filters to an existing collection. Admin, User
/api/collections/remove-filters POST Removes filters from an existing collection. Admin, User
/api/collections/delete POST Deletes a collection. Admin, User
/api/collections/update POST Updates collection metadata and permissions. Admin, User
/api/collections/get GET Retrieves metadata about a specific collection. Admin, User, Pass
/api/collections/search GET Searches for collections based on filters and pagination. Admin, User, Pass
/api/collections/get-tracks GET Retrieves tracks from a specific collection. Admin, User, Pass
/api/collections/get-albums GET Retrieves albums from a specific collection. Admin, User, Pass
/api/collections/get-artists GET Retrieves artists from a specific collection. Admin, User, Pass

Filters

Collections take filters, which they use to find the tracks to add. They use the same filters as Search uses to find tracks. Filters look like this: property;comparison;value.


Create Collection

Creates a new collection based on provided filters.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X POST "https://your-melon-server.com/api/collections/create" \
             -H "Authorization: Bearer <Admin-or-User-JWT>" \
             -d "name=My Collection" \
             -d "description=My favorite tracks" \
             -d "andFilters=Artist:Eq:Madeon" \
             -d "orFilters=Genre;Eq;French House"
        

Add Filters to Collection

Adds filters to an existing collection.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X POST "https://your-melon-server.com/api/collections/add-filters" \
             -H "Authorization: Bearer <Admin-or-User-JWT>" \
             -d "id=66bc9aadab7ba419497e6a97" \
             -d "andFilters=Genre;Eq;Pop"
        

Remove Filters from Collection

Removes filters from an existing collection.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X POST "https://your-melon-server.com/api/collections/remove-filters" \
             -H "Authorization: Bearer <Admin-or-User-JWT>" \
             -d "id=66bc9aadab7ba419497e6a97" \
             -d "andFilters=Artist;Contains;John"
        

Delete Collection

Deletes a collection.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X POST "https://your-melon-server.com/api/collections/delete" \
             -H "Authorization: Bearer <Admin-or-User-JWT>" \
             -d "id=66bc9aadab7ba419497e6a97"
        

Update Collection Information

Updates collection metadata, permissions, and user access settings.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X POST "https://your-melon-server.com/api/collections/update" \
             -H "Authorization: Bearer <Admin-or-User-JWT>" \
             -d "id=66bc9aadab7ba419497e6a97" \
             -d "name=Updated Collection" \
             -d "publicViewing=true"
        

Get Collection Info

Retrieves metadata about a specific collection. Returns a ResponseCollection.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/collections/get?id=collection123" \
             -H "Authorization: Bearer <Admin-or-User-JWT>"
        

Search Collections

Searches for collections based on the name (or leave the name empty to list all collections).

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/collections/search?page=0&count=10&name=rock" \
             -H "Authorization: Bearer <Admin-or-User-JWT>"
        

Get Collection Tracks

Retrieves tracks from a specific collection, by page.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/collections/get-tracks?id=collection123&page=0&count=50" \
             -H "Authorization: Bearer <Admin-or-User-JWT>"
        

Get Collection Albums

Retrieves albums from a specific collection, by page. This returns the a list of albums, but does not return which tracks from each album are there.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/collections/get-albums?id=collection123&page=0&count=50" \
             -H "Authorization: Bearer <Admin-or-User-JWT>"
        

Get Collection Artists

Retrieves artists from a specific collection, by page. This returns the a list of artists, but does not return which tracks from each album are there.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/collections/get-artists?id=collection123&page=0&count=50" \
             -H "Authorization: Bearer <Admin-or-User-JWT>"