Skip to main content
POST
/
suno
/
v1
/
upload
cURL
curl --request POST \
  --url https://api.ttapi.io/suno/v1/upload \
  --header 'Content-Type: application/json' \
  --header 'TT-API-KEY: <api-key>' \
  --data '
{
  "audio_url": "<string>",
  "is_async": false,
  "hookUrl": "<string>"
}
'
{
  "status": "SUCCESS",
  "message": "success",
  "data": {
    "music_id": "music_id"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.ttapi.io/llms.txt

Use this file to discover all available pages before exploring further.

Upload audio to Suno to obtain a job_id or music_id for subsequent operations.
  • When is_async = false (synchronous mode): The API will block until processing is complete and will directly return the music_id.
⚠️ Since the full processing workflow must complete, this may take a long time.
  • When is_async = true (asynchronous mode): The API will return a jobId immediately. You need to use this jobId to call the Fetch Task API to retrieve the final upload result asynchronously.

Authorizations

TT-API-KEY
string
header
required

You can obtain your API key from the TTAPI Dashboard.

Body

application/json
audio_url
string
required

Audio URL. The file must be publicly accessible.

is_async
boolean
default:false

Whether to process asynchronously.

  • false: Wait synchronously for the result.
  • true: Return immediately and query the result asynchronously.
hookUrl
string

Callback notification URL

Response

Request successful

status
string
required
Example:

"SUCCESS"

message
string
required
Example:

"success"

data
object
required

When using synchronous upload (is_async=false), the endpoint waits and returns the audio ID directly. This request may take a while.

Example:
{ "music_id": "music_id" }
Last modified on April 17, 2026