API ghép bài hát đầy đủ (Get Full Song)

Cập nhật 2026-09-18 · nhóm Suno-API

Mô tả endpoint

Ghép bài hát đầy đủ nối «bài hát gốc + đoạn mới tạo» thành một bài hát hoàn chỉnh: sau Extend thì nối thêm phần tiếp theo, sau Replace Section thì khâu đoạn mới trở lại bài gốc. Giao diện web chính thức gọi khả năng này là Get Full Song.

Endpoint: POST /api/music/concat

Tính phí: Có phí, cố định 0,05 CNY mỗi lần gọi. Việc ghép tách rời khỏi giá tạo nhạc và không tham gia Max Mode hay hệ số hồ sơ giọng nói; số tiền thực trừ tuân theo cấu hình giá trong phần quản trị.

Thời gian chờ và timeout (quan trọng): đây là endpoint đồng bộ — đơn chỉ được tiếp nhận và đưa vào ghép khi phản hồi trả về. Hãy đặt timeout phía client từ 300 giây trở lên; không nhận được phản hồi không có nghĩa là chưa ghép gì, và đừng thử lại ngay sau khi timeout (sẽ trùng đơn và bị tính phí hai lần). Nếu kết nối bị ngắt, hãy kiểm tra lại sau bằng GET /api/music/songs.

Xác thực

Tham số Kiểu Bắt buộc Ghi chú
Authorization string có Bearer YOUR_API_KEY
Content-Type string có application/json

Tham số yêu cầu

Tham số Kiểu Bắt buộc Mặc định Ghi chú
song_id string có - song_id của đoạn cần ghép (kết quả Extend hoặc Replace Section); phải đã hoàn tất
is_infill boolean không false false = ghép cho kéo dài; true = ghép cho thay thế (infill)
source_audio_url string không - Địa chỉ âm thanh nguồn, khi đoạn đến từ tài khoản bên ngoài
source_file_name string không - Tên tệp nguồn, khi đoạn đến từ tài khoản bên ngoài
source_title string không - Tiêu đề nguồn, khi đoạn đến từ tài khoản bên ngoài

audio_id, source_clip_id và sourceClipId là cách viết tương đương của song_id; dùng một trong số đó.

Ví dụ yêu cầu

curl -X POST https://www.suno-api.io/api/music/concat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "extended_or_replaced_clip_id",
    "is_infill": false
  }'

Để ghép sau khi thay một đoạn, đặt is_infill thành true:

{ "song_id": "infilled_clip_id", "is_infill": true }

Phản hồi

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "concat_clip_id",
        "song_title": "Tiêu đề bài hát nguồn",
        "status": "queued"
      }
    ]
  }
}

Việc ghép chỉ trả về 1 kết quả (không tạo 2 bài cùng lúc). Lưu clips[].song_id rồi dùng API truy vấn bài hát và lịch sử để hỏi đến complete trước khi lấy âm thanh.

Độ dài kết quả đến từ đâu

Việc ghép không chỉ nối hai tệp lại với nhau; nó cắt bài hát nguồn theo các mốc thời gian ghi trong lịch sử của đoạn:

Chế độ Thành phần kết quả
is_infill: false bài hát nguồn [0 .. continue_at] + toàn bộ độ dài đoạn kéo dài
is_infill: true bài hát nguồn [0 .. điểm bắt đầu] + đoạn mới đã thay + bài hát nguồn [điểm kết thúc .. cuối bài]

Vì vậy âm thanh gốc sau điểm tiếp nối sẽ bị loại bỏ, không xảy ra việc lặp lại cả một đoạn.

Lưu ý

Tiếp theoAPI remaster (Remaster)

Lấy khóa API

Tạo khóa API trong bảng điều khiển sau khi đăng ký. Mỗi lần tạo tốn 0,6 ¥ và trả về 2 bản nhạc, tải xuống không giới hạn và không cần số điện thoại.

Lấy khóa API Quay lại tổng quan