Python
import requests
url = "https://api.wav.com/api/public/v1/audio_speed_changer"
headers = {"Authorization": "<API_KEY>"}
payload = {
"speed_change_factor": 1.5,
"output_extension": "mp3"
}
# Option 1: audio_url
payload["audio_url"] = "<YOUR_AUDIO_URL>"
response = requests.post(url, headers=headers, data=payload)
# Option 2: File Upload
# with open("input_audio.mp3", "rb") as f:
# files = {"audio_file": f}
# response = requests.post(url, headers=headers, data=payload, files=files)
print(response.json())<?php
$url = 'https://api.wav.com/api/public/v1/audio_speed_changer';
$headers = ['Authorization: <API_KEY>'];
$data = [
'speed_change_factor' => 1.5,
'output_extension' => 'mp3'
];
// Option 1: audio_url
$data['audio_url'] = '<YOUR_AUDIO_URL>';
// Option 2: File Upload
// $data['audio_file'] = new CURLFile('input_audio.mp3');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
url := "https://api.wav.com/api/public/v1/audio_speed_changer"
apiKey := "<API_KEY>"
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
writer.WriteField("speed_change_factor", "1.5")
writer.WriteField("output_extension", "mp3")
// Option 1: audio_url
writer.WriteField("audio_url", "<YOUR_AUDIO_URL>")
// Option 2: File Upload
// file, _ := os.Open("input_audio.mp3")
// defer file.Close()
// part, _ := writer.CreateFormFile("audio_file", "input_audio.mp3")
// io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", apiKey)
req.Header.Add("Content-Type", writer.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
response, _ := io.ReadAll(resp.Body)
fmt.Println(string(response))
}// Java version omitted for brevity; request if needed.curl --request POST \
--url https://api.wav.com/api/public/v1/audio_speed_changer \
--header 'Authorization: <api-key>' \
--header 'Content-Type: multipart/form-data' \
--form audio_url=https://example.com/input_audio.mp3 \
--form speed_change_factor=1.5 \
--form 'audio_file=<string>' \
--form output_extension=mp3 \
--form webhook_url=http://your-webhook-url.com/callback \
--form 0.audio_file='@example-file' \
--form 1.audio_file='@example-file'const form = new FormData();
form.append('audio_url', 'https://example.com/input_audio.mp3');
form.append('speed_change_factor', '1.5');
form.append('audio_file', '<string>');
form.append('output_extension', 'mp3');
form.append('webhook_url', 'http://your-webhook-url.com/callback');
form.append('0.audio_file', '{
"fileName": "example-file"
}');
form.append('1.audio_file', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
options.body = form;
fetch('https://api.wav.com/api/public/v1/audio_speed_changer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.wav.com/api/public/v1/audio_speed_changer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'multipart/form-data; boundary=---011000010111000001101001'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio_url\"\r\n\r\nhttps://example.com/input_audio.mp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"speed_change_factor\"\r\n\r\n1.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio_file\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"output_extension\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttp://your-webhook-url.com/callback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.audio_file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.audio_file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"success": true,
"task_id": "b0ac9d46-64d7-4843-af48-a0b6effe3666",
"conversion_id": "fe19945b-d466-4183-b559-5d264bddd492",
"eta": 66,
"credit_estimate": 0.15,
"message": "Message published to queue",
"status": "IN_QUEUE"
}{
"success": false,
"error": "Invalid speed_change_factor"
}{
"success": false,
"error": "Authentication failed"
}{
"success": false,
"error": "Insufficient credits for this operation",
"required_credits": 45,
"available_credits": 30
}{
"success": false,
"error": "User subscription plan not found"
}{
"success": false,
"error": "Internal server error during processing"
}Features
Audio Speed Changer
Processes an audio file to change its playback speed based on a speed factor.
POST
/
v1
/
audio_speed_changer
Python
import requests
url = "https://api.wav.com/api/public/v1/audio_speed_changer"
headers = {"Authorization": "<API_KEY>"}
payload = {
"speed_change_factor": 1.5,
"output_extension": "mp3"
}
# Option 1: audio_url
payload["audio_url"] = "<YOUR_AUDIO_URL>"
response = requests.post(url, headers=headers, data=payload)
# Option 2: File Upload
# with open("input_audio.mp3", "rb") as f:
# files = {"audio_file": f}
# response = requests.post(url, headers=headers, data=payload, files=files)
print(response.json())<?php
$url = 'https://api.wav.com/api/public/v1/audio_speed_changer';
$headers = ['Authorization: <API_KEY>'];
$data = [
'speed_change_factor' => 1.5,
'output_extension' => 'mp3'
];
// Option 1: audio_url
$data['audio_url'] = '<YOUR_AUDIO_URL>';
// Option 2: File Upload
// $data['audio_file'] = new CURLFile('input_audio.mp3');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
url := "https://api.wav.com/api/public/v1/audio_speed_changer"
apiKey := "<API_KEY>"
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
writer.WriteField("speed_change_factor", "1.5")
writer.WriteField("output_extension", "mp3")
// Option 1: audio_url
writer.WriteField("audio_url", "<YOUR_AUDIO_URL>")
// Option 2: File Upload
// file, _ := os.Open("input_audio.mp3")
// defer file.Close()
// part, _ := writer.CreateFormFile("audio_file", "input_audio.mp3")
// io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", apiKey)
req.Header.Add("Content-Type", writer.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
response, _ := io.ReadAll(resp.Body)
fmt.Println(string(response))
}// Java version omitted for brevity; request if needed.curl --request POST \
--url https://api.wav.com/api/public/v1/audio_speed_changer \
--header 'Authorization: <api-key>' \
--header 'Content-Type: multipart/form-data' \
--form audio_url=https://example.com/input_audio.mp3 \
--form speed_change_factor=1.5 \
--form 'audio_file=<string>' \
--form output_extension=mp3 \
--form webhook_url=http://your-webhook-url.com/callback \
--form 0.audio_file='@example-file' \
--form 1.audio_file='@example-file'const form = new FormData();
form.append('audio_url', 'https://example.com/input_audio.mp3');
form.append('speed_change_factor', '1.5');
form.append('audio_file', '<string>');
form.append('output_extension', 'mp3');
form.append('webhook_url', 'http://your-webhook-url.com/callback');
form.append('0.audio_file', '{
"fileName": "example-file"
}');
form.append('1.audio_file', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
options.body = form;
fetch('https://api.wav.com/api/public/v1/audio_speed_changer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.wav.com/api/public/v1/audio_speed_changer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'multipart/form-data; boundary=---011000010111000001101001'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio_url\"\r\n\r\nhttps://example.com/input_audio.mp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"speed_change_factor\"\r\n\r\n1.5\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio_file\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"output_extension\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttp://your-webhook-url.com/callback\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"0.audio_file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"1.audio_file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"success": true,
"task_id": "b0ac9d46-64d7-4843-af48-a0b6effe3666",
"conversion_id": "fe19945b-d466-4183-b559-5d264bddd492",
"eta": 66,
"credit_estimate": 0.15,
"message": "Message published to queue",
"status": "IN_QUEUE"
}{
"success": false,
"error": "Invalid speed_change_factor"
}{
"success": false,
"error": "Authentication failed"
}{
"success": false,
"error": "Insufficient credits for this operation",
"required_credits": 45,
"available_credits": 30
}{
"success": false,
"error": "User subscription plan not found"
}{
"success": false,
"error": "Internal server error during processing"
}Change the speed of your audio files without affecting quality.
Audio Speed Changer allows you to easily speed up or slow down any audio file, perfect for creating remixes, practicing music, or adjusting spoken content.
Use this endpoint to adjust the speed of an audio file.
- Speed up or slow down audio effortlessly
- Supports multiple formats like MP3, WAV, FLAC, and more
- Fast processing with high-quality output
Endpoint
POST /v1/audio_speed_changer
Sample Output
Listen to the speed-changed audio:Try it Yourself
Visit the Audio Speed Changer Endpoint Explorer to upload audio files and adjust their playback speed.⏩ Try different speed factors like 1.5x or 0.75x to test quality!
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
audio_file | File | Optional | Upload the audio file directly. Required if audio_url is not provided. |
audio_url | String | Optional | URL to the audio file. |
speed_change_factor | Number | Yes | Factor to change speed (e.g., 2.0 = double speed, 0.5 = half speed) (min: 0.25, max: 4.0) |
output_extension | String | Yes | Desired output format (mp3, wav, flac, ogg, aac, webm) |
webhook_url | String | Optional | URL to receive callback notification when processing completes |
Note: Either audio_file or audio_url must be provided.
content-type: multipart/form-data
Sample Request
Python
import requests
url = "https://api.wav.com/api/public/v1/audio_speed_changer"
headers = {"Authorization": "<API_KEY>"}
payload = {
"speed_change_factor": 1.5,
"output_extension": "mp3"
}
# Option 1: audio_url
payload["audio_url"] = "<YOUR_AUDIO_URL>"
response = requests.post(url, headers=headers, data=payload)
# Option 2: File Upload
# with open("input_audio.mp3", "rb") as f:
# files = {"audio_file": f}
# response = requests.post(url, headers=headers, data=payload, files=files)
print(response.json())
Sample Response
Success (200 OK)
{
"success":true,
"task_id":"b0ac9d46-64d7-4843-af48-a0b6effe3666",
"conversion_id":"fe19945b-d466-4183-b559-5d264bddd492",
"eta":66,
"credit_estimate":0.15,
"message":"Message published to queue",
"status":"IN_QUEUE"
}
Webhook Response
When transcription completes, your webhook will receive:{
"success": true,
"conversion_type": "Audio Speed Changer",
"task_id": "b0ac9d46-64d7-4843-af48-a0b6effe3666",
"conversion_id": "fe19945b-d466-4183-b559-5d264bddd492",
"output_file": "https://cdn1.wav.com/FileConversions/b0ac9d46-64d7-4843-af48-a0b6effe3666.mp3",
"message": "Audio speed changer completed"
}
Payload and Request Formation
Authorizations
Body
multipart/form-data
- Option 1
- Option 2
Input audio URL (supported format: YouTube URL).
Example:
"https://example.com/input_audio.mp3"
Factor to change the audio speed (min: 0.25, max: 4.0)
Required range:
0.25 <= x <= 4Example:
1.5
Audio file to upload and process directly.
Desired output format.
Available options:
mp3, wav, flac, ogg, aac, webm Example:
"mp3"
Callback URL for async processing results.
Example:
"http://your-webhook-url.com/callback"
⌘I

