Skip to main content
POST
/
denoise
Submit Denoise Job
curl --request POST \
  --url https://api.munsit.com/api/v1/denoise \
  --header 'Content-Type: multipart/form-data' \
  --header 'x-api-key: <api-key>' \
  --form audio='@example-file'
{
  "jobId": "<string>",
  "denoiseId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
Queues an audio (or video) file for voice isolation. The endpoint accepts the upload, persists the original, creates a pending record, and enqueues a background job. Use the returned denoiseId with the progress SSE endpoint to track completion.

Authentication

Requires API key authentication via x-api-key header.

Request

Content-Type: multipart/form-data

Form Data

FieldTypeRequiredDescription
audioFileYesAudio or video file to denoise (max 200 MB, max 15 minutes duration)

File Limits

  • Maximum file size: 200 MB
  • Maximum duration: 15 minutes
  • Source type detection: files with extension mp4, mov, mkv, webm, avi, or m4v are treated as video and their audio track is extracted before denoising. All other extensions are treated as audio.
Supported audio formats: WAV, MP3, M4A, FLAC, OGG.

Response

Status Code: 200 OK Content-Type: application/json

Response Schema

FieldTypeDescription
jobIdstringIdentifier of the queued background job. Mirrors denoiseId.
denoiseIdstring (UUID)Unique identifier of the denoising record. Use this with the progress and list endpoints.

Example Response

{
  "jobId": "5b1d2f7e-3f81-4c2a-9c5d-7a2e91b4c7a1",
  "denoiseId": "5b1d2f7e-3f81-4c2a-9c5d-7a2e91b4c7a1"
}

Error Responses

400 Bad Request
{
  "errorCode": "400xx",
  "errorMessage": "audio is required and must be a file"
}
{
  "errorCode": "400xx",
  "errorMessage": "File size exceeds the maximum limit of 200MB. File size: <n>MB"
}
{
  "errorCode": "400xx",
  "errorMessage": "Duration exceeds the maximum limit of 15 minutes. Duration: <n> minutes"
}
401 Unauthorized
{
  "errorCode": "40101",
  "errorMessage": "Invalid or missing API key"
}
402 Payment Required
{
  "errorCode": "40201",
  "errorMessage": "Insufficient wallet balance"
}

Example Usage

JavaScript

const formData = new FormData();
const audioFile = document.querySelector('input[type="file"]').files[0];
formData.append("audio", audioFile);

const response = await fetch('https://api.munsit.com/api/v1/denoise', {
  method: 'POST',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
    // Note: Content-Type is set automatically by FormData
  },
  body: formData,
});

if (response.ok) {
  const { jobId, denoiseId } = await response.json();
  console.log('Queued denoising', { jobId, denoiseId });
  // Next: subscribe to /denoise/{denoiseId}/progress for live updates
} else {
  const error = await response.json();
  console.error('Error:', error);
}

Python

import requests

url = "https://api.munsit.com/api/v1/denoise"
headers = {
    "x-api-key": "YOUR_API_KEY"
}

with open("input_audio.wav", "rb") as audio_file:
    files = {"audio": audio_file}
    response = requests.post(url, files=files, headers=headers)

if response.status_code == 200:
    data = response.json()
    print(f"Queued denoising: denoiseId={data['denoiseId']}")
else:
    print(f"Error: {response.status_code} - {response.text}")

cURL

curl -X POST "https://api.munsit.com/api/v1/denoise" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "audio=@input_audio.wav"
Async workflow: This endpoint only enqueues the job. The denoised audio URL is delivered via the progress SSE endpoint (done event) or can be fetched from the list endpoint once the record’s status is success.

Authorizations

x-api-key
string
header
required

API key for authentication

Body

multipart/form-data
audio
file
required

Audio or video file to denoise (max 200 MB, max 15 minutes duration). Video containers (mp4, mov, mkv, webm, avi, m4v) have their audio track extracted automatically.

Response

Denoising job queued

jobId
string
required

Background job identifier (mirrors denoiseId).

denoiseId
string<uuid>
required

Unique identifier of the denoising record. Use this with /denoise/{denoiseId}/progress and as the record id in /denoise.