AudioLasso

Webhooks

Receive terminal audio separation events when a queued request completes or fails.

Pass webhookUrl when submitting a job if your backend should receive a terminal callback.

Webhooks are optional. Use polling when you want the simplest integration. Use webhooks for backend workflows where the caller may not stay online while the job runs.

{
  "input": {
    "audio_url": "https://example.com/audio.wav",
    "prompt": "isolate the lead vocal"
  },
  "webhookUrl": "https://example.com/webhooks/audiolasso",
  "webhookSecret": "replace-with-your-hmac-secret"
}

Completed event

{
  "type": "audio.separate.completed",
  "request_id": "req_01jabc",
  "model": "audio/separate",
  "status": "COMPLETED",
  "data": {
    "target": {
      "url": "https://...",
      "content_type": "audio/wav",
      "file_name": "target.wav"
    },
    "residual": {
      "url": "https://...",
      "content_type": "audio/wav",
      "file_name": "residual.wav"
    }
  }
}

Failed event

{
  "type": "audio.separate.failed",
  "request_id": "req_01jabc",
  "model": "audio/separate",
  "status": "FAILED",
  "error": {
    "code": "MODEL_FAILED",
    "message": "The model failed to process the audio."
  }
}

Delivery behavior

Return any 2xx status to acknowledge delivery. Non-2xx responses are treated as delivery failures.

Handle webhook events idempotently with request_id. If delivery is delayed or fails, the status and result endpoints remain the source of truth.

On this page