Reduce audio noise
A fan running in the next room, a laptop's cooling hiss, the low hum of old wiring — none of it was audible while recording, and all of it shows up the moment you play the file back on real speakers. This endpoint pulls that noise floor down without chewing through the voice sitting on top of it.
Run it online
Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.
Noise nobody chose to record
Almost no field recording is made in a treated studio: a founder records a product update from a home office, a support agent's headset picks up open-plan office chatter, an interview happens next to a laptop fan that only becomes obvious in playback. That background layer sits underneath every word and, left alone, quietly signals 'amateur' to anyone who hears it, regardless of how good the actual content is. audio.denoise exists to remove that signal without anyone needing a treated room in the first place.
What happens during processing
POST /audio/denoise with your file, get a task_id immediately, and receive the cleaned audio by signed webhook or a signed link valid for 24 hours once the async task finishes. The processing distinguishes the steady, repetitive character of hiss and hum from the more variable pattern of a human voice, and reduces the former while preserving the latter, rather than applying one blunt filter across the whole spectrum.
Constant noise versus one-off sounds
Noise reduction has always worked best on steady, predictable noise — the kind of hiss, hum or fan rumble that stays roughly constant through a recording — because a consistent pattern is what a denoising process can learn to separate from speech. A single loud bang, a door slam, or a dog barking once is a different problem entirely, closer to an edit than a noise-reduction job, so results are strongest on the ongoing background layer this endpoint is built to target.
Where it sits in a recording pipeline
Denoise before you normalize, so loudness gets calculated on the clean voice rather than on voice plus hiss, and before final delivery so nothing downstream inherits the noise floor. Remote teams run every recorded call through it before archiving so meeting notes and clips sound professional regardless of who dialed in from where, and independent creators run it on interviews recorded over unpredictable home internet and hardware. Priced per request plus per minute, cleaning an entire backlog of recordings costs in direct proportion to their total length, with no separate charge for how noisy any particular file happens to be.
What you can do with it
Home-office recordings for external audiences
A founder records product updates from a home office and denoises them before publishing so background hum doesn't undercut a polished message.
Remote interview cleanup
A journalist denoises a phone or video-call interview recorded over an unreliable connection before transcribing or publishing excerpts.
Support call archiving
A contact center denoises recorded calls before archiving so quality reviewers can focus on what was said instead of straining through office noise.
Pre-mastering pass for podcasts
A podcast editor denoises every guest track before mixing, since remote guests rarely record in a treated space.
FAQ
How do I remove background noise from audio with the API?
POST the file to /audio/denoise, keep the returned task_id, and collect the cleaned file by webhook or a signed link valid for 24 hours.
Is the audio noise reduction API free?
No, there is no free tier or trial; it costs $0.077 per request plus $0.0045 per minute of audio, and a failed task is never charged.
What kinds of noise does it remove best?
Steady background noise like hiss, hum and fan or air-conditioning rumble, since those consistent patterns are easiest to separate cleanly from a voice.
Can it remove a single loud sound like a door slam?
One-off sounds are a different problem from ongoing background noise and are not what this endpoint is optimized to remove.
Will denoising affect voice quality?
The processing is designed to preserve the voice while reducing the noise floor around it, though extremely noisy source audio will always yield a more processed-sounding result than a clean recording.
What formats does it accept?
The common ones — MP3, WAV, OGG, M4A and FLAC; check the endpoint reference for the current full list.
Is this endpoint live yet?
It's in deployment now and not yet accepting jobs; check the endpoint status before pointing production traffic at it.
Is my audio kept after processing?
No, source files and results are deleted after the retention window and are never used for training.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/audio/denoise \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/denoise", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/denoise",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/denoise", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/denoise", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"audio": "https://ejemplo.com/audio.mp3"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.denoise",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_mb | 200 |
max_minutes | 180 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |