Loading model…正在加载模型详情…
Loading model…正在加载模型详情…
Describe a musical idea and choose a style tag to generate music with Suno.
Your result appears here
Suno turns a written musical idea into generated music. Describe the mood and instrumentation, then choose a style tag to guide the request.
Describe the music you want and choose a style tag from the catalog. The available input is text and the catalog option; reference-media inputs are not exposed for these variants.
Try different styles with the same musical brief, then listen to the resulting audio before using it in a production.
What you can do with Suno through UniRoute today.
Describe the music you want and choose a style tag from the catalog.
The workspace shows only callable variants; other family operations are not available on UniRoute yet.
The variants you can call, with their options and prices.
| Variant | Model ID | Modes | Inputs | Output | Price |
|---|---|---|---|---|---|
| Suno music | ai-music-api/generate | Text to music | Text prompt and an option for music style tags | Audio | $0.08 per request |
Priced per request. The option you choose sets the price.
| Suno music | |
|---|---|
| Pop | $0.08 |
| Lo-fi | $0.08 |
| Cinematic | $0.08 |
| Electronic | $0.08 |
| Acoustic | $0.08 |
| Jazz | $0.08 |
Rounded to the cent; the live quote in the workspace shows the exact amount. Prices updated 2026-11-08.
Pay as you go from a single USD wallet balance. You see the quote before each request.
Call Suno from your own code with the media API.
# Requires bash, curl and jq. Set API_KEY to your own unified UniRoute Key.set -euo pipefail: "${API_KEY:?Set API_KEY first}"BASE='https://api.uniroute.app/v1/media'MODEL='ai-music-api/generate'OPTION='pop, upbeat'PROMPT='A calm sunrise over a mountain lake'curl -fsS --max-time 60 "$BASE/catalog" -H "Authorization: Bearer $API_KEY" | jq -e '.data.models'BODY=$(jq -n --arg model "$MODEL" --arg option "$OPTION" --arg prompt "$PROMPT" '{model:$model,option:$option,prompt:$prompt}')QUOTE_BODY=$(printf '%s' "$BODY" | jq '{model,option}')QUOTE=$(curl -fsS --max-time 60 "$BASE/quote" -H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' -d "$QUOTE_BODY")CAP=$(printf '%s' "$QUOTE" | jq -er '.data.quoted_usd')BODY=$(printf '%s' "$BODY" | jq --arg cap "$CAP" '. + {max_cost_usd:$cap}')IDEMPOTENCY="example-$(date +%s)-$$"create() { curl -fsS --max-time 60 "$BASE/tasks" -H "Authorization: Bearer $API_KEY" -H "Idempotency-Key: $IDEMPOTENCY" -H 'Content-Type: application/json' -d "$BODY"; }TASK_ID=$(create | jq -er '.data.task_id')# The same request and idempotency key must return the original task without charging again.REPLAY_ID=$(create | jq -er '.data.task_id')[ "$TASK_ID" = "$REPLAY_ID" ]for attempt in $(seq 1 120); do TASK=$(curl -fsS --max-time 60 "$BASE/tasks/$TASK_ID" -H "Authorization: Bearer $API_KEY") printf '%s' "$TASK" | jq -e '.data | {task_id,status,billing}' if printf '%s' "$TASK" | jq -e '.data.status == "success" and .data.billing.state == "charged"' >/dev/null; then index=0 while IFS= read -r url; do index=$((index+1)) curl -fL --max-time 120 "$url" -o "$TASK_ID-$index.bin" done < <(printf '%s' "$TASK" | jq -er '.data.urls[].url') break fi if printf '%s' "$TASK" | jq -e '.data.status == "failed" and .data.billing.state == "released"' >/dev/null; then exit 1; fi if [ "$attempt" = 120 ]; then echo "Polling limit reached. Keep task ID $TASK_ID and query it later; do not create a new task." >&2 exit 1 fi sleep 5donecurl -fsS --max-time 60 "$BASE/tasks?limit=20" -H "Authorization: Bearer $API_KEY" | jq -e '.data'# Check this task and the caller Key in Console usage; billing.charged_usd is the actual USD charge.| Name | In | Description |
|---|---|---|
model | Body | Model ID to run. |
option | Body | One of the options offered for the model: pop, upbeat, lofi, chill, mellow, cinematic, orchestral, epic, electronic, synth, dance, acoustic, folk, warm, jazz, smooth, brass. |
prompt | Body | Text prompt describing what to generate. |
Typical ways to put Suno to work.
Explore an audio idea from a written brief and compare the available catalog options.
Use the generated result as a draft in a wider production workflow and review it before publication.
Use the media API to quote a request, create a task and poll until the output is ready.
Common questions about Suno.
Suno turns a written musical idea into generated music. Describe the mood and instrumentation, then choose a style tag to guide the request.
The variant selector lists the callable model IDs on UniRoute. Unavailable operations are omitted, and the specifications table shows the available options.
From $0.08 / audio request. The Pricing section lists the available rates for the selected variant and settings, with prices updated 2026-11-08.
Use the media API to request a quote, create a task with an Idempotency-Key and a maximum cost, then poll for the result.
Describe the music you want and choose a style tag from the catalog. Reference-media inputs are not exposed for the callable variants shown here.
No. Generation is paid from your wallet balance. You can open the workspace and review the price without paying, create an account to see a live quote for your exact settings, and you are charged only for requests that are accepted.
max_cost_usd |
|---|
| Body |
| Maximum cost in USD for this task, taken from the quote. |
Idempotency-Key | Header | A unique key per task, so a repeated request returns the original task instead of charging again. |
|---|