Skip to content

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)

ParameterTypeRequiredDescription
extensionstringRequired

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

ParameterTypeRequiredDescription
idstringRequired
urlstringRequired
fieldsobjectRequired
  └ Content-TypestringRequired
  └ keystringRequired
  └ AWSAccessKeyIdstringRequired
  └ policystringRequired
  └ signaturestringRequired
is_file_uploadedbooleanRequired

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
}