Theme
Request Upload Authorization
POST
https://www.kkiai.com/suno/uploads/audio
┌─────────────────────────────────────────────────────────────────┐
│ Step 1: Request Upload Authorization │
│ POST /suno/uploads/audio │
│ ↓ Returns: upload_id, upload_url │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Step 2: Upload File to S3 (Direct Client Connection, Not via API) │
│ PUT {upload_url} │
│ ↓ Upload Audio File │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Step 3: Report Upload Complete │
│ POST /suno/uploads/audio/{id}/upload-finish │
│ ↓ Notify Server File Has Been Uploaded │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Step 4: Poll Upload Status (Until Status is completed) │
│ GET /suno/uploads/audio/{id} │
│ ↓ Query Every 2-3 Seconds │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Step 5: Initialize Audio Clip │
│ POST /suno/uploads/audio/{id}/initialize-clip │
│ ↓ Returns: clip_id │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Step 6: Create Continuation Task Using clip_id │
│ POST /suno/submit/music │
│ ↓ Returns: task_id (Billing Starts) │
└─────────────────────────────────────────────────────────────────┘
Request Parameters
Authorization
Add the Authorization parameter to the Header, with the value being the Token concatenated after Bearer
Example: Authorization: Bearer ********************
Body Parameters (application/json)
| Parameter | Type | Required | Description |
|---|---|---|---|
extension | string | Required |
Request Example
json
{
"extension": "mp3"
}cURL Example
bash
curl --location --request POST 'https://www.kkiai.com/suno/uploads/audio' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"extension": "mp3"
}'Response
🟢 200 Success
Response Body
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Required | |
url | string | Required | |
fields | object | Required | |
└ Content-Type | string | Required | |
└ key | string | Required | |
└ AWSAccessKeyId | string | Required | |
└ policy | string | Required | |
└ signature | string | Required | |
is_file_uploaded | boolean | Required |
Response Example
json
{
"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
}