### GET /libraries/{id} Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Get a specific library with its tracks ```markdown ### Parameters - **id** (string, path, required): Library ID - **page** (integer, query, optional): Page number for pagination - **limit** (integer, query, optional): Number of tracks per page ### Responses #### 200 - Library found **LibraryDetailsResponse** - **library** (object) - **id** (string) (example: "lib-123") - **name** (string) (example: "My Favorites") - **description** (string) (example: "My favorite songs collection") - **isPublic** (boolean) (example: false) - **trackCount** (integer) (example: 25) - **createdAt** (string (date-time)) - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **pagination** (object) - **page** (integer) (example: 1) - **limit** (integer) (example: 20) - **total** (integer) (example: 100) - **hasMore** (boolean) (example: true) - **loaded** (integer) (example: 20) #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 404 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/libraries/{id}?page=1&limit=20" ``` ``` -------------------------------- ### GET /libraries Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve all libraries for the current user ```markdown ### Responses #### 200 - User libraries **LibrariesResponse** - **libraries** (array (Library)) Array items: - **id** (string) (example: "lib-123") - **name** (string) (example: "My Favorites") - **description** (string) (example: "My favorite songs collection") - **isPublic** (boolean) (example: false) - **trackCount** (integer) (example: 25) - **createdAt** (string (date-time)) #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/libraries" ``` ``` -------------------------------- ### GET /album/{id} Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Get album details from database ```markdown ### Parameters - **id** (string, path, required): Album ID ### Responses #### 200 - Album found **AlbumResponse** - **album** (object) - **id** (string) (example: "54321") - **title** (string) (example: "Abbey Road") - **artist** (string) (example: "The Beatles") - **releaseDate** (string) (example: "1969-09-26") - **genre** (string) (example: "Rock") - **cover** (string (uri)) (example: "https://example.com/cover.jpg") - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **trackCount** (integer) (example: 17) - **duration** (integer): Total duration in seconds (example: 2873) - **audioQuality** (object) - **label** (string) (example: "Apple Records") - **upc** (string) (example: "094638241621") - **url** (string (uri)) - **streamable** (boolean) - **downloadable** (boolean) - **mediaCount** (integer) (example: 1) - **maximumChannelCount** (integer) (example: 2) - **parental_warning** (boolean) - **popularity** (integer) (example: 85) #### 404 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/album/{id}" ``` ``` -------------------------------- ### GET /auth/me Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Get information about the currently authenticated user ```markdown ### Responses #### 200 - User information retrieved **CurrentUserResponse** - **user** (object) - **id** (integer) (example: 1) - **username** (string) (example: "johndoe") - **email** (string (email)) (example: "john@example.com") - **created_at** (string (date-time)) #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/auth/me" ``` ``` -------------------------------- ### GET /album Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve detailed information about an album ```markdown ### Parameters - **albumId** (string, query, required): Album ID (example: "12345") ### Responses #### 200 - Album information **AlbumResponse** - **album** (object) - **id** (string) (example: "54321") - **title** (string) (example: "Abbey Road") - **artist** (string) (example: "The Beatles") - **releaseDate** (string) (example: "1969-09-26") - **genre** (string) (example: "Rock") - **cover** (string (uri)) (example: "https://example.com/cover.jpg") - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **trackCount** (integer) (example: 17) - **duration** (integer): Total duration in seconds (example: 2873) - **audioQuality** (object) - **label** (string) (example: "Apple Records") - **upc** (string) (example: "094638241621") - **url** (string (uri)) - **streamable** (boolean) - **downloadable** (boolean) - **mediaCount** (integer) (example: 1) - **maximumChannelCount** (integer) (example: 2) - **parental_warning** (boolean) - **popularity** (integer) (example: 85) #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/album?albumId=12345" ``` ``` -------------------------------- ### GET /queue Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve user's playback queue ```markdown ### Responses #### 200 - User queue **QueueResponse** - **queue** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/queue" ``` ``` -------------------------------- ### GET /download Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve album information for download ```markdown ### Parameters - **albumId** (string, query, required): Album ID - **quality** (string, query, optional): Audio quality (example: "27") ### Responses #### 200 - Album download information **AlbumResponse** - **album** (object) - **id** (string) (example: "54321") - **title** (string) (example: "Abbey Road") - **artist** (string) (example: "The Beatles") - **releaseDate** (string) (example: "1969-09-26") - **genre** (string) (example: "Rock") - **cover** (string (uri)) (example: "https://example.com/cover.jpg") - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **trackCount** (integer) (example: 17) - **duration** (integer): Total duration in seconds (example: 2873) - **audioQuality** (object) - **label** (string) (example: "Apple Records") - **upc** (string) (example: "094638241621") - **url** (string (uri)) - **streamable** (boolean) - **downloadable** (boolean) - **mediaCount** (integer) (example: 1) - **maximumChannelCount** (integer) (example: 2) - **parental_warning** (boolean) - **popularity** (integer) (example: 85) #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/download?albumId=string&quality=27" ``` ``` -------------------------------- ### GET /lyrics Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve lyrics for a song ```markdown ### Parameters - **artist** (string, query, required): Artist name (example: "The Beatles") - **title** (string, query, required): Song title (example: "Hey Jude") ### Responses #### 200 - Lyrics found **LyricsResponse** - **lyrics** (string) (example: "Hey Jude, don't make it bad...") - **unsynced** (boolean): Whether lyrics are time-synced #### 404 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/lyrics?artist=The Beatles&title=Hey Jude" ``` ``` -------------------------------- ### GET /discography Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve all albums by an artist ```markdown ### Parameters - **artistId** (string, query, required): Artist ID (example: "67890") ### Responses #### 200 - Artist discography **DiscographyResponse** - **artist** (object) - **id** (string) (example: "67890") - **name** (string) (example: "The Beatles") - **albumsCount** (integer) (example: 13) - **albumsAsPrimaryArtistCount** (integer) (example: 13) - **albumsAsPrimaryComposerCount** (integer) (example: 0) - **slug** (string) (example: "the-beatles") - **image** (string (uri)) (example: "https://example.com/artist.jpg") - **biography** (string) - **similarArtistIds** (array (string)) - **information** (string) - **albums** (array (Album)) Array items: - **id** (string) (example: "54321") - **title** (string) (example: "Abbey Road") - **artist** (string) (example: "The Beatles") - **releaseDate** (string) (example: "1969-09-26") - **genre** (string) (example: "Rock") - **cover** (string (uri)) (example: "https://example.com/cover.jpg") - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **trackCount** (integer) (example: 17) - **duration** (integer): Total duration in seconds (example: 2873) - **audioQuality** (object) - **label** (string) (example: "Apple Records") - **upc** (string) (example: "094638241621") - **url** (string (uri)) - **streamable** (boolean) - **downloadable** (boolean) - **mediaCount** (integer) (example: 1) - **maximumChannelCount** (integer) (example: 2) - **parental_warning** (boolean) - **popularity** (integer) (example: 85) #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/discography?artistId=67890" ``` ``` -------------------------------- ### GET /stream Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Get streaming URL for a track ```markdown ### Parameters - **trackId** (string, query, required): Track ID - **quality** (string, query, optional): Audio quality ### Responses #### 200 - Stream URL **StreamResponse** - **streamUrl** (string (uri)) #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/stream?trackId=string&quality=27" ``` ``` -------------------------------- ### GET /favorites Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Retrieve user's favorite tracks ```markdown ### Responses #### 200 - User favorites **FavoritesResponse** - **favorites** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/favorites" ``` ``` -------------------------------- ### POST /libraries Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Create a new library ```markdown ### Request Body **Content-Type:** application/json - **name** (string) (required) (example: "My Playlist") - **description** (string) (example: "My favorite songs") - **isPublic** (boolean) ### Responses #### 201 - Library created **CreateLibraryResponse** - **message** (string) - **library** (object) - **id** (string) (example: "lib-123") - **name** (string) (example: "My Favorites") - **description** (string) (example: "My favorite songs collection") - **isPublic** (boolean) (example: false) - **trackCount** (integer) (example: 25) - **createdAt** (string (date-time)) #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/libraries" \ -H "Content-Type: application/json" \ -d '{ "name": "My Playlist", "description": "My favorite songs", "isPublic": "false" }' ``` ``` -------------------------------- ### POST /auth/login Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Authenticate user with email and password ```markdown ### Request Body **Content-Type:** application/json - **email** (string (email)) (required) (example: "user@example.com") - **password** (string (password)) (required) (example: "password123") ### Responses #### 200 - Login successful **LoginResponse** - **message** (string) (example: "Login successful") - **user** (object) - **id** (integer) (example: 1) - **username** (string) (example: "johndoe") - **email** (string (email)) (example: "john@example.com") - **created_at** (string (date-time)) #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/auth/login" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "password": "password123" }' ``` ``` -------------------------------- ### POST /auth/register Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Register a new user account ```markdown ### Request Body **Content-Type:** application/json - **username** (string) (required) (example: "johndoe") - **email** (string (email)) (required) (example: "john@example.com") - **password** (string (password)) (required) (example: "password123") - **inviteCode** (string): Required if invite system is enabled (example: "INVITE123") ### Responses #### 201 - User created successfully **RegisterResponse** - **message** (string) (example: "User created successfully") #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/auth/register" \ -H "Content-Type: application/json" \ -d '{ "username": "johndoe", "email": "john@example.com", "password": "password123", "inviteCode": "INVITE123" }' ``` ``` -------------------------------- ### POST /queue Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Save user's playback queue ```markdown ### Request Body **Content-Type:** application/json - **queue** (array (Track)) (required) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) ### Responses #### 200 - Queue saved **MessageResponse** - **message** (string) (example: "Operation successful") #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/queue" \ -H "Content-Type: application/json" \ -d '{ "queue": [ "value" ] }' ``` ``` -------------------------------- ### Schema: CreateLibraryResponse Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Schema definition for CreateLibraryResponse ```markdown ## Schema: CreateLibraryResponse Schema definition for CreateLibraryResponse **Type:** object - **message** (string) - **library** (object) - **id** (string) (example: "lib-123") - **name** (string) (example: "My Favorites") - **description** (string) (example: "My favorite songs collection") - **isPublic** (boolean) (example: false) - **trackCount** (integer) (example: 25) - **createdAt** (string (date-time)) ``` -------------------------------- ### Schema: CreateLibraryRequest Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Schema definition for CreateLibraryRequest ```markdown ## Schema: CreateLibraryRequest Schema definition for CreateLibraryRequest **Type:** object - **name** (string) (required) (example: "My Playlist") - **description** (string) (example: "My favorite songs") - **isPublic** (boolean) ``` -------------------------------- ### GET /search Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Search for tracks, albums, or artists. Returns separate arrays for each content type. Depending on the 'type' parameter, some arrays may be empty. ```markdown ### Parameters - **q** (string, query, required): Search query (example: "The Beatles") - **type** (string (track|album|artist), query, optional): Type of content to search for - **limit** (integer, query, optional): Number of results to return ### Responses #### 200 - Search results **SearchResponse** - **albums** (array (Album)): Array of albums found Array items: - **id** (string) (example: "54321") - **title** (string) (example: "Abbey Road") - **artist** (string) (example: "The Beatles") - **releaseDate** (string) (example: "1969-09-26") - **genre** (string) (example: "Rock") - **cover** (string (uri)) (example: "https://example.com/cover.jpg") - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **trackCount** (integer) (example: 17) - **duration** (integer): Total duration in seconds (example: 2873) - **audioQuality** (object) - **label** (string) (example: "Apple Records") - **upc** (string) (example: "094638241621") - **url** (string (uri)) - **streamable** (boolean) - **downloadable** (boolean) - **mediaCount** (integer) (example: 1) - **maximumChannelCount** (integer) (example: 2) - **parental_warning** (boolean) - **popularity** (integer) (example: 85) - **tracks** (array (Track)): Array of tracks found Array items: - **artists** (array (Artist)): Array of artists found Array items: - **id** (string) (example: "67890") - **name** (string) (example: "The Beatles") - **albumsCount** (integer) (example: 13) - **albumsAsPrimaryArtistCount** (integer) (example: 13) - **albumsAsPrimaryComposerCount** (integer) (example: 0) - **slug** (string) (example: "the-beatles") - **image** (string (uri)) (example: "https://example.com/artist.jpg") - **biography** (string) - **similarArtistIds** (array (string)) - **information** (string) - **pagination** (object) - **page** (integer) (example: 1) - **limit** (integer) (example: 20) - **total** (integer) (example: 100) - **hasMore** (boolean) (example: true) - **loaded** (integer) (example: 20) - **query** (string): Original search query (example: "The Beatles") - **searchType** (string (track|album|artist|all)): Type of search performed ("track"|"album"|"artist"|"all") #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X GET "https://dabmusic.xyz/api/search?q=The Beatles&type=track&limit=20" ``` ``` -------------------------------- ### Schema: QueueResponse Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Schema definition for QueueResponse ```markdown ## Schema: QueueResponse Schema definition for QueueResponse **Type:** object - **queue** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) ``` -------------------------------- ### POST /libraries/{id}/tracks Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Add a track to a library ```markdown ### Parameters - **id** (string, path, required): Library ID ### Request Body **Content-Type:** application/json - **track** (object) (required) - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) ### Responses #### 200 - Track already exists in library **MessageResponse** - **message** (string) (example: "Operation successful") #### 201 - Track added to library **MessageResponse** - **message** (string) (example: "Operation successful") #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 401 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 404 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/libraries/{id}/tracks" \ -H "Content-Type: application/json" \ -d '{ "track": "value" }' ``` ``` -------------------------------- ### POST /auth/forgot-password Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Send password reset email to user ```markdown ### Request Body **Content-Type:** application/json - **email** (string (email)) (required) (example: "user@example.com") ### Responses #### 200 - Password reset email sent **MessageResponse** - **message** (string) (example: "Operation successful") #### 400 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/auth/forgot-password" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com" }' ``` ``` -------------------------------- ### Schema: LoginResponse Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Schema definition for LoginResponse ```markdown ## Schema: LoginResponse Schema definition for LoginResponse **Type:** object - **message** (string) (example: "Login successful") - **user** (object) - **id** (integer) (example: 1) - **username** (string) (example: "johndoe") - **email** (string (email)) (example: "john@example.com") - **created_at** (string (date-time)) ``` -------------------------------- ### Schema: Album Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Schema definition for Album ```markdown ## Schema: Album Schema definition for Album **Type:** object - **id** (string) (example: "54321") - **title** (string) (example: "Abbey Road") - **artist** (string) (example: "The Beatles") - **releaseDate** (string) (example: "1969-09-26") - **genre** (string) (example: "Rock") - **cover** (string (uri)) (example: "https://example.com/cover.jpg") - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **trackCount** (integer) (example: 17) - **duration** (integer): Total duration in seconds (example: 2873) - **audioQuality** (object) - **label** (string) (example: "Apple Records") - **upc** (string) (example: "094638241621") - **url** (string (uri)) - **streamable** (boolean) - **downloadable** (boolean) - **mediaCount** (integer) (example: 1) - **maximumChannelCount** (integer) (example: 2) - **parental_warning** (boolean) - **popularity** (integer) (example: 85) ``` -------------------------------- ### POST /auth/logout Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Logout current user and clear session ```markdown ### Responses #### 200 - Logged out successfully **LogoutResponse** - **message** (string) (example: "Logged out successfully") #### 500 - response **ResponseError** - **error** (string) (example: "Error message") - **message** (string) (example: "Detailed error message") ### Example Usage ```bash curl -X POST "https://dabmusic.xyz/api/auth/logout" ``` ``` -------------------------------- ### Schema: LibraryDetailsResponse Source: https://raw.githubusercontent.com/sixnine-dotdev/dab-api-docs/main/openapi.yaml Schema definition for LibraryDetailsResponse ```markdown ## Schema: LibraryDetailsResponse Schema definition for LibraryDetailsResponse **Type:** object - **library** (object) - **id** (string) (example: "lib-123") - **name** (string) (example: "My Favorites") - **description** (string) (example: "My favorite songs collection") - **isPublic** (boolean) (example: false) - **trackCount** (integer) (example: 25) - **createdAt** (string (date-time)) - **tracks** (array (Track)) Array items: - **id** (string) - **title** (string) (example: "Hey Jude") - **artist** (string) (example: "The Beatles") - **artistId** (integer) (example: 67890) - **albumTitle** (string) (example: "The Beatles 1967-1970") - **albumCover** (string (uri)) (example: "https://example.com/cover.jpg") - **albumId** (string) (example: "54321") - **releaseDate** (string) (example: "1968-08-26") - **genre** (string) (example: "Rock") - **duration** (integer): Duration in seconds (example: 431) - **audioQuality** (object) - **maximumBitDepth** (integer) (example: 16) - **maximumSamplingRate** (number) (example: 44.1) - **isHiRes** (boolean) (example: false) - **pagination** (object) - **page** (integer) (example: 1) - **limit** (integer) (example: 20) - **total** (integer) (example: 100) - **hasMore** (boolean) (example: true) - **loaded** (integer) (example: 20) ```