Discovery Endpoints

The DiscoverController provides endpoints for discovering tracks, albums, and artists based on specified criteria such as genres or connections between artists.

Controller Route: /api/discover

All routes within the DiscoverController are prefixed by /api/discover/.


Summary of Endpoints

Endpoint Method Description Authorization
/api/discover/tracks GET Discover tracks based on input ids. Admin, User
/api/discover/albums GET Discover albums based on input ids. Admin, User
/api/discover/artists GET Discover artists based on input ids. Admin, User
/api/discover/time GET Discover time-based tracks within a specified time window. Admin, User

Discover Tracks

This endpoint allows users to discover tracks based on provided track ids.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/discover/tracks?ids=track1,track2&orderByFavorites=true&count=10" \
             -H "Authorization: Bearer <User-JWT>"
        

Discover Albums

This endpoint allows users to discover albums based on album ids.

Details:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/discover/albums?ids=album1,album2&count=5&includeArtists=true" \
             -H "Authorization: Bearer <User-JWT>"
        

Discover Artists

This endpoint allows users to discover artists based on artist ids.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/discover/artists?ids=artist1,artist2&count=10&includeGenres=true" \
             -H "Authorization: Bearer <User-JWT>"
        

Discover Time-Based Tracks

This endpoint allows users to discover tracks that are similar to those played around a specified time.

Details:

Parameters:

Responses:

Example Request (using curl):

curl -X GET "https://your-melon-server.com/api/discover/time?time=2023-09-15T12:00:00&span=10&count=10&includeArtists=true" \
             -H "Authorization: Bearer <User-JWT>"