curl https://api.60db.ai/songs?limit=20&offset=0&sort=newest \
-H "Authorization: Bearer your-api-key"
const list = await client.music.list({ limit: 20, offset: 0 });
console.log('Songs:', list.data.songs);
console.log('Has more:', list.data.has_more);
list_result = client.music.list(limit=20, offset=0)
print('Songs:', list_result['data']['songs'])
print('Has more:', list_result['data']['has_more'])
{
"success": true,
"data": {
"songs": [
{
"id": "song-550e8400",
"batch_id": "batch-001",
"variant_index": 0,
"status": "succeeded",
"progress": null,
"mode": "simple",
"title": "Jazzy Lo-Fi Beat",
"prompt": "upbeat lo-fi hip hop with jazzy chords",
"tags": null,
"instrumental": false,
"vocal_gender": null,
"voice_id": null,
"duration_seconds": 185,
"audio_url": "https://cdn.60db.ai/songs/song-550e8400.mp3?expires=...",
"liked": true,
"played": false,
"error_message": null,
"created_at": "2026-09-24T10:30:00Z",
"completed_at": "2026-09-24T10:32:15Z"
}
],
"total": 42,
"limit": 20,
"offset": 0,
"has_more": true
}
}
Music
List Songs
List songs in your workspace with optional filtering and search
GET
/
songs
curl https://api.60db.ai/songs?limit=20&offset=0&sort=newest \
-H "Authorization: Bearer your-api-key"
const list = await client.music.list({ limit: 20, offset: 0 });
console.log('Songs:', list.data.songs);
console.log('Has more:', list.data.has_more);
list_result = client.music.list(limit=20, offset=0)
print('Songs:', list_result['data']['songs'])
print('Has more:', list_result['data']['has_more'])
{
"success": true,
"data": {
"songs": [
{
"id": "song-550e8400",
"batch_id": "batch-001",
"variant_index": 0,
"status": "succeeded",
"progress": null,
"mode": "simple",
"title": "Jazzy Lo-Fi Beat",
"prompt": "upbeat lo-fi hip hop with jazzy chords",
"tags": null,
"instrumental": false,
"vocal_gender": null,
"voice_id": null,
"duration_seconds": 185,
"audio_url": "https://cdn.60db.ai/songs/song-550e8400.mp3?expires=...",
"liked": true,
"played": false,
"error_message": null,
"created_at": "2026-09-24T10:30:00Z",
"completed_at": "2026-09-24T10:32:15Z"
}
],
"total": 42,
"limit": 20,
"offset": 0,
"has_more": true
}
}
Retrieve a paginated list of songs in your workspace, sorted by creation date (newest first by default).
Request
Headers
string
required
Bearer token with your API key
Query Parameters
integer
default:"20"
1–50. Items per page.
integer
default:"0"
0-based offset for pagination.
string
Search over title, prompt, and tags.
string
Filter:
generating, ready, or failed.string
Filter:
vocal or instrumental.string
Filter:
true to show only liked songs.string
default:"newest"
Sort order:
newest or oldest.Response
boolean
True on success
object
Example
curl https://api.60db.ai/songs?limit=20&offset=0&sort=newest \
-H "Authorization: Bearer your-api-key"
const list = await client.music.list({ limit: 20, offset: 0 });
console.log('Songs:', list.data.songs);
console.log('Has more:', list.data.has_more);
list_result = client.music.list(limit=20, offset=0)
print('Songs:', list_result['data']['songs'])
print('Has more:', list_result['data']['has_more'])
{
"success": true,
"data": {
"songs": [
{
"id": "song-550e8400",
"batch_id": "batch-001",
"variant_index": 0,
"status": "succeeded",
"progress": null,
"mode": "simple",
"title": "Jazzy Lo-Fi Beat",
"prompt": "upbeat lo-fi hip hop with jazzy chords",
"tags": null,
"instrumental": false,
"vocal_gender": null,
"voice_id": null,
"duration_seconds": 185,
"audio_url": "https://cdn.60db.ai/songs/song-550e8400.mp3?expires=...",
"liked": true,
"played": false,
"error_message": null,
"created_at": "2026-09-24T10:30:00Z",
"completed_at": "2026-09-24T10:32:15Z"
}
],
"total": 42,
"limit": 20,
"offset": 0,
"has_more": true
}
}