curl https://api.60db.ai/songs/song-550e8400 \
-H "Authorization: Bearer your-api-key"
const song = await client.music.get('song-550e8400');
console.log('Status:', song.data.status);
if (song.data.status === 'succeeded') {
console.log('Ready! Duration:', song.data.duration_seconds);
}
song = client.music.get('song-550e8400')
print('Status:', song['data']['status'])
if song['data']['status'] == 'succeeded':
print('Ready! Duration:', song['data']['duration_seconds'])
{
"success": true,
"data": {
"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",
"lyrics": "[Verse]\nChasing my dreams through the city lights\nMelodies floating in the night...",
"lyrics_prompt": "upbeat lo-fi hip hop with jazzy chords",
"lyrics_generated": true,
"tags": null,
"instrumental": false,
"vocal_gender": null,
"voice_id": null,
"used_voice_id": "vocal-default-male",
"negative_tags": null,
"target_duration": null,
"duration_seconds": 185,
"sample_rate": 44100,
"audio_url": "https://cdn.60db.ai/songs/song-550e8400.mp3?expires=2026-09-24T11:30:00Z",
"seed": "",
"seed_requested": "",
"credits_charged": 0,
"liked": false,
"played": false,
"error_message": null,
"created_at": "2026-09-24T10:30:00Z",
"completed_at": "2026-09-24T10:32:15Z"
}
}
Music
Get Song
Retrieve full song details including lyrics and poll for completion
GET
/
songs
/
:id
curl https://api.60db.ai/songs/song-550e8400 \
-H "Authorization: Bearer your-api-key"
const song = await client.music.get('song-550e8400');
console.log('Status:', song.data.status);
if (song.data.status === 'succeeded') {
console.log('Ready! Duration:', song.data.duration_seconds);
}
song = client.music.get('song-550e8400')
print('Status:', song['data']['status'])
if song['data']['status'] == 'succeeded':
print('Ready! Duration:', song['data']['duration_seconds'])
{
"success": true,
"data": {
"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",
"lyrics": "[Verse]\nChasing my dreams through the city lights\nMelodies floating in the night...",
"lyrics_prompt": "upbeat lo-fi hip hop with jazzy chords",
"lyrics_generated": true,
"tags": null,
"instrumental": false,
"vocal_gender": null,
"voice_id": null,
"used_voice_id": "vocal-default-male",
"negative_tags": null,
"target_duration": null,
"duration_seconds": 185,
"sample_rate": 44100,
"audio_url": "https://cdn.60db.ai/songs/song-550e8400.mp3?expires=2026-09-24T11:30:00Z",
"seed": "",
"seed_requested": "",
"credits_charged": 0,
"liked": false,
"played": false,
"error_message": null,
"created_at": "2026-09-24T10:30:00Z",
"completed_at": "2026-09-24T10:32:15Z"
}
}
Poll this endpoint every 3–5 seconds to check generation progress and retrieve full song details (including lyrics). Song status progresses:
submitted → running → succeeded or failed.
Request
Headers
string
required
Bearer token with your API key
Path Parameters
string
required
Song UUID
Response
boolean
True on success; false if not found
object
Show Song object
Show Song object
string
UUID
string
submitted, running, succeeded, or failedstring|null
Progress message (e.g., “writing lyrics”, “generating music”)
string
Song title
string
Original prompt
string
Full lyrics (only in full object)
string
Lyrics generation prompt (if used)
boolean
Whether lyrics were generated by the model
string
simple or advancedboolean
No vocals
string
Male, Female, or nullstring
Voice used
string
Actual voice ID after fallback
number|null
Length in seconds (null until succeeded)
integer
Audio sample rate (44100, etc.)
string|null
Signed MP3 URL (~1h validity; re-fetch to refresh). Null until succeeded.
integer|null
Requested duration hint
string
Style tags
string
Excluded styles
string
Seed string sent (as string)
string
Seed that was actually used
number
Always 0 (free during beta)
boolean
User flagged as liked
boolean
User flagged as played
string|null
Error details if status is
failedstring
ISO 8601 timestamp
string|null
ISO 8601 timestamp when succeeded/failed
Example
curl https://api.60db.ai/songs/song-550e8400 \
-H "Authorization: Bearer your-api-key"
const song = await client.music.get('song-550e8400');
console.log('Status:', song.data.status);
if (song.data.status === 'succeeded') {
console.log('Ready! Duration:', song.data.duration_seconds);
}
song = client.music.get('song-550e8400')
print('Status:', song['data']['status'])
if song['data']['status'] == 'succeeded':
print('Ready! Duration:', song['data']['duration_seconds'])
{
"success": true,
"data": {
"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",
"lyrics": "[Verse]\nChasing my dreams through the city lights\nMelodies floating in the night...",
"lyrics_prompt": "upbeat lo-fi hip hop with jazzy chords",
"lyrics_generated": true,
"tags": null,
"instrumental": false,
"vocal_gender": null,
"voice_id": null,
"used_voice_id": "vocal-default-male",
"negative_tags": null,
"target_duration": null,
"duration_seconds": 185,
"sample_rate": 44100,
"audio_url": "https://cdn.60db.ai/songs/song-550e8400.mp3?expires=2026-09-24T11:30:00Z",
"seed": "",
"seed_requested": "",
"credits_charged": 0,
"liked": false,
"played": false,
"error_message": null,
"created_at": "2026-09-24T10:30:00Z",
"completed_at": "2026-09-24T10:32:15Z"
}
}