Process audio in three simple steps: upload, process, download.
const response = await fetch('https://tq7pkqhuee.execute-api.us-west-2.amazonaws.com/dev/process', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
file_key: 'uploads/your-file.wav',
options: {
cleanup: true,
preset: 'podcast_clean',
generate_waveform: false
}
})
});
const data = await response.json();
console.log(data);All API requests require an API key passed in the x-api-key header.
Get your API key from your account dashboard after signing up.
https://tq7pkqhuee.execute-api.us-west-2.amazonaws.com/devGet a presigned URL to upload your audio file to S3.
// Step 1: Get presigned upload URL
const uploadResponse = await fetch('https://tq7pkqhuee.execute-api.us-west-2.amazonaws.com/dev/upload', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
filename: 'audio.wav',
content_type: 'audio/wav'
})
});
const { upload_url, file_key } = await uploadResponse.json();
// Step 2: Upload file to S3
await fetch(upload_url, {
method: 'PUT',
headers: {
'Content-Type': 'audio/wav'
},
body: audioFile
});Request Body:
filename: string, content_type: stringSubmit an audio processing job with AI cleanup and mastering.
Request Body:
{
"file_key": "uploads/uuid/filename.wav",
"options": {
"cleanup": true,
"preset": "podcast_clean",
"generate_waveform": false
}
}Available Presets:
Convert audio between formats with quality presets.
const transcodeResponse = await fetch('https://tq7pkqhuee.execute-api.us-west-2.amazonaws.com/dev/transcode/audio', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
file_key: 'uploads/your-file.m4a',
options: {
outputFormat: 'mp3',
bitrate: 'high'
}
})
});Formats: mp3, aac, m4a, wav, flac, ogg, opus
Bitrates: low (96k), medium (128k), standard (192k), high (256k), highest (320k)
Check the status of a processing job.
// Poll job status
const statusResponse = await fetch(`https://tq7pkqhuee.execute-api.us-west-2.amazonaws.com/dev/status/${jobId}`, {
headers: {
'x-api-key': 'YOUR_API_KEY'
}
});
const status = await statusResponse.json();
console.log(status.status); // 'queued', 'processing', 'completed', 'failed'Get a presigned download URL for completed transcoding jobs.
Returns a 7-day presigned S3 URL for downloading the processed file.
1 credit per minute (AI cleanup + mastering)
0.5 credits per minute (format conversion)
Free tier: 10 jobs per hour, 100MB max file size, 10 total minutes
Questions or issues? We're here to help.