注册

请求上传授权

POST https://api.quickrouter.ai/suno/uploads/audio 在线调试 →
Authorization

在 Header 添加参数 Authorization,其值为 Bearer 之后拼接 Token

示例: Authorization: Bearer ********************

┌─────────────────────────────────────────────────────────────────┐ │ 第1步: 请求上传授权 │ │ POST /suno/uploads/audio │ │ ↓ 返回: upload_id, upload_url │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 第2步: 上传文件到S3 (客户端直连,不经过API) │ │ PUT {upload_url} │ │ ↓ 上传音频文件 │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 第3步: 上报上传完成 │ │ POST /suno/uploads/audio │ │ ↓ 返回: task_id │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 第4步: 轮询音乐生成状态 │ │ GET /suno/info? ids=$task_id │ │ ↓ 返回: status │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 第5步: 初始化音乐创作 │ │ POST /suno/next │ │ ↓ 返回: IDs │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 第6步: 获取音乐创建结果 │ │ GET /suno/info?ids=$ids │ └─────────────────────────────────────────────────────────────────┘

请求参数

Body 参数 application/json
extension string
必需
请求
示例
{
    "extension": "mp3"
}

请求示例代码

curl --location --request POST 'https://api.quickrouter.ai/suno/uploads/audio' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "extension": "mp3"
}'
var myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Authorization", "Bearer YOUR_API_KEY");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "extension": "mp3"
});

var requestOptions = {
   method: 'POST',
   headers: myHeaders,
   body: raw,
   redirect: 'follow'
};

fetch("https://api.quickrouter.ai/suno/uploads/audio", requestOptions)
   .then(response => response.text())
   .then(result => console.log(result))
   .catch(error => console.log('error', error));
import http.client
import json

conn = http.client.HTTPSConnection("api.quickrouter.ai")
payload = json.dumps({
  "extension": "mp3"
})
headers = {
   'Accept': 'application/json',
   'Authorization': 'Bearer YOUR_API_KEY',
   'Content-Type': 'application/json'
}
conn.request("POST", "/suno/uploads/audio", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

返回响应

响应参数 🟢 200 OK · application/json
id string
必需
url string
必需
fields object
必需
Content-Type, key, AWSAccessKeyId, policy, signature
Content-Type string
必需
key string
必需
AWSAccessKeyId string
必需
policy string
必需
signature string
必需
is_file_uploaded boolean
必需
示例
{
    "id": "f208ab1f-e93a-4417-b089-e7fc38b50268",
    "url": "https://suno-uploads.s3.amazonaws.com/",
    "fields": {
        "Content-Type": "audio/mpeg",
        "key": "raw_uploads/f208ab1f-e93a-4417-b089-e7fc38b50268.mp3",
        "AWSAccessKeyId": "AKIA2V4GXGDKLZ43MUG7",
        "policy": "eyJleHBpcmF0aW9uIjogIjIwMjYtMDEtMDZUMDM6Mjg6MjlaIiwgImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDUyNDI4ODAwMF0sIFsic3RhcnRzLXdpdGgiLCAiJENvbnRlbnQtVHlwZSIsICJhdWRpby9tcGVnIl0sIHsiYnVja2V0IjogInN1bm8tdXBsb2FkcyJ9LCB7ImtleSI6ICJyYXdfdXBsb2Fkcy9mMjA4YWIxZi1lOTNhLTQ0MTctYjA4OS1lN2ZjMzhiNTAyNjgubXAzIn1dfQ==",
        "signature": "tevxOl3SW28afyLyzObeCYzIvWI="
    },
    "is_file_uploaded": false
}