API Reference / Endpoints / Music
Generate isolated tracks
/v1/music/tracksGenerate isolated tracks or stems-style outputs from a prior song or upload.
POST
/v1/music/tracksAuth: API keyBilling: Consumes 1 API callBehavior: AsyncScopes: audio:generate
POSTAsyncjsonaudio:generate
When to use it
Use this when you need a derivative track workflow instead of a full song output.
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 |
|---|---|---|---|
generate_type | string | Yes | Track generation mode such as vocals, drums, bass, guitar, keyboard, strings, synth, or fx. |
song_id | string | Optional | Existing song id. |
upload_audio_id | string | Optional | Existing upload id. Supply one source identifier total. |
Example request
POST /v1/music/tracks
const response = await fetch('https://prod-backup-backend.wubble.ai/v1/music/tracks', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.WUBBLE_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
body: JSON.stringify({
"generate_type": "drums",
"song_id": "song_123"
}),
});
const payload = await response.json();
console.log(payload);Example response
Response shapejson
{
"success": true,
"data": {
"request_id": "<uuid>",
"status": "processing",
"estimated_seconds": 80
}
}Implementation notes
Provide exactly one of song_id or upload_audio_id.
Accepted generate_type values are route-validated instrument groups such as vocals, drums, bass, guitar, keyboard, strings, synth, and fx.
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?