Submit a job
Start an AudioLasso separation job with either a public URL or an uploaded file.
Use POST /v1/queue/audio/separate to start a separation job. The endpoint returns immediately with a request_id and queue URLs.
Right now the production API is intentionally simple:
- It supports text prompts.
- It supports optional time-span hints.
- It does not expose Full visual prompting yet.
- It does not expose all SAM Audio model variants yet.
Public URL input
curl -X POST https://audiolasso.dev/v1/queue/audio/separate \
-H "Authorization: Bearer $AUDIOLASSO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"audio_url": "https://example.com/session.wav",
"prompt": "separate the piano from the background music"
}
}'Use this when the source file already lives at a public HTTPS URL.
audio_url must be public. localhost, private-network URLs, and file:// URLs are rejected.
Uploaded file input
Use file_id when the source file is local or private:
{
"input": {
"file_id": "file_01jabc",
"prompt": "isolate the lead vocal"
}
}See Upload a file for the upload flow.
Time-span hints
Use spans when you know where the target sound appears or does not appear. Spans are hints, not hard edits.
{
"input": {
"audio_url": "https://example.com/session.wav",
"prompt": "the speaker",
"spans": [
{ "start": 2.1, "end": 6.4, "include": true },
{ "start": 14.0, "end": 18.5, "include": false }
]
}
}Write a good prompt
Be specific about the sound you want in the target track.
Good prompts:
isolate the lead vocalseparate the piano from the rest of the songremove crowd noise and keep the speakerextract the dog bark from the street recording
Weak prompts:
clean thismake betterremove noise
Response
The API returns 202 Accepted with the URLs you need for the rest of the workflow:
{
"request_id": "req_01jabc",
"status": "IN_QUEUE",
"model": "audio/separate",
"created_at": "2026-04-25T08:00:00.000Z",
"status_url": "https://audiolasso.dev/v1/queue/requests/req_01jabc/status",
"stream_url": "https://audiolasso.dev/v1/queue/requests/req_01jabc/status/stream",
"result_url": "https://audiolasso.dev/v1/queue/requests/req_01jabc/result"
}Use status_url as the durable wait path. stream_url is available for live status updates, and webhookUrl is available when a backend wants a completion callback.