Руководство
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.

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?
- Create an account and open the API keys page.
- Create a key and store it as
API_STOCK_KEYin your server environment. Send it asAuthorization: Bearer $API_STOCK_KEYto the API Stock API endpoint used below. - 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:
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.
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.

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.
| Action | Choose it when… | Required starting point | Price |
|---|---|---|---|
music | You want a new song or instrumental. | Simple description, or custom lyrics/instrumental flag | $0.075 |
sound | You need a sound effect or loop, rather than a full song. | prompt; type can be one-shot or loop | $0.015 |
lyrics | You need lyric ideas before recording or generating audio. | prompt; result is text in output | $0.012 |
boost-style | Your style tags are too vague and need expansion. | tags; result is text in output | $0.002 |
inspo | You have one to four public audio references and want a new song inspired by them. | audioUrls with 1–4 URLs | $0.102 |
upload | You 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.
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.
| Action | Choose it when… | Important input | Price |
|---|---|---|---|
extend | A good song ends too soon. | Source plus continueAt in seconds | $0.075 |
concat | You need the complete song assembled after an extension. | sourceTaskId from a compatible extend result | $0.002 |
cover | You want a new style from an existing song or audio source. | Source plus style/content fields | $0.075 |
music-cover | You want an automatic cover of a prior generated track. | sourceTaskId; support depends on the source chain | $0.075 |
add-instrumental | You have vocals and need backing music. | A compatible source, usually imported vocal audio | $0.075 |
add-vocals | You have an instrumental and need a sung part. | A compatible source, usually imported instrumental audio | $0.075 |
add-stem | You want to layer another instrument or part. | sourceTaskId; simple mode needs gptDescriptionPrompt | $0.075 |
remaster | The arrangement works, but you want a fresh master. | sourceTaskId; optional intensity | $0.075 |
mashup | You want a new blend of two earlier tracks. | Exactly two sourceTaskIds | $0.075 |
sample | One 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.
| Action | What changes | Required fields | Price |
|---|---|---|---|
replace-section | Regenerates a selected passage | sourceTaskId, startS, endS; optional fullLyrics | $0.075 |
remove-section | Deletes a selected passage | sourceTaskId, startS, endS | $0.012 |
crop | Keeps only a selected passage | sourceTaskId, startS, endS | $0.012 |
fade-in | Fades in from the start | sourceTaskId, durationS | $0.012 |
fade-out | Fades out toward the end | sourceTaskId, durationS | $0.012 |
adjust-speed | Changes playback speed | sourceTaskId, 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.
| Action | Delivered result and when to use it | Starting point | Price |
|---|---|---|---|
stems | Vocal/instrumental separation or a selected stemType; use for a karaoke mix. | Compatible audioId or sourceTaskId | $0.15 |
stems-all | Full multistem separation; use when the editor needs individual parts. | Compatible audioId or sourceTaskId | $0.36 |
wav | WAV export for a production workflow. | audioId or sourceTaskId | $0.002 |
vox | Extracts vocal segments, including persona preparation. | sourceTaskId; optional startS/endS | $0.002 |
voice | Creates a reusable voice/persona ID in output. | voiceAudioUrl or a prior sourceTaskId | $0.024 |
timestamped-lyrics | Timed lyric data for subtitles or karaoke in output. | sourceTaskId | $0.002 |
midi | MIDI file URL in output for editing notes. | sourceTaskId | $0.075 |
bpm | Detected tempo as data in output. | sourceTaskId | $0.002 |
music-video | A 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.

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.
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?
| Symptom | Check before retrying |
|---|---|
| Authentication fails | Use an active API Stock key in the Bearer header and send it to the API endpoint shown here, not a Suno website URL. |
| Insufficient balance | Check the selected action, Max mode and the account balance. Top up before submitting again. |
| A music prompt is missing | Simple mode uses gptDescriptionPrompt; custom mode uses prompt and its action-specific fields. |
| Editing cannot find the source | Use 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 yet | Poll 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-ключ, единый предоплаченный баланс, автоматическое переключение между провайдерами.
Читать дальше
КейсAI music video for your song: models, prompts and costHow to make an AI music video for a song: which model suits which shot, prompts that work, and what three minutes of footage cost, from $2.38.·12 мин чтения
СравнениеVideo generation API pricing: what a usable clip costsCompare video API prices by supported duration, resolution and audio. See a 10-second cost table, a worked production budget and a runnable request.·6 мин чтения
НовостиClaude API pricing after Sonnet 5.5 and Opus 5.5: cost per taskAnthropic released Claude Opus 5.5 and Sonnet 5.5 in late September 2026. What changed, what each Claude model costs per task, and which one to pick.·11 мин чтения