API Reference / Endpoints / Music
Analyze and separate stems
/v1/music/analyze/stemsRun stem separation from a source audio URL.
POST
/v1/music/analyze/stemsAuth: API keyBilling: Consumes 1 API callBehavior: SyncScopes: audio:generate
POSTSyncjsonaudio:generate
When to use it
Use this when you need isolated stems or a downloadable zip for remix, education, or production workflows.
Behavior on success
Returns a completed payload on the normal success path.
Integration shape
Authorization model
audio:generate
Request format
json
Polling pattern
No polling required on the normal success path.
Request
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Public source audio URL. |
model | string | Optional | Optional model id. |
Example request
POST /v1/music/analyze/stems
const response = await fetch('https://prod-backup-backend.wubble.ai/v1/music/analyze/stems', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.WUBBLE_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
body: JSON.stringify({
"url": "https://example.com/audio/full-mix.mp3"
}),
});
const payload = await response.json();
console.log(payload);Example response
Response shapejson
{
"success": true,
"data": {
"request_id": "<uuid>",
"status": "completed",
"zip_url": "https://cdn.wubble.ai/stems/output.zip"
}
}Implementation notes
This route may complete synchronously when the provider returns a finished artifact quickly.
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?