Edits
Create an Edit
Submit an audio or video file for AI-powered editing.
Endpoint
POST /v2/editsSubmit a new editing job. The job runs asynchronously — you receive an edit_id immediately, then retrieve the result by polling.
Request body
{
"input": {
"files": ["https://example.com/podcast.mp3"],
"config": {
"fillers": true,
"long_silences": true,
"mouth_sounds": true,
"stutters": true,
"breath": true,
"remove_noise": true,
"studio_sound": false,
"normalize": true,
"transcription": false,
"summarize": false
}
}
}Multi-track
For interviews or multi-speaker recordings, pass multiple URLs in the files array and set upload_type to "multitrack":
{
"input": {
"files": [
"https://example.com/host.mp3",
"https://example.com/guest.mp3"
],
"upload_type": "multitrack",
"config": {
"fillers": true
}
}
}Not sure which settings to enable? See Edit Settings for recommended presets.
Response
{ "id": "edit_abc123" }Examples
curl -X POST https://api.cleanvoice.ai/v2/edits \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"files": ["https://example.com/episode.mp3"],
"config": {
"fillers": true,
"long_silences": true,
"mouth_sounds": true,
"normalize": true
}
}
}'from cleanvoice import Cleanvoice
client = Cleanvoice.from_env()
# process() submits AND waits for completion
result = client.process(
"https://example.com/episode.mp3",
fillers=True,
long_silences=True,
mouth_sounds=True,
normalize=True,
)
result.audio.download("cleaned.mp3")
# create_edit() submits without waiting
edit_id = client.create_edit(
"https://example.com/episode.mp3",
fillers=True,
)
print("Edit ID:", edit_id)import { Cleanvoice } from '@cleanvoice/cleanvoice-sdk';
const client = new Cleanvoice({ apiKey: process.env.CLEANVOICE_API_KEY });
// process() submits AND waits for completion
const result = await client.process(
'https://example.com/episode.mp3',
{
fillers: true,
long_silences: true,
mouth_sounds: true,
normalize: true,
}
);
// createEdit() submits without waiting
const editId = await client.createEdit(
'https://example.com/episode.mp3',
{ fillers: true }
);
console.log('Edit ID:', editId);Configuration reference
See Edit Settings for a full list of configuration options and recommended presets.