Skip to main content
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.
  • Easily extract the best parts of any audio
  • Supports multiple formats like MP3, WAV, FLAC, and more
  • Fast processing with high-quality output
Audio Cutter ensures your trimmed audio sounds clean and professional.

Endpoint

POST /v1/audio_cutter
Use this endpoint to trim a section from an existing audio file.

Sample Output

Listen to the trimmed audio: Download Audio

Try 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

ParameterTypeRequiredDescription
audio_pathStringYesThe S3 path of the input audio file to trim
conversion_idStringYesA unique identifier for the conversion request
start_timeFloatYesThe start time (in milliseconds) of the audio to trim
end_timeFloatYesThe end time (in milliseconds) of the audio to trim
output_extensionStringYesOutput 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

Authorization
string
header
required

Body

multipart/form-data
audio_url
string
required

Input audio URL (supported format: YouTube URL).

Example:

"https://example.com/input_audio.mp3"

start_time
number<float>
required

Start time in milliseconds.

Example:

10500

end_time
number<float>
required

End time in milliseconds.

Example:

45000

audio_file
file

Audio file to upload and process directly.

output_extension
enum<string>

Desired output format.

Available options:
mp3,
wav,
flac,
ogg,
aac,
webm
Example:

"mp3"

webhook_url
string

Callback URL for async processing results.

Example:

"http://your-webhook-url.com/callback"

Response

Successfully initiated audio cut

success
boolean
conversion_id
string
credit_estimate
number<float>
conversion_path
string
message
string