API REFERENCE
Get Catalog Songs
On this page
/api/catalogs/songsRetrieve songs within a specific catalog with pagination support. This endpoint joins catalog_songs with songs, song_artists, and accounts to provide comprehensive song information for a given catalog.
Authentication
x-api-key in header
bearerAuth bearer
Request
curl --request GET \
--url 'https://api.recoupable.dev/api/catalogs/songs?catalog_id=YOUR_CATALOG_ID' \
--header 'x-api-key: YOUR_API_KEY'Replace the YOUR_ placeholders with your values. Required query parameters are included; optional parameters are listed below.
Parameters
Query parameters
catalog_idstringrequiredThe unique identifier of the catalog to query songs for
artistNamestringOptional. Filters songs to only include those with matching artist name
pageintegerPage number for pagination (default: 1)
Default: 1
limitintegerNumber of songs per page (default: 20, max: 100)
Default: 20
Responses
200Catalog songs retrieved successfully+
application/json
statusstring · enumStatus of the request
Values: "success", "error"
songsarray<CatalogSong>Array of song objects with artist information
Item properties for songs
catalog_idstringCatalog ID this song entry is associated with
format: uuid
isrcstringInternational Standard Recording Code (primary key)
namestringName of the song
albumstringName of the album the song belongs to
lyricsstringFull lyrics of the song
updated_atstringISO timestamp of when the song data was last updated
format: date-time
artistsarray<SongArtist>Array of artist objects associated with this song
Item properties for artists
idstringUnique identifier for the artist account
format: uuid
namestringnullableName of the artist (can be null)
timestampintegernullableTimestamp associated with the artist account (can be null)
paginationobjectPagination metadata for the response
Properties for pagination
total_countintegerTotal number of songs in the catalog
pageintegerCurrent page number
limitintegerNumber of songs per page
total_pagesintegerTotal number of pages available
errorstringError message (only present if status is 'error')
400Bad request - missing or invalid catalog_id+
application/json
statusstring · enumStatus of the request
Values: "error"
errorstringError message describing what went wrong
401Unauthorized - missing or invalid credentials+
application/json
statusstring · enumStatus of the request
Values: "error"
errorstringError message describing what went wrong
403Forbidden - the catalog does not belong to the authenticated account+
application/json
statusstring · enumStatus of the request
Values: "error"
errorstringError message describing what went wrong
404Catalog not found or no songs in catalog+
application/json
statusstring · enumStatus of the request
Values: "error"
errorstringError message describing what went wrong
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download releases.jsonView operation source
{
"security": [
{
"apiKeyAuth": []
},
{
"bearerAuth": []
}
],
"description": "Retrieve songs within a specific catalog with pagination support. This endpoint joins catalog_songs with songs, song_artists, and accounts to provide comprehensive song information for a given catalog.",
"parameters": [
{
"name": "catalog_id",
"in": "query",
"description": "The unique identifier of the catalog to query songs for",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "artistName",
"in": "query",
"description": "Optional. Filters songs to only include those with matching artist name",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page",
"in": "query",
"description": "Page number for pagination (default: 1)",
"required": false,
"schema": {
"type": "integer",
"default": 1
}
},
{
"name": "limit",
"in": "query",
"description": "Number of songs per page (default: 20, max: 100)",
"required": false,
"schema": {
"type": "integer",
"default": 20,
"maximum": 100
}
}
],
"responses": {
"200": {
"description": "Catalog songs retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogSongsResponse"
}
}
}
},
"400": {
"description": "Bad request - missing or invalid catalog_id",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogSongsErrorResponse"
}
}
}
},
"401": {
"description": "Unauthorized - missing or invalid credentials",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogSongsErrorResponse"
}
}
}
},
"403": {
"description": "Forbidden - the catalog does not belong to the authenticated account",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogSongsErrorResponse"
}
}
}
},
"404": {
"description": "Catalog not found or no songs in catalog",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogSongsErrorResponse"
}
}
}
}
}
}