Base URL
All API requests are made to:/api for all endpoints.
Authentication
Most endpoints require JWT authentication. Include your access token in theAuthorization header:
Response format
All successful responses follow this structure:Error responses
Error responses include an HTTP status code and error details:200- Success201- Created204- No Content400- Bad Request401- Unauthorized403- Forbidden404- Not Found409- Conflict
Available endpoints
Authentication
POST /api/auth/signup- Create a new user accountPOST /api/auth/login- Login and obtain access token
Users
DELETE /api/users/:id- Delete a user (Admin only)
Artists
POST /api/artists- Create a new artistGET /api/artists- List all artistsGET /api/artists/:id- Get artist by IDPATCH /api/artists/:id- Update an artistDELETE /api/artists/:id- Delete an artist
Labels
POST /api/labels- Create a new labelGET /api/labels- List all labelsGET /api/labels/:id- Get label by IDPATCH /api/labels/:id- Update a labelDELETE /api/labels/:id- Delete a label
Releases
POST /api/releases- Create a new releaseGET /api/releases- List all releasesGET /api/releases/:id- Get release by ID
Lyrics
POST /api/lyrics- Create lyrics for a trackGET /api/lyrics- List all lyricsGET /api/lyrics/:id- Get lyrics by ID
Roles
POST /api/roles- Create a new roleGET /api/roles- List all rolesGET /api/roles/:id- Get role by ID
Pagination
List endpoints support pagination with query parameters:size- Number of items per page (default: 10)page- Page number, zero-indexed (default: 0)
Rate limiting
The API implements rate limiting to ensure fair usage. If you exceed the rate limit, you’ll receive a429 Too Many Requests response.