API Extend (kéo dài)
Mô tả endpoint
Extend tiếp tục một bài hát đã có từ một mốc thời gian chọn trước và tạo đoạn tiếp theo.
Endpoint: POST /api/music/extend
Tính phí: Có phí, hiện mặc định 0,6 ¥ mỗi lần gọi. Số tiền thực trừ tuân theo cấu hình giá hiện tại trong phần quản trị.
Max Mode / Variety: endpoint này hỗ trợ hai tham số tùy chọn max_mode và variety (0-4). Khi bật
max_mode, lần gọi này bị tính gấp đôi (0,6 → 1,2 ¥ mỗi lần); variety không phát sinh phí thêm.
Ý nghĩa và cách gửi xem mục "Tham số nâng cao" trong
Tổng quan API mới.
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 tạo nhạc khi phản hồi trả về. Theo đo đạc, phần lớn yêu cầu trả về trong 1-3 giây, khoảng 10% mất hơn 30 giây và lâu nhất khoảng 230 giây. 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 tạo 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. Xem "Thời gian chờ và thiết lập timeout" trong Tổng quan API mới.
Tham số yêu cầu
Headers
| 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ố body
| Tham số | Kiểu | Bắt buộc | Mặc định | Ghi chú |
|---|---|---|---|---|
| model | string | không | suno-v6 | Tên mô hình cho khách hàng: suno-v6, suno-v6-wild hoặc suno-v6-mini |
| audioId | string | có | - | ID bài hát cần kéo dài |
| prompt | string | có | - | Mô tả phần kéo dài |
| continueAt | number | có | - | Điểm bắt đầu kéo dài, tính bằng giây. Phải lớn hơn 0 và nhỏ hơn thời lượng bài hát nguồn; hãy để ít nhất 10 giây sau điểm bắt đầu, nếu không kết quả chỉ có vài giây đó |
| style | string | không | - | Thẻ phong cách |
| negativeTags | string | không | - | Phong cách loại trừ |
| title | string | không | - | Tiêu đề |
| sourceAudioUrl | string | không | - | URL âm thanh nguồn |
| sourceFileName | string | không | - | Tên tệp nguồn |
| waitAudio | boolean | không | false | Có chờ âm thanh hoàn tất không |
Ví dụ yêu cầu
curl -X POST https://www.suno-api.io/api/music/extend \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"audioId": "clip_id",
"prompt": "tiếp tục đoạn điệp khúc với cảm xúc mạnh hơn",
"continueAt": 60,
"style": "Mandopop, rock",
"negativeTags": "noise",
"title": "Bản kéo dài",
"waitAudio": false
}'
Phản hồi
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "extended_clip_id",
"song_title": "Bản kéo dài",
"status": "pending"
}
]
}
}
Trường tương thích
Tên trường cũ vẫn được chấp nhận:
| Trường mới | Trường cũ tương thích |
|---|---|
| audioId | song_id, audio_id |
| prompt | description |
| continueAt | start_time, continue_at |
| style | style_tags, tags |
| negativeTags | negative_tags |
| waitAudio | wait_audio |
Lưu ý
- Đừng đặt điểm bắt đầu sát cuối bài: độ dài phần kéo dài cơ bản bằng "phần còn lại sau điểm bắt đầu". Nếu điểm bắt đầu quá gần cuối, kết quả chỉ vài giây — đo đạc cho thấy bài 242 giây kéo dài từ giây 240 chỉ ra 2,7 giây (vẫn tính phí theo lần gọi). Hãy để ít nhất 10 giây sau điểm bắt đầu.
- Extend không có ngưỡng "nguồn quá ngắn": đo đạc cho thấy đoạn ngắn 9,6 giây kéo dài từ giây 5 vẫn ra bài bình thường, nên nguồn ngắn hay phần còn lại ngắn không phải lý do bị từ chối.
- Điểm bắt đầu phải lớn hơn 0:
continueAt=0được nền tảng tiếp nhận rồi vô hiệu, không trả lý do thất bại, nên hãy bắt đầu ngay sau giây đầu tiên. - Một lần gọi trả về 2 kết quả (tính phí như 2 bài); hãy căn theo độ dài mảng
clips. - Kết quả là tác phẩm mới; bài gốc không bị ảnh hưởng.
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