Job status
Subscribe to live progress events for a denoising job over Server-Sent Events. The connection emits processing events as work advances and terminates with either a done event carrying the final audio URL, or an error event.
The request
Authenticate with your API key in the x-api-key header, and ask for an event stream via the Accept header.
| Path parameter | Type | Required | Description |
|---|---|---|---|
denoiseId | string (UUID) | Yes | The denoiseId returned by POST /denoise. |
| Header | Value | Description |
|---|---|---|
x-api-key | your API key | Required for authentication. |
Accept | text/event-stream | Required to negotiate the SSE response. |
The event stream
On success the server answers 200 OK with Content-Type: text/event-stream, Cache-Control: no-cache and Connection: keep-alive. Each message is delivered as a data: line whose payload is a JSON object. The connection automatically closes after a terminal event (done or error), or after 15 minutes of inactivity. The stage field discriminates the event:
| Stage | Fields | Description |
|---|---|---|
processing | pct (number, 0–100), message (string, optional) | Incremental progress update. |
done | url (string), denoiseId (string) | Terminal success — url is the denoised audio URL. |
error | message (string) | Terminal failure — human-readable error message. |
data: {"stage":"processing","pct":15,"message":"Extracting audio"}
data: {"stage":"processing","pct":62,"message":"Running noise reduction"}
data: {"stage":"done","url":"https://cdn.munsit.com/denoising/user_123/5b1d2f7e_denoised.wav","denoiseId":"5b1d2f7e-3f81-4c2a-9c5d-7a2e91b4c7a1"}Example usage
Use any HTTP client that can read a streamed body — no special SSE library required.
Errors
Before the stream is established, failures come back as plain JSON — not as SSE.
| Status | Body |
|---|---|
| 404 Not Found | {"message": "Denoising job not found"} |
| 401 Unauthorized | {"errorCode": "40101", "errorMessage": "Invalid or missing API key"} |
Next steps
Once the done event delivers the URL, the clean audio is yours.
Working with an AI assistant? Every page is available as Markdown: add .md to the URL, or send an Accept: text/markdown header. For the whole documentation in one request, point it at llms-full.txt; the page index is llms.txt. Or use Copy Page, top right.
