GPT-6 Sol & Claude Opus 5.5 are liveGPT-6 Sol at half the price of 5.6 Sol

Suno API: Official Status, API Keys and a Python Example

Suno's own API is invite-only. Here is what still works today.

Kiki, OmniaKey COO8 min read
On this page

As of October 17, 2026, Suno has an official API, but you cannot sign up for it: platform.suno.com offers only a sign-in for existing API accounts, with no public docs, prices or self-serve access, and Suno said in July it is starting with a curated group of partners. Without an invite, two other options work today.

Is there an official Suno API?

Suno markets an API on platform.suno.com, and that one page is the whole public front of it.

platform.suno.com on October 17, 2026: the headline Make music with the Suno API above a sign-in box that reads Sign in to manage your API account
platform.suno.com, October 17, 2026: a sign-in box, with no docs, prices or sign-up.

The headline promises "original songs, covers, and mashups from a single prompt" behind "a simple REST API", and the only action on the page is signing in with the Google account linked to your Suno account or with an emailed code. Its other links are suno.com, Terms and Privacy, and nothing else; /docs and /pricing on the same host return that same sign-in box (checked October 17, 2026). So the API exists, but any docs or prices it has are visible only after you sign in.

What you look forStatus on October 17, 2026
Official API pageSign-in only
Public docsNone published
Price listNone published
Self-serve sign-upNo
How to get inInvite, partner form

The partner call is known from Music Business Worldwide, which reported on July 2, 2026 that Suno's chief product officer, Jack Brody, announced the plans in a LinkedIn post on July 1 and linked an intake form. The form, as that report quotes it, says: "We're beginning to explore a developer API, starting with a curated group of partners." No launch date was announced, and nothing on the platform page, the release notes or Suno's help center adds one.

Enterprise buyers get pointed at sales instead: Suno's Terms say "if you are an enterprise user, you must contact sales to use our Service". The same report notes that Suno "has not released self-serve developer access or published its own API documentation", which matches what the page still shows in October.

Three ways to call Suno from code today

OptionHow it worksWhat to watch
Official partner accessAsk Suno, join the curated groupNo public timeline
Unofficial GitHub wrapperYour Suno cookie on your own serverSuno's Terms, stale code
Third-party API platformOmniaKey key, task create and pollThird-party, not Suno

Official partner access. The intake form Brody linked in July is the only door Suno has shown, and the report describes early access for a curated group of partners rather than general sign-up. On October 17, 2026 the platform page carries only the sign-in box, with no form, waitlist or request-access link, and we found no public link to the form on Suno's own pages. Music Business Worldwide reported no timeline for a wider launch.

The unofficial GitHub wrapper. gcui-art/suno-api is the best-known workaround: 3,259 stars and about 100 open issues on October 17, 2026, with its last commit on March 6, 2026. Its README says the official API "is not yet available" and asks for three things: the cookie of your own Suno account, copied by hand from the browser's network tab; a paid 2Captcha key, because Suno keeps serving hCaptcha challenges; and a real browser driven through Playwright with rebrowser patches. Issue #262, opened December 14, 2025, says the author "lacks the time to maintain it".

Suno's Terms of Service, last revised August 10, 2026 and effective September 3, 2026, ban "any data mining, robots, scraping, or similar data gathering or extraction methods" and also ban obtaining content "through any means not intentionally made available or provided for through the Service". Read both clauses in Suno's Terms before you build a product on a wrapper that drives suno.com with your own cookie. The README itself carries no warning about them; its only legal line is the LGPL-3.0 license.

A third-party API platform. OmniaKey is a third-party API platform, not Suno. It sells API access to Suno v4.5 and Suno v6 through its own asynchronous media API, with a key OmniaKey issues and bills. Its docs list exactly two model IDs, suno-v4.5 and suno-v6, and every request returns one finished, mixed song, where a Suno account shows you two alternatives. That is the option we ran end to end below.

Generate a song in Python

One request creates a job, a second call checks its status, and the finished MP3 arrives as a signed link. Export your key, save the script as suno_song.py, and run it; the script polls every 5 seconds on status, because progress.percent is best-effort and can sit at 0 while the job runs.

bash
export OMNIAKEY_API_KEY="your-key"
python3 suno_song.py
python
import os
import time
import uuid

import requests

API = "https://api.omniakey.com/v1/media/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['OMNIAKEY_API_KEY']}"}

# 1. Create the job. Reuse the same Idempotency-Key only when retrying this exact request.
job = requests.post(
    API,
    headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
    json={
        "model": "suno-v4.5",
        "type": "audio",
        "operation": "generate",
        "input": {"prompt": "calm lo-fi beat for late-night coding, soft piano, vinyl crackle"},
        "parameters": {"title": "Late Build", "instrumental": True},
    },
    timeout=30,
)
job.raise_for_status()
task = job.json()
print("task:", task["id"], task["status"])

# 2. Poll on status, not on progress.percent, until the job finishes.
while task["status"] in ("queued", "processing"):
    time.sleep(5)
    task = requests.get(f"{API}/{task['id']}", headers=HEADERS, timeout=30).json()

if task["status"] != "succeeded":
    raise SystemExit(f"job ended {task['status']}: {task.get('error')}")

# 3. Download the MP3 now: the signed URL expires in about an hour.
asset = task["assets"][0]
with open("late-build.mp3", "wb") as f:
    f.write(requests.get(asset["url"], timeout=120).content)
print("saved late-build.mp3", asset["byte_size"], "bytes")

We ran that exact script on October 17, 2026 and it printed two lines:

text
task: task_VDvzdpfABcqDOIpo9I1p7CXHg99elSuK queued
saved late-build.mp3 3506516 bytes

Start to saved file took 82 seconds. The file is a 48 kHz stereo MP3 of about 161 kbps, 2:55 long, 3.5 MB, and instrumental because the script sets instrumental to true.

To compare the two models in both input modes, we also made four songs through OmniaKey's API on October 17, 2026, from 13:03 UTC, polling every 4 seconds.

Four waveforms, one per song we generated: suno-v4.5 and suno-v6 from a description, then both models from the same eight lines of lyrics, each row labelled with model, mode and ready-in time
The four songs as waveforms; bar length is song length, labels give model, mode and ready-in time.
ModelModeReady inLength
v4.5prompt105 s3:23
v6prompt92 s3:07
v4.5own lyrics70 s1:03
v6own lyrics86 s0:45

All four finished on the first try, and each request returned one MP3. A description produced a full song of roughly three minutes; the same style with eight lines of our own lyrics came back at 45 to 63 seconds, so expect a short track when you write your own words. Bitrates ranged from 151 to 195 kbps at 48 kHz stereo, and the signed download links expired about an hour after each job was created.

Parameters and limits

FieldWhat it does
input.promptThe description of the song you want
input.lyricsYour own words; a non-empty value switches modes
parameters.style / parameters.tagsThe style when you supply lyrics
parameters.titleThe song title
parameters.instrumentaltrue drops the vocal
parameters.mvPins a v4.5 version: chirp-v4-5, chirp-v4, chirp-v3-5, chirp-bluejay
parameters.nNumber of songs; must be 1
  • A non-empty input.lyrics switches to custom lyrics mode, where input.prompt, parameters.style or parameters.tags describes the style instead; a task with neither prompt nor lyrics is rejected.
  • suno-v6 is picked by the model ID and needs no mv, while mv only applies to v4.5.
  • Only generate is served. Extend, standalone lyrics and speech synthesis fail with 503 no_available_channel, and the pre-charge comes back.
  • One request is one finished song, so parameters.n must be 1.
  • Asset links are signed and short-lived, about an hour, and task records are kept for 24 hours after creation.

Errors and refunds

CodeWhat it meansWhat to do
400 invalid_requestMalformed body, or neither prompt nor lyricsFix the body, use a new Idempotency-Key
400 model_price_errorNo price set for this model and operationCheck the Dashboard or the model page
403 model_not_allowedYour key or group does not include the modelCheck the key's model access
400 missing_idempotency_keyNo Idempotency-Key headerAdd one unique key per job
409 idempotency_key_reusedSame key, different bodyRestore the original body or use a new key
404 task_not_foundUnknown task IDCheck the ID and retention window
409 task_state_conflictThe job cannot move to that stateRead the task's current status
503 no_available_channelNo channel serves the model or operation nowUse generate, or try later
provider_submit_uncertainOperation not served, or parameters rejected before sendingRead error.message; the charge is refunded
provider_failedThe provider rejected the job or it timed out in its queueRead error.message; the charge is refunded

A job that fails, is cancelled or never reaches the provider is refunded automatically, and a cancelled task that still finishes is charged for the state it ends in. Replaying the same idempotency key with the same body returns the original task with a 200 instead of creating a second job, so a retry after a timeout charges once. That makes the recovery steps short: if creation times out, resend the identical body and key; once you hold a task ID, keep polling it.

Common questions

Is there a free Suno API?

Suno publishes no free API tier on platform.suno.com. The free plans live in the suno.com app: v6-mini is open to everyone, and the v4.5-all variant has been free since October 21, 2025. Output made on the free tier is for personal, non-commercial use only.

Can I use songs from a Suno API commercially?

Suno's Terms assign the Output to Pro and Premier subscribers, and they allow commercial use only for Output "downloaded by you through an approved channel". Output from the free tier stays non-commercial, and remixes are personal-use only whatever your plan. Songs from a third-party API are no exception, so read Suno's Terms before you put a generated song in a paid product.

How long does one song take?

The audio docs put a generation at twenty seconds to two minutes. Our four jobs took 70 to 105 seconds, and the script run took 82 seconds from start to saved file.

Should I use v4.5 or v6?

Suno announced the v6 family on September 9, 2026 and v4.5 on May 1, 2025. v6 is chosen by the model ID alone, while v4.5 takes parameters.mv to pin a version, and OmniaKey's suno-v4.5 ID does not say which v4.5 variant it maps to. Suno calls v6 its flagship model, so start with Suno v6 unless you need to pin an older v4.5 version.

How do I get a Suno API key?

If you already have an API account, sign in at platform.suno.com with the Google account linked to your Suno account or with an emailed code. Without an account, the July partner form was the only public door, and it is not on the page today. A third-party platform such as OmniaKey issues its own key, separate from any Suno login.

Suno APISuno v6Suno v4.5music generation APIPython

Related articles

Recent posts