AudioLasso

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 vocal
  • separate the piano from the rest of the song
  • remove crowd noise and keep the speaker
  • extract the dog bark from the street recording

Weak prompts:

  • clean this
  • make better
  • remove 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.

On this page