Skip to main content
POST /api/concat
Calls Suno’s concatenation endpoint to merge a clip that was created via /api/extend_audio with its parent clip, producing one continuous audio file.

Typical workflow

  1. Generate a base clip with /api/generate or /api/custom_generate.
  2. Extend the clip one or more times with /api/extend_audio, noting the id of each new clip.
  3. Call /api/concat with the final extension clip’s ID to stitch all segments together into a single song.
Concatenation is handled by Suno’s backend. The returned object represents the fully assembled song; its audio_url points to the merged file.
clip_id is required. The server returns 400 Bad Request if it is missing.

Request body

clip_id
string
required
The ID of the extension clip to concatenate. Suno traces the clip’s lineage and merges it with all parent segments automatically.

Response

A single AudioInfo object representing the fully concatenated song — not an array.
id
string
Unique identifier for the concatenated audio clip.
title
string
Title of the concatenated song.
image_url
string
URL of the cover art image.
lyric
string
Full lyrics of the concatenated song.
audio_url
string
URL of the complete merged audio file.
video_url
string
URL of the complete merged video file.
created_at
string
ISO 8601 timestamp of when the concatenated clip was created.
model_name
string
The model used to generate the original clip.
gpt_description_prompt
string
GPT description prompt from the original generation.
prompt
string
The lyrics prompt from the clip metadata.
status
string
Status of the concatenated clip: submitted, queued, streaming, complete, or error.
type
string
Internal clip type as reported by Suno.
tags
string
Style tags associated with the clip.
negative_tags
string
Negative style tags associated with the clip.
duration
string
Total duration of the concatenated audio in seconds.
error_message
string
Error description when status is error.

Error responses

StatusMeaning
400clip_id is missing
402Out of Suno credits — payment required
500Internal server error
503Network error connecting to Suno

Examples

Request

curl -X POST http://localhost:3000/api/concat \
  -H "Content-Type: application/json" \
  -d '{
    "clip_id": "e5f6a7b8-c9d0-1234-efab-345678901234"
  }'

Response

{
  "id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
  "title": "Ocean Wanderer (Full)",
  "image_url": "https://cdn1.suno.ai/image_f6a7b8c9-d0e1-2345-fabc-456789012345.jpeg",
  "lyric": "[Verse]\nI walk along the shore at dawn\nThe salt wind pulls me further on\n[Chorus]\nOcean wanderer, lost and free\nThe sea's the only home for me\n[Bridge]\nStars above guide me through the night\nEvery storm leads to clearer light\n[Outro]\nOcean wanderer finding her way home",
  "audio_url": "https://cdn1.suno.ai/f6a7b8c9-d0e1-2345-fabc-456789012345.mp3",
  "video_url": "https://cdn1.suno.ai/f6a7b8c9-d0e1-2345-fabc-456789012345.mp4",
  "created_at": "2024-01-15T11:45:00.000Z",
  "model_name": "chirp-v3-5",
  "gpt_description_prompt": "",
  "prompt": "[Verse]\nI walk along the shore at dawn...",
  "status": "complete",
  "type": "concat",
  "tags": "folk, acoustic guitar, female vocalist",
  "negative_tags": "heavy metal, electronic",
  "duration": "227.3",
  "error_message": null
}

Build docs developers (and LLMs) love