API Stock

Руководство

Suno API: key, pricing, docs and first song

Get an API Stock key for Suno, check action pricing, send your first music request, and retrieve audio with polling and links to the API documentation.

9 мин чтения
Suno API: 31 actions from one model — make a song for $0.075, then edit, split, or export it; modular glass audio console

To generate music through API Stock, create an API key, fund your balance and send a request with "model": "suno" and "action": "music". Standard music generation costs $0.075 per request, and the response is a task ID you poll for the finished audio. This guide documents the API Stock API, with prices checked on 5 October 2026; it is not documentation for a Suno-issued API key.

How do I get a Suno API key for this integration?

  1. Create an account and open the API keys page.
  2. Create a key and store it as API_STOCK_KEY in your server environment. Send it as Authorization: Bearer $API_STOCK_KEY to the API Stock API endpoint used below.
  3. Check the Suno action price table and top up your prepaid balance before generating. The key authenticates you; the balance pays for requests.

A Suno website login or subscription is not the credential for this endpoint. The key is issued by API Stock; this guide makes no claim about access to a separate vendor API. Keep keys out of frontend bundles, public repositories and shared screenshots. See the authentication reference for the request header.

For a first integration, follow the example below. For all request fields, use the Suno API documentation; to test without code, open the Suno playground.

How do I generate my first song with the API?

Start with one music request before building a chain of editing actions. Create an account and get an API key, then check that your prepaid balance covers the request. An API key authenticates the call; it does not itself pay for generation. Check the current Suno price table before running a batch.

Set API_STOCK_KEY in your local environment, then send this simple-mode request:

sh
curl -X POST https://api.api-stock.com/api/v1/generation/create \
-H "Authorization: Bearer $API_STOCK_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno",
"input": {
"action": "music",
"custom": false,
"gptDescriptionPrompt": "Warm acoustic folk with brushed drums and gentle piano for a quiet morning scene",
"makeInstrumental": true
}
}'

The response contains a taskId, not finished audio. Replace YOUR_TASK_ID below with that value and poll until the task reaches a terminal status; do not submit another generation just to check progress.

sh
curl https://api.api-stock.com/api/v1/task/status/YOUR_TASK_ID \
-H "Authorization: Bearer $API_STOCK_KEY"

Read the returned files when generation finishes. For an editing workflow, also keep the track identifiers in output.tracks; the task response reference explains status and error fields. If authentication fails, check the key; if the balance is insufficient, top it up before retrying. Never put a secret API key in browser-side code.

Want to hear a result before integrating? Open the Suno playground, select music, and use a short description. The playground and API use the same prepaid balance. Once this first request works, use the action tables below to choose the next operation.

How is one Suno API model organized?

The catalog currently exposes 32 action choices, including custom-model; the tables below cover the 31 actions with published action tariffs. For reusable model creation, check the separate custom-model reference and estimate before submitting.

Every call goes to POST /api/v1/generation/create with "model": "suno". input.action picks the operation; input.mv chooses an engine version where that action uses one. The endpoint returns a taskId immediately. A completed media task has downloadable files, while text and analysis actions put structured data in output. Task polling and webhooks work the same way as for video and images.

There are two independent choices people often conflate. action chooses the work: compose, extend, split, trim, export or analyze. custom chooses who writes the music prompt for music, extend and cover: simple mode lets Suno decide lyrics from a description; custom mode supplies your own lyrics or detailed prompt. add-vocals and add-instrumental are separate actions, not custom-mode switches. The music generation guide goes deeper on writing styles and lyrics.

Suno API map: one model branches into creating, developing, editing and extracting from a track
Suno API map: one model branches into creating, developing, editing and extracting from a track

Which action should you choose to start from scratch?

These actions need no earlier Suno task, apart from upload, which starts with an externally hosted audio file. Prices below were checked on 5 October 2026 and are per generation or action request, not per minute of audio. They assume Max mode is off. Where supported, maxMode: true doubles the action price: a standard $0.075 music request becomes $0.15. Derived operations are charged separately. See the Suno model page for the current tariff.

ActionChoose it when…Required starting pointPrice
musicYou want a new song or instrumental.Simple description, or custom lyrics/instrumental flag$0.075
soundYou need a sound effect or loop, rather than a full song.prompt; type can be one-shot or loop$0.015
lyricsYou need lyric ideas before recording or generating audio.prompt; result is text in output$0.012
boost-styleYour style tags are too vague and need expansion.tags; result is text in output$0.002
inspoYou have one to four public audio references and want a new song inspired by them.audioUrls with 1–4 URLs$0.102
uploadYou need to import external audio before a later track action.Public audioUrl$0.006

inspo creates a new composition from references; it is not a command to preserve a melody exactly. upload is an import step, not a mastering or conversion operation. Only use audio you have permission to upload and transform. If you simply want a short UI click, select sound instead of paying for a song request.

What is the difference between simple, custom and engine modes?

In simple mode (custom: false or omitted), set gptDescriptionPrompt to a description of up to 3,000 characters. It can include genre, instruments, mood and the subject of the lyrics; the model supplies the words. For a vocal-free bed, use makeInstrumental: true explicitly rather than relying on “no vocals” in prose.

In custom mode (custom: true), put the lyric sheet or detailed generation prompt in prompt, the production direction in tags, and optionally a title. prompt is not the style field: a phrase such as “cinematic synth-pop” belongs in tags. For an instrumental, makeInstrumental: true can satisfy the custom prompt requirement. music, extend and cover implement this switch; other actions have their own fields and rules.

Suno runs on its V6 engines: the audio mv values are v6 (the default), v6-wild, v6-mini and custom. The retired v3.5 … v5.5 values are still accepted and run on v6. Custom prompt allows 5,000 characters and tags 1,000. mv: "custom" needs an inline customModel with a name and 6–24 public training audio URLs; it is trained for that request rather than saved as a reusable model. The separate lyrics action accepts mv: "default" or "remi-v1". The V6 options — variety, maxMode, audioFormat, duration and customModelId — work with any engine except custom; start with the default unless you need a specific one.

sh
curl -X POST https://api.api-stock.com/api/v1/generation/create \
-H "Authorization: Bearer $API_STOCK_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno",
"input": {
"action": "music",
"custom": true,
"mv": "v6",
"title": "Harbour at Dawn",
"tags": "indie folk, brushed drums, warm bass, unhurried vocal",
"prompt": "[Verse]\nThe harbour wakes before the sun\n[Chorus]\nWe sail when morning comes"
}
}'

This is a copyable custom-mode request. For a fast draft, replace its custom fields with "gptDescriptionPrompt": "An unhurried indie folk song about leaving a harbour town at dawn". The per-action music reference lists the conditional rules.

Which actions develop or rearrange an existing track?

Most of these start from one of your own completed Suno tasks. Pass its public taskId as sourceTaskId; when a task produced several tracks, pass the desired audioId from output.tracks[].audioId. Some actions also accept a public audioUrl. A source is tied to the system that produced it, so not every derived action is available for every source; check a small chain before designing a batch workflow.

ActionChoose it when…Important inputPrice
extendA good song ends too soon.Source plus continueAt in seconds$0.075
concatYou need the complete song assembled after an extension.sourceTaskId from a compatible extend result$0.002
coverYou want a new style from an existing song or audio source.Source plus style/content fields$0.075
music-coverYou want an automatic cover of a prior generated track.sourceTaskId; support depends on the source chain$0.075
add-instrumentalYou have vocals and need backing music.A compatible source, usually imported vocal audio$0.075
add-vocalsYou have an instrumental and need a sung part.A compatible source, usually imported instrumental audio$0.075
add-stemYou want to layer another instrument or part.sourceTaskId; simple mode needs gptDescriptionPrompt$0.075
remasterThe arrangement works, but you want a fresh master.sourceTaskId; optional intensity$0.075
mashupYou want a new blend of two earlier tracks.Exactly two sourceTaskIds$0.075
sampleOne passage should seed a new song.sourceTaskId, startS, endS$0.075

The key choice is preserve vs. transform. extend continues a track; concat assembles extension segments. cover changes its presentation, while music-cover automates a cover of a previous generation. sample creates something new from a selected interval; crop below just keeps that interval. remaster revisits production rather than rewriting a time range. For a track you already like, avoid calling music again and hoping it will reproduce it.

Which Suno actions make precise edits?

Use a time range in seconds for operations that edit a portion of a previous track. The API validates endS > startS before queuing the request. This is often more predictable for podcast beds, intros and social cuts than asking a generation prompt to hit an exact duration.

ActionWhat changesRequired fieldsPrice
replace-sectionRegenerates a selected passagesourceTaskId, startS, endS; optional fullLyrics$0.075
remove-sectionDeletes a selected passagesourceTaskId, startS, endS$0.012
cropKeeps only a selected passagesourceTaskId, startS, endS$0.012
fade-inFades in from the startsourceTaskId, durationS$0.012
fade-outFades out toward the endsourceTaskId, durationS$0.012
adjust-speedChanges playback speedsourceTaskId, speed from 0.25 to 4$0.036

Choose replace-section when the content of a verse is wrong, remove-section when it should disappear, and crop when only the selected range should survive. A fade changes the entrance or exit; it does not shorten the track. adjust-speed has a keepPitch option, true by default, for time-fitting work.

How do you extract stems, timing, MIDI or a video?

These are downstream deliverables, not alternate ways of composing a song. They matter when music enters an editor, a game engine, a karaoke app or a publishing pipeline.

ActionDelivered result and when to use itStarting pointPrice
stemsVocal/instrumental separation or a selected stemType; use for a karaoke mix.Compatible audioId or sourceTaskId$0.15
stems-allFull multistem separation; use when the editor needs individual parts.Compatible audioId or sourceTaskId$0.36
wavWAV export for a production workflow.audioId or sourceTaskId$0.002
voxExtracts vocal segments, including persona preparation.sourceTaskId; optional startS/endS$0.002
voiceCreates a reusable voice/persona ID in output.voiceAudioUrl or a prior sourceTaskId$0.024
timestamped-lyricsTimed lyric data for subtitles or karaoke in output.sourceTaskId$0.002
midiMIDI file URL in output for editing notes.sourceTaskId$0.075
bpmDetected tempo as data in output.sourceTaskId$0.002
music-videoA visualizer-style MP4 around the track, not a filmed performance.sourceTaskId; optional aspect and quality$0.002

If you only need the vocal and backing track, start with stems; pay for stems-all when individual instrument groups are necessary. voice has two input routes: audio recordings, or a previous track. The recording-verification route requires verificationAudioUrl, phraseId and name together. A persona from a track requires name; pass the returned persona ID as personaId on a later compatible music request. Do not mistake timestamped-lyrics, midi and bpm for audio files: inspect output on the finished task.

Bar chart of Suno action prices: sound $0.015, music $0.075, stems $0.15 and stems-all $0.36 per request
Bar chart of Suno action prices: sound $0.015, music $0.075, stems $0.15 and stems-all $0.36 per request

How do you chain actions without losing the source track?

Keep the taskId from each create response. When it finishes, record the selected output.tracks[].audioId alongside its file URL. A practical chain is music → listen and choose a track → extend if the song needs another section → concat for the whole arrangement → wav for delivery. For a podcast opener, music → crop → fade-out is usually enough. Each action is billed separately; the example chain costs $0.075 + $0.012 + $0.012 = $0.099 before any retries or alternate takes.

sh
curl -X POST https://api.api-stock.com/api/v1/generation/create \
-H "Authorization: Bearer $API_STOCK_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno",
"input": {
"action": "crop",
"sourceTaskId": "YOUR_FINISHED_SUNO_TASK_ID",
"startS": 8,
"endS": 28
}
}'

Replace the placeholder with a finished task that belongs to your account. To target a specific track when the source has more than one, include its audioId; do not rely on “first track” in a production workflow. Poll GET /api/v1/task/status/{taskId} or send a top-level webhook and read files or output according to the action. The complete Suno action reference lists request fields one by one.

What should I check when a request fails?

SymptomCheck before retrying
Authentication failsUse an active API Stock key in the Bearer header and send it to the API endpoint shown here, not a Suno website URL.
Insufficient balanceCheck the selected action, Max mode and the account balance. Top up before submitting again.
A music prompt is missingSimple mode uses gptDescriptionPrompt; custom mode uses prompt and its action-specific fields.
Editing cannot find the sourceUse a successful task owned by the same account. Keep its taskId and the selected audioId; a file download URL is not a task ID.
The response has no audio yetPoll the existing task. A newly created task is asynchronous; resubmitting creates another paid request.

Check the error reference and the returned error details rather than retrying an unchanged invalid request. A browser playback problem and a failed generation are different cases: inspect the task status before starting again.

FAQ

Where do I get a Suno API key?

For this integration, create a key in your API Stock dashboard and send it in the Bearer header. The key and prepaid balance belong to your API Stock account; a Suno website login is not a substitute.

How much does a Suno API song cost?

The music action is $0.075 per generation through API Stock as of 5 October 2026, with Max mode off. Derived operations have separate prices: extend is $0.075, stems $0.15 and stems-all $0.36. Multiple actions in a workflow add together.

What is the difference between cover and music-cover?

cover accepts a compatible existing audio source plus content or style instructions. music-cover automatically covers a previous generated task. Choose cover when you need to direct the style; availability of either action depends on the source chain.

Can I make instrumental music or sound effects?

Yes. For an instrumental song, use music with makeInstrumental: true; for a one-shot effect or loop, use sound with a descriptive prompt. The actions have different prices and output intent.

Where are lyrics, BPM and MIDI in the task response?

Read the finished task's output for lyrics, timestamped-lyrics, boost-style, bpm and the URL produced by midi. Audio tracks and the visualized music-video use files. See task status docs for the response envelope.

Is this the official Suno API documentation?

This is documentation for accessing Suno through API Stock. It describes the API Stock endpoint, key, billing and task response; it does not claim that the key is issued by Suno.

  • suno
  • music
  • api
  • pricing

Попробуйте со своим ключом

Все модели из статьи доступны в каталоге API Stock — один API-ключ, единый предоплаченный баланс, автоматическое переключение между провайдерами.

Читать дальше