suno-api
Suno skapar musik från en kort skriven idé. Det dokumenterade automatiska arbetsflödet producerar två låtar och innehåller ett val för instrumental musik, med färdigt ljud och spårmetadata som returneras via genereringsuppgiften.
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
Suno är en musikgenereringstjänst som omvandlar en skriven idé till låtar. Det dokumenterade automatiska arbetsflödet tar emot en kort beskrivning av den avsedda musiken och ett val för instrumental musik och genererar sedan två låtar. Använd beskrivningen för att fastställa temat, stämningen och den musikaliska inriktning du vill höra i de färdiga spåren.
Börja med den roll musiken ska ha. En lugn bakgrund till en förklaring, en energisk inledning till en kort video eller en eftertänksam låt om en resa ger var för sig beskrivningen ett konkret syfte. Beskriv den avsedda stämningen och de musikaliska egenskaper som har betydelse för syftet i några få tydliga fraser.
För en låt med sång ska du göra temat och språket tydliga i den kreativa beskrivningen. Beskriv den idé som spåret ska uttrycka och den ton som framförandet ska förmedla. Lyssna på det färdiga resultatet för att bedöma hur sången, orden och arrangemanget fungerar tillsammans. Spara den genererade spårinformationen tillsammans med ljudet för granskning.
För ett instrumentalt resultat ska du använda det dokumenterade instrumentalvalet och beskriva den musikaliska inriktningen i texten. Ange önskad atmosfär och framträdande instrument när de har betydelse för projektet. Granska det färdiga spåret utifrån den plats det ska ha i klippningen, inklusive de avsnitt som behöver ligga under tal eller stödja en visuell övergång.
Det automatiska arbetsflödet producerar två låtar från den inskickade idén. Behandla dem som separata förslag och spara båda de färdiga ljudfilerna. Lyssna på varje låts inledning, utveckling och avslutning. Jämför de faktiska spåren mot samma syfte, inklusive deras stämning, arrangemang och lämplighet för den planerade användningen.
Genereringen är organiserad som en uppgift. Behåll det returnerade uppgifts-ID:t medan du kontrollerar resultatet och skilj färdiga spår från sådana som fortfarande håller på att genereras. Det dokumenterade resultatet innehåller information på spårnivå, till exempel titel, status, ljudfilens plats och längd. Spara själva det färdiga ljudet med tillgängliga metadata och den ursprungliga beskrivningen.
För en video eller presentation ska du provlyssna på den valda musiken tillsammans med det faktiska materialet. Kontrollera inledning, övergångar och avslutning vid den avsedda ljudnivån. Markera det avsnitt som passar klippningen och behåll hela spåret för senare ändringar. Ett lämpligt musikutdrag bedöms i sitt sammanhang med röst, bilder och tempo i det färdiga verket.
Spara den skrivna idén, instrumentalvalet, modellvalet och alla färdiga spår tillsammans. När ett förslag behöver revideras ska du identifiera den musikaliska avvikelsen, till exempel ett arrangemang som är för tätt under tal eller en inledning som utvecklas för långsamt. Behåll den användbara inriktningen och ändra den del av beskrivningen som hör till problemet.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiStart
Suno skapar musik från en kort skriven idé. Det dokumenterade automatiska arbetsflödet producerar två låtar och innehåller ett val för instrumental musik, med färdigt ljud och spårmetadata som returneras via genereringsuppgiften.
- Godkända indata
- Text
- Resultat
- Ljud · Bilder · Video
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · Music POST /v1/music/generations
- Indatatyper
text- Utdatatyper
audio,image,video
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser suno-api Villkor: Använd exakt denna routningsväljare för Ailoot. | Standard— |
Fältgpt_description_prompt | Typstring | KravObligatoriskt | Värden & gränser Villkor: Beskriv den musikaliska idén eller låtens tema. | Standard— |
Fältmv | Typstring | KravObligatoriskt | Värden & gränser chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Villkor: Välj uttryckligen en dokumenterad Suno-version; exemplet använder chirp-crow (v5). | Standard— |
Fältmake_instrumental | Typboolean | KravObligatoriskt | Värden & gränser Villkor: Ange true för instrumentalmusik eller false för en låt med sång. | Standard— |
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalmodel, gpt_description_prompt, mv, make_instrumental |
Parameteroptional | Avtal |
Parametermaterial_types | Avtaltext |
Parameterconditions | AvtalAnvänd exakt denna routningsväljare för Ailoot., Beskriv den musikaliska idén eller låtens tema., Välj uttryckligen en dokumenterad Suno-version; exemplet använder chirp-crow (v5)., Ange true för instrumentalmusik eller false för en låt med sång. |
Livscykel: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Priser
Så beräknas slutavgiften
De visade priserna används för att uppskatta kostnaden före genereringen. Den slutliga debiteringen beräknas utifrån den kostnad som registrerats för den ursprungliga genereringen. Uppmätt längd på resultatet och uppskattade mängder utgör inte den slutliga debiterbara mängden.
Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.
- Snabbt läge
- Ej angivet När snabbt läge är valt
- Flex-läge
- Ej angivet När läget flex är valt
- Högsta resonemangsnivå
- Ej angivet När den högsta resonemangsnivån använder standardjusteringen (default)
Uppskattade priser för jämförelse
Priser efter konfiguration
Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.
| Konfiguration | Prislista | Prognostiserad mängd | Debiteringsmängd | Avgift |
|---|---|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Prognostiserad mängd— | Debiteringsmängd— | Avgift Indata · Indatatoken · Uppskattning endast för jämförelse — / 1K token Utdata · Utdatatoken · Uppskattning endast för jämförelse — / 1K token Indata · Cacheläsning · Uppskattning endast för jämförelse — / 1K token Indata · Skrivning till cache · Uppskattning endast för jämförelse — / 1K token Indata · Skrivning till cache, 1 tim · Uppskattning endast för jämförelse — / 1K token |
| KonfigurationPer begäran | Prislista— | Prognostiserad mängd— | Debiteringsmängden förfrågan | Avgift Indata · Uppskattning endast för jämförelse $0.2 per begäran |
| KonfigurationUppskattad genereringskostnad | Prislista— | Prognostiserad mängduppskattning för en generering | Debiteringsmängd— | Avgift Utdata · Uppskattad genereringskostnad · Uppskattning endast för jämförelse $0.2 uppskattning före generering Denna uppskattning är varken en extra avgift eller ett fast pris för den slutförda genereringen. |
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
Ailoot Ultra · Music
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "suno-api",
"gpt_description_prompt": "古诗词",
"mv": "chirp-crow",
"make_instrumental": false
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Ta emot och spara resultat
Ailoot Ultra · Music
Ladda ned varje returnerad bild eller spara dess Base64-innehåll
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Behåll alla färdiga resultat
Behåll varje fullständigt returnerat svar, fil och innehållsdel.
Behåll hela svaret och svarshuvudena, ursprungliga identifierare, varje faktiskt resultat och alla förbruknings- och redovisningsfält. Spara varje unik tillgång som du äger och behåll varje roll som pekar på den.
Om det ursprungliga svaret behöver kontrolleras
Behåll det returnerade offentliga uppgifts- eller operations-id:t och samtliga svarshuvuden. Läs endast den ursprungliga uppgiften; unknown eller result_pending_check ger inte tillstånd att skapa på nytt.
Svarsfält
| Fält | Typ |
|---|---|
Fältid | Typstring |
Fältpolling_url | Typstring |
Fältprovider_task_id | Typstring |
Fältdata.task_id | Typstring |
Fältdata.status | Typstring |
Fältdata.data[].audio_url | Typstring |
Fältdata.data[].image_url | Typstring |
Fältdata.data[].image_large_url | Typstring |
Fältdata.data[].video_url | Typstring |
Alias
Modellalias
Ailoot Ultra suno-api
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
FAQ · suno-api
- Vilka indata och resultat finns?
POST /v1/music/generations·suno-api:text→audio,image,video- Vilka fält använder begäran?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental