Concatenate Audio Endpoint
Overview
Concatenates (combines) all extensions of a clip into a complete song. This generates the final full-length song from all the extended segments.
🔗 Quick Links
- 📊 Dashboard - Manage accounts, view logs, and monitor system status
- 📚 API Index - Complete API reference
Endpoint
POST /api/concat
POST /[accountId]/api/concat
Request
Headers
Content-Type: application/json
Body (JSON)
clip_id (string, required)
ID of the clip to concatenate
Example Request
curl -X POST https://your-domain.com/api/concat \
-H "Content-Type: application/json" \
-d '{
"clip_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}'
const response = await fetch('/api/concat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clip_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
})
});
Response
Success Response (200 OK)
Returns an AudioInfo object representing the concatenated song:
{
"id": "concat-id-12345",
"title": "Complete Song",
"image_url": "https://cdn.suno.ai/image-12345.png",
"lyric": "Full song lyrics",
"audio_url": "https://cdn.suno.ai/audio-12345.mp3",
"video_url": "https://cdn.suno.ai/video-12345.mp4",
"created_at": "2025-12-09T15:30:00.000Z",
"model_name": "chirp-crow",
"status": "complete",
"type": "concatenated",
"duration": "360"
}
Status Code: 200
Content-Type: application/json
Bad Request (400)
When clip_id is missing:
{
"error": "Clip id is required"
}
Status Code: 400
Content-Type: application/json
Payment Required (402)
When account credits are insufficient:
{
"error": "Insufficient credits"
}
Status Code: 402
Content-Type: application/json
Internal Server Error (500)
When an error occurs:
{
"error": "Internal server error"
}
Status Code: 500
Content-Type: application/json
Method Not Allowed (405)
When using an unsupported HTTP method:
Status Code: 405
Headers: Allow: POST
Notes
- This combines all extensions created with the
extend_audioendpoint - The result is a complete, full-length song
- All responses include CORS headers