Developers / Sound Cleaning

Clean audio synchronously

POST https://api.echonova.ai/v1/sound-cleaning

Cleans an uploaded MP3, WAV, FLAC or OGG/Opus file of up to 10 minutes and 150MB in one call and returns the job with the cleaned file URL. Every tuning field is optional; an omitted one uses its default.

Headers

Authorization string Required

Bearer, a space, then your API key, which starts with ek_. Create keys in the portal under Developers, API Keys.

Request body

multipart/form-data

file file Required

Audio file (mp3, wav, flac, ogg/opus). Up to 10 minutes, 150MB.

cutoffFreq number Optional

High-pass cutoff in Hz

20 to 300default 90
qFactor number Optional

High-pass smoothness

0.1 to 5default 0.707
targetLufs number Optional

Target loudness in LUFS

-30 to -6default -16
truePeakDbfs number Optional

Peak ceiling in dBFS

-6 to 0default -1
compThreshDb number Optional

Compressor threshold in dBFS

-30 to 0default -3.8
compRatio number Optional

Compressor ratio

1 to 20default 4
compAttackMs number Optional

Compressor attack in ms

0.1 to 100default 5
compReleaseMs number Optional

Compressor release in ms

1 to 1000default 50

Response

200 application/json Every response uses this envelope.

data object

The result.

success boolean

true for a successful call.

statusCode integer

Repeats the HTTP status.

errorMessage string or null

null on success.

Errors

Same envelope, with success false and data null. All errors

POST /v1/sound-cleaning

curl -X POST "https://api.echonova.ai/v1/sound-cleaning" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@audio.mp3;type=audio/mpeg"

{
  "data": {
    "id": "66e3f2a1c9d4b8a1f0e12345",
    "status": "completed",
    "fileName": "noisy.wav",
    "outputUrl": "https://storage.example.com/cleaned/66e3f2a1c9d4b8a1f0e12345.wav?signature=abc",
    "durationSeconds": 12,
    "creditsConsumed": 207,
    "options": {
      "cutoffFreq": 90,
      "qFactor": 0.707,
      "targetLufs": -16,
      "truePeakDbfs": -1,
      "compThreshDb": -3.8,
      "compRatio": 4,
      "compAttackMs": 5,
      "compReleaseMs": 50
    },
    "metrics": {
      "sampleRate": 48000,
      "integratedLufs": -16.1,
      "truePeakDbfs": -1
    },
    "error": "The audio could not be cleaned.",
    "createdAt": "2026-10-11T10:21:04.512Z"
  },
  "success": true,
  "statusCode": 200,
  "errorMessage": null
}