API Reference / Endpoints / Music
Extend songs
/v1/music/songs/extendContinue an existing song from a chosen point in the track.
POST
/v1/music/songs/extendAuth: API keyBilling: Consumes 1 API callBehavior: AsyncScopes: audio:generate
POSTAsyncjsonaudio:generate
When to use it
Use this when you want to add a new section, lengthen a track, or continue from a precise timestamp.
Behavior on success
Returns 202 Accepted with a request_id. Poll the status endpoint or use webhooks.
Integration shape
Authorization model
audio:generate
Request format
json
Polling pattern
Poll status if the route returns processing.
Request
| Field | Type | Required | Description |
|---|---|---|---|
song_id | string | Yes | Existing song identifier. |
lyrics | string | Yes | New lyrical or continuation material. |
extend_at | number | Yes | Millisecond offset into the track where extension should begin. |
Example request
POST /v1/music/songs/extend
const response = await fetch('https://prod-backup-backend.wubble.ai/v1/music/songs/extend', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.WUBBLE_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
body: JSON.stringify({
"song_id": "song_123",
"lyrics": "Lift the chorus one more time and open it up",
"extend_at": 45000
}),
});
const payload = await response.json();
console.log(payload);Example response
Response shapejson
{
"success": true,
"data": {
"request_id": "<uuid>",
"status": "processing",
"estimated_seconds": 75
}
}Production guidance
Pair this route with idempotency on POST requests and either request polling or webhooks whenever the response is asynchronous.
Was this page helpful?