Python
import requests
url = "https://api.musicgpt.com/api/public/v1/audio_cutter"
headers = {"Authorization": "<API_KEY>"}
payload = {
"start_time": 10500,
"end_time": 45000,
"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.musicgpt.com/api/public/v1/audio_cutter';
$headers = ['Authorization: <API_KEY>'];
$data = [
'start_time' => 10500,
'end_time' => 45000,
'output_extension' => 'mp3'
];
// Option 1: audio_url
$data['audio_url'] = 'https://example.com/input_audio.mp3';
// 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.musicgpt.com/api/public/v1/audio_cutter"
apiKey := "<API_KEY>"
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
writer.WriteField("start_time", "10500")
writer.WriteField("end_time", "45000")
writer.WriteField("output_extension", "mp3")
// Option 1: audio_url
writer.WriteField("audio_url", "https://example.com/input_audio.mp3")
// 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.musicgpt.com/api/public/v1/audio_cutter \
--header 'Authorization: <api-key>' \
--header 'Content-Type: multipart/form-data' \
--form audio_url=https://example.com/input_audio.mp3 \
--form start_time=10500 \
--form end_time=45000 \
--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('start_time', '10500');
form.append('end_time', '45000');
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.musicgpt.com/api/public/v1/audio_cutter', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.musicgpt.com/api/public/v1/audio_cutter")
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=\"start_time\"\r\n\r\n10500\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"end_time\"\r\n\r\n45000\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,
"conversion_id": "conv789",
"credit_estimate": 25,
"conversion_path": "https://example.com/trimmed_audio.mp3",
"message": "Audio trim task queued successfully"
}{
"success": false,
"error": "Invalid time range specified"
}{
"success": false,
"error": "Authentication failed"
}{
"success": false,
"error": "Insufficient credits for this operation",
"required_credits": 25,
"available_credits": 10
}{
"success": false,
"error": "User subscription plan not found"
}{
"success": false,
"error": "Internal server error during audio trimming"
}Features
Audio Cutter
Trims an audio file using the specified start and end times.
POST
/
v1
/
audio_cutter
Python
import requests
url = "https://api.musicgpt.com/api/public/v1/audio_cutter"
headers = {"Authorization": "<API_KEY>"}
payload = {
"start_time": 10500,
"end_time": 45000,
"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.musicgpt.com/api/public/v1/audio_cutter';
$headers = ['Authorization: <API_KEY>'];
$data = [
'start_time' => 10500,
'end_time' => 45000,
'output_extension' => 'mp3'
];
// Option 1: audio_url
$data['audio_url'] = 'https://example.com/input_audio.mp3';
// 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.musicgpt.com/api/public/v1/audio_cutter"
apiKey := "<API_KEY>"
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
writer.WriteField("start_time", "10500")
writer.WriteField("end_time", "45000")
writer.WriteField("output_extension", "mp3")
// Option 1: audio_url
writer.WriteField("audio_url", "https://example.com/input_audio.mp3")
// 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.musicgpt.com/api/public/v1/audio_cutter \
--header 'Authorization: <api-key>' \
--header 'Content-Type: multipart/form-data' \
--form audio_url=https://example.com/input_audio.mp3 \
--form start_time=10500 \
--form end_time=45000 \
--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('start_time', '10500');
form.append('end_time', '45000');
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.musicgpt.com/api/public/v1/audio_cutter', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.musicgpt.com/api/public/v1/audio_cutter")
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=\"start_time\"\r\n\r\n10500\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"end_time\"\r\n\r\n45000\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,
"conversion_id": "conv789",
"credit_estimate": 25,
"conversion_path": "https://example.com/trimmed_audio.mp3",
"message": "Audio trim task queued successfully"
}{
"success": false,
"error": "Invalid time range specified"
}{
"success": false,
"error": "Authentication failed"
}{
"success": false,
"error": "Insufficient credits for this operation",
"required_credits": 25,
"available_credits": 10
}{
"success": false,
"error": "User subscription plan not found"
}{
"success": false,
"error": "Internal server error during audio trimming"
}Trim your audio files with precision using AI.
Audio Cutter allows you to select specific sections of audio recordings, making it perfect for creating highlights, clips, ringtones, and more.
Use this endpoint to trim a section from an existing audio file.
- Easily extract the best parts of any audio
- Supports multiple formats like MP3, WAV, FLAC, and more
- Fast processing with high-quality output
Endpoint
POST /v1/audio_cutter
Sample Output
Listen to the trimmed audio: Download AudioTry it Yourself
Visit the Audio Cutter Endpoint Explorer to cut and download trimmed audio segments instantly.✂️ Try trimming different parts to see how accurate the cut is!
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
audio_path | String | Yes | The S3 path of the input audio file to trim |
conversion_id | String | Yes | A unique identifier for the conversion request |
start_time | Float | Yes | The start time (in milliseconds) of the audio to trim |
end_time | Float | Yes | The end time (in milliseconds) of the audio to trim |
output_extension | String | Yes | Output format: mp3, wav, flac, ogg, aac, or webm |
content-type: multipart/form-data
Sample Request
Python
import requests
url = "https://api.musicgpt.com/api/public/v1/audio_cutter"
headers = {"Authorization": "<API_KEY>"}
# Option 1: Using audio URL
payload = {
"audio_url": "https://example.com/input_audio.mp3",
"start_time": 10500,
"end_time": 45000,
"output_extension": "mp3"
}
response = requests.post(url, headers=headers, data=payload)
print(response.json())
# Option 2: Upload local audio file
payload = {
"start_time": 5000,
"end_time": 20000,
"output_extension": "wav"
}
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":25.0,
"message":"Message published to queue",
"status":"IN_QUEUE"
}
Webhook Response
When audio cutter conversion completes, your webhook will receive:{
"success": true,
"conversion_type": "Audio Cutter",
"task_id": "8993b364-9141-4de7-ab38-5a4178618f0e",
"conversion_id": "3f07f1ba-9eb5-4581-95ed-427eac1dda0c",
"output_file": "https://lalals.s3.amazonaws.com/FileConversions/8993b364-9141-4de7-ab38-5a4178618f0e.mp3",
"message": "Audio cutter completed"
}
📂 The conversion_path field contains the direct link to download the trimmed audio.
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"
Start time in milliseconds.
Example:
10500
End time in milliseconds.
Example:
45000
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