API för låtfrågor och historik

Uppdaterad 2026-09-18 · Suno-API-teamet

Den här sidan täcker tre kostnadsfria frågeändpunkter:

Förmåga Metod Ändpunkt
Fråga efter en låts status och resultat POST /api/music/query
Fråga efter de låtar det aktuella kontot har skapat GET /api/music/songs
Fråga efter de parametrar som sparades när en låt skapades GET /api/music/songs/:song_id

Om du använde kvittoläge för mottagande (accept_mode=async) på en genereringsändpunkt har du ett kvittonummer i handen, inte ett låt-ID. Följ framstegen med GET /api/music/requests/{request_id} och kom tillbaka till ändpunkterna på den här sidan när du har det riktiga song_id. Se "Kvittoläge för mottagande" i Genererings-API i enkelt läge.

Autentisering och dataomfattning

Alla tre ändpunkter autentiserar med samma API-nyckel:

Authorization: Bearer YOUR_API_KEY

Låthistoriken är isolerad per det user_id som API-nyckeln tillhör. Flera nycklar skapade under samma huvudkonto kan läsa det kontots historik, men inte en annan användares eller ett undersajtkontos låtar.

Historikändpunkterna returnerar bara verkligt genererade låtar. Uteslutna är:


1. Fråga efter genereringsstatus

Slår upp aktuell status och slutresultat för ett eller flera låt-ID:n.

Ändpunkt: POST /api/music/query

Fakturering: Gratis.

Headers

Parameter Typ Krävs Anmärkningar
Authorization string ja Bearer YOUR_API_KEY
Content-Type string ja application/json

Brödtextparametrar

Parameter Typ Krävs Standard Anmärkningar
model string nej suno-v6 Modellversion
song_ids string ja - Låt-ID:n, kommaseparerade

Exempelbegäran

curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "song_ids": "clip_id_1,clip_id_2"
  }'

Exempelsvar

[
  {
    "song_id": "clip_id_1",
    "song_title": "Låtens titel",
    "status": "completed",
    "audio_url": "https://example.com/audio.mp3",
    "video_url": "https://example.com/video.mp4",
    "cover_url": "https://example.com/cover.jpg",
    "lyrics": "Låttext",
    "style_tags": "Mandopop, acoustic",
    "duration": 180.5,
    "model_version": "suno-v6",
    "created_at": "2026-05-21T10:00:00Z"
  }
]

Kompatibilitetsnoter

Äldre dokumentation kan visa song_ids som en array. Numera rekommenderas en kommaseparerad sträng, vilket motsvarar hur ändpunkten faktiskt anropas.

song_ids måste innehålla riktiga låt-ID:n. Ett platshållar-ID som börjar med pending: är inte ett slutligt song_id och kan inte användas här; att bara fråga efter platshållar-ID:n kan ge en tom array [].

model, model_version eller plattformens model_name i ett svar kan behålla historiska värden. Nya uppgifter bör använda suno-v6, suno-v6-wild eller suno-v6-mini; från suno-v2 till suno-v5-5 är avvecklade, och att se de namnen i historiken betyder inte att modellen fortfarande kan skickas in.

Så länge en uppgift är pending, submitted eller processing kan audio_url, video_url och cover_url vara tomma — det är normalt för en oavslutad uppgift. Dra inte slutsatsen att något misslyckats bara för att adressen är tom; använd status och fråga igen när statusen är klar. Först när statusen är klar och adresserna fortfarande är tomma bör du kontakta supporten med song_id.

⚠️ Ljudadresser lever i 7 dagar — flytta dina filer i tid

audio_url, video_url (och andra mediaadresser som WAV) som returneras här serveras från plattformens objektlagring och upphör som standard efter 7 dagar: filerna återvinns och den gamla adressen ger 404.

  • Flytta filerna till din egen lagring inom dessa 7 dagar; behandla inte adressen som en långvarig länk.
  • En utgången adress kräver inte att låten genereras om och debiteras inte igen: anropa den här ändpunkten (POST /api/music/query) igen för att få en färsk giltig adress för låten.

2. Fråga efter kontots låthistorik

Listar de låtar som huvudkontot bakom den aktuella API-nyckeln har skapat. Användbart för en egen låtlista, väljare eller historiksida.

Ändpunkt: GET /api/music/songs

Fakturering: Gratis.

Frågeparametrar

Parameter Typ Krävs Standard Anmärkningar
p integer nej 1 Sidnummer, från 1
page_size integer nej 20 Poster per sida, högst 100
q string nej - Luddig sökning på titel, eller exakt sökning på fullständigt låt-ID
status string nej - Exakt statusfilter, till exempel completed, playable

Resultaten sorteras fallande efter created_at och internt post-ID, så sidordningen förblir stabil.

Hitta en inskickning som fick timeout: genereringsändpunkter ger inget mellansvar före mottagandet. Om din klient fick timeout eller anslutningen bröts vid inskickningen kan ordern redan vara mottagen och genereras. Titta på den här ändpunkten (nyaste först): mottagna låtar dyker upp normalt i listan. Skicka bara in igen efter att du bekräftat att den verkligen saknas, så att du inte betalar två gånger. Se "Väntetider och timeout-inställningar" i Översikt över det nya API:t.

Exempelbegäran

curl "https://www.suno-api.io/api/music/songs?p=1&page_size=20&status=completed" \
  -H "Authorization: Bearer YOUR_API_KEY"

Exempelsvar

{
  "success": true,
  "message": "",
  "data": {
    "page": 1,
    "page_size": 20,
    "total": 42,
    "items": [
      {
        "song_id": "8e31b3c0-example-song-id",
        "title": "Staden i natten",
        "status": "completed",
        "generation_type": "custom_generate",
        "model": "suno-v6",
        "duration": 187.42,
        "audio_url": "https://example.com/audio.mp3",
        "image_url": "https://example.com/cover.jpg",
        "created_at": 1784000000,
        "completed_at": 1784000120
      }
    ]
  }
}

Svarfält

Fält Typ Anmärkningar
song_id string Riktigt låt-ID, användbart i detaljfrågan
title string Aktuell titel, som användaren kan ha bytt namn på
status string Aktuell status
generation_type string Genereringstyp
model string Genereringsmodell
duration number Ljudlängd i sekunder
audio_url string Ljudadress; kan vara tom medan uppgiften inte är klar
image_url string Omslagsadress; kan vara tom
created_at integer Skapandetid, Unix-tidsstämpel i sekunder
completed_at integer Sluttid, Unix-tidsstämpel i sekunder; kan saknas medan uppgiften inte är klar

Liständpunkten returnerar inte prompts, faktureringsfält, kontoinformation eller råa svar. För prompts och genereringsparametrar, anropa låtens detaljändpunkt.


3. Fråga efter genereringsparametrar

Slår upp den prompt, stil, modell och källåt som plattformen sparade när låten skapades.

Ändpunkt: GET /api/music/songs/:song_id

Fakturering: Gratis.

Endast låtar som tillhör huvudkontot bakom den aktuella API-nyckeln kan läsas. Låtar från andra användare eller undersajtkonton behandlas enhetligt som "låten hittades inte".

Sökvägsparameter

Parameter Typ Krävs Anmärkningar
song_id string ja Riktigt låt-ID

Exempelbegäran

curl "https://www.suno-api.io/api/music/songs/8e31b3c0-example-song-id" \
  -H "Authorization: Bearer YOUR_API_KEY"

Exempelsvar

{
  "success": true,
  "message": "",
  "data": {
    "song_id": "8e31b3c0-example-song-id",
    "title": "Staden i natten",
    "status": "completed",
    "generation_type": "custom_generate",
    "model": "suno-v6",
    "duration": 187.42,
    "audio_url": "https://example.com/audio.mp3",
    "image_url": "https://example.com/cover.jpg",
    "video_url": "",
    "wav_url": "",
    "created_at": 1784000000,
    "completed_at": 1784000120,
    "client_request_id": "example-request-id",
    "client_request_index": 0,
    "parameters": {
      "prompt": "stadsgator efter regn, text om ett återseende",
      "style_tags": "Mandopop, acoustic, warm vocal",
      "title": "Staden i natten",
      "model": "suno-v6",
      "generation_type": "custom_generate",
      "source_song_id": "",
      "source_audio_url": "",
      "custom_mode": null,
      "instrumental": null,
      "negative_tags": null,
      "vocal_gender": null,
      "lyrics_mode": null,
      "wait_audio": null,
      "style_weight": null,
      "weirdness_constraint": null
    },
    "parameter_retention": {
      "core_parameters_available": true,
      "extended_parameters_available": false,
      "sources": [
        "suno_tasks"
      ],
      "unavailable_fields": [
        "custom_mode",
        "instrumental",
        "negative_tags",
        "vocal_gender",
        "lyrics_mode",
        "wait_audio",
        "style_weight",
        "weirdness_constraint"
      ]
    }
  }
}

Fälten i parameters

Fält Typ Anmärkningar
prompt string Genereringsprompt eller låttext
style_tags string Stiltaggar
title string Sparad genereringstitel; en vanlig historisk uppgift kan bara ha kvar aktuell titel
model string Genereringsmodell
generation_type string Genereringstyp
source_song_id string Källåtens ID vid cover-, förlängnings- och liknande uppgifter
source_audio_url string Adress till källjudet
custom_mode boolean/null Om anpassat läge användes; null när det inte sparades
instrumental boolean/null Om låten är instrumentell; befintliga historiska data sparar oftast inte detta separat
negative_tags string/null Uteslutna stilar
vocal_gender string/null Inställning för sångröstens kön
lyrics_mode string/null Textläge; befintliga historiska data sparar oftast inte det
wait_audio boolean/null Om fullt ljud väntades in; befintliga historiska data sparar oftast inte det
style_weight number/null Stilvikt
weirdness_constraint number/null Parameter för kreativitet / märklighet

Fältet prompt_view (visa prompt, tillagt 2026-09-28)

prompt_view är en normaliserad struktur särskilt för "visa prompt": den ordnar data i fasta avsnitt per genereringstyp, så klienten inte längre behöver avgöra vilket fält som ska visas. Det är ett rent additivt fält — de gamla fälten (parameters, parameter_retention) behåller namn och betydelse, och klienter som inte tolkar det nya fältet påverkas inte alls.

"prompt_view": {
  "type": "custom_generate",
  "type_label": "Anpassat läge",
  "generation": {
    "model": "suno-v6", "max_mode": false, "duration": 182.4,
    "title": "Klockan fyra på morgonen#701f37", "title_base": "Klockan fyra på morgonen", "title_suffix": "701f37",
    "created_at": 1790421721
  },
  "inputs": {
    "user_text": "...", "user_text_kind": "lyrics",
    "user_style": "guochao-elektronik, djup subbas, retrosynth",
    "style_tags": "guochao-elektronik, djup subbas, retrosynth",
    "style_source": "user", "lyrics": "...",
    "negative_tags": "", "is_instrumental": false
  },
  "extended": {
    "vocal_gender": "m", "style_weight": 0.5, "audio_weight": 0.85,
    "weirdness_constraint": 0.5, "variety": 2, "lyrics_mode": "manual",
    "custom_mode": true
  },
  "reference": { "voice_name": "sv_40_34", "source_song_id": "", "source_title": "" },
  "retention": {
    "recorded_since": "2026-09-28", "missing_reason": "",
    "not_applicable_fields": ["audio_weight"]
  }
}
Fält Typ Anmärkningar
type / type_label string Rå genereringstyp / visad etikett (enkel generering, anpassat läge, ljudeffektläge, generering med klonad röst…)
generation.model string Använd modell
generation.max_mode bool Om Max Mode var på
generation.duration number Ljudlängd i sekunder
generation.title string Titel precis som sparad (kan innehålla suffix)
generation.title_base string Visad titel utan suffixet #xxxxxx i slutet
generation.title_suffix string Själva suffixet (utan #); tomt när det saknas
inputs.user_text string Användarens inmatning (beskrivning eller text, beroende på typ)
inputs.user_text_kind string lyrics / description / cover_requirements
inputs.user_style string Stilen som användaren själv skrev (anpassat läge, röst, ljudeffekter)
inputs.style_tags string Stilen som faktiskt tillämpades
inputs.style_source string user = angiven av användaren; suno_derived = härledd av Suno från beskrivningen
inputs.lyrics string Låttext; tom när den saknas, [Instrumental] för instrumentala låtar
inputs.negative_tags string Uteslutna stilar
inputs.is_instrumental bool Om låten är instrumentell
extended.* — Utökade parametrar, se nedan; fält som inte sparades visas inte
reference.voice_name string Röstens namn (endast rösttyper; det interna persona-id:t returneras inte)
reference.source_song_id / source_title string Källåt vid cover-, förlängnings- och liknande uppgifter
retention.recorded_since string Datum från vilket utökade parametrar sparas (2026-09-28)
retention.missing_reason string Varför utökade parametrar saknas; historiska data ger not_recorded_before_20260928
retention.not_applicable_fields string[] Parametrar som den genereringstypen aldrig behövde (visa dem inte som "saknade parametrar")

Fält som kan förekomma i extended: vocal_gender, style_weight, audio_weight, weirdness_constraint, variety, lyrics_mode, custom_mode samt gruppen för ljudeffekter sound_type / sound_bpm / sound_key / sound_loop. Tomma värden returneras aldrig.

Tre visningsregler (följ dem i stället för att gissa):

  1. Skilj på var stilen kommer från: vid style_source=suno_derived, visa "stil (härledd av Suno från din beskrivning)" och aldrig "din stil";
  2. Interna prompts visas aldrig: röstcover-typer returnerar bara de 【stilkrav】/【coverkrav】 användaren skrev; den fasta stomme vi sätter ihop för modellen visas inte i något fält (historiska data är rensade på samma sätt);
  3. Gissa inte saknade parametrar: finns det inte i extended registrerades det inte då — förklara varför med retention.

Noter om parametersparande

parameter_retention skiljer på "ett tomt värde skickades uttryckligen" och "fältet sparades aldrig historiskt":

Vanliga historiska låtar sparade oftast prompt, stil, aktuell titel, modell, genereringstyp och källåt, men sparade inte alla avancerade parametrar separat. Plattformen gissar aldrig saknade värden utifrån generation_type.

Vissa utökade musikuppgifter sparade också den ursprungliga prompten, stilen, titeln, modellen samt custom_mode, negative_tags, vocal_gender, style_weight och weirdness_constraint. Även när en utökad post finns kan instrumental, lyrics_mode och wait_audio förbli omöjliga att återskapa.

Titlar kan bytas av användaren i efterhand. När en vanlig historisk uppgift inte sparade en separat ursprunglig titel kan parameters.title vara den aktuella titeln; finns en utökad uppgiftspost prioriteras den ursprungliga genereringstiteln som sparades där.

Hittades inte eller ingen behörighet

Affärsfel använder ett enhetligt svarskuvert. När låten inte finns eller inte tillhör det aktuella kontot:

{
  "success": false,
  "message": "song not found"
}

Detta affärsfel returneras för närvarande med HTTP 200, så bedöm resultatet utifrån fältet success. En saknad, ogiltig, utgången eller inaktiverad API-nyckel returnerar HTTP 401.

Säkerhetsnoter

Historik- och detaljändpunkterna returnerar aldrig:

NästaAPI för tidsstämplad låttext

Skaffa en API-nyckel

Skapa en API-nyckel i konsolen efter registreringen. Varje generering kostar 0,6 ¥ och returnerar 2 spår, nedladdningar är obegränsade och inget telefonnummer krävs.

Hämta API-nyckel Tillbaka till översikten