API pertanyaan lagu dan sejarah

Dikemas kini 2026-09-18 · pasukan Suno-API

Halaman ini merangkumi tiga endpoint pertanyaan percuma:

Keupayaan Method Endpoint
Pertanyaan status dan hasil satu lagu POST /api/music/query
Pertanyaan lagu yang telah dijana oleh akaun semasa GET /api/music/songs
Pertanyaan parameter yang disimpan semasa lagu dijana GET /api/music/songs/:song_id

Jika anda menggunakan mod resit penerimaan (accept_mode=async) pada endpoint penjanaan, yang anda pegang ialah nombor resit, bukan ID lagu. Jejaki kemajuan dengan GET /api/music/requests/{request_id} dan kembali ke endpoint di halaman ini sebaik sahaja mendapat song_id sebenar. Lihat "Mod resit penerimaan" dalam API penjanaan mod mudah.

Pengesahan dan skop data

Ketiga-tiga endpoint menggunakan kunci API yang sama:

Authorization: Bearer YOUR_API_KEY

Sejarah lagu diasingkan mengikut user_id pemilik kunci API. Beberapa kunci yang dicipta di bawah akaun utama yang sama boleh membaca sejarah akaun itu, tetapi tidak boleh membaca lagu pengguna lain atau akaun subsitus lain.

Endpoint sejarah hanya mengembalikan lagu yang benar-benar dijana. Tidak termasuk:


1. Pertanyaan status penjanaan

Mencari status semasa dan hasil akhir bagi satu atau beberapa ID lagu.

Endpoint: POST /api/music/query

Pengebilan: Percuma.

Headers

Parameter Jenis Wajib Nota
Authorization string ya Bearer YOUR_API_KEY
Content-Type string ya application/json

Parameter body

Parameter Jenis Wajib Lalai Nota
model string tidak suno-v6 Versi model
song_ids string ya - ID lagu, dipisahkan dengan koma

Contoh permintaan

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"
  }'

Contoh respons

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

Nota keserasian

Dokumentasi lama mungkin menunjukkan song_ids sebagai tatasusunan. Kini disyorkan rentetan dipisahkan koma, sejajar dengan cara endpoint ini sebenarnya dipanggil.

song_ids mesti mengandungi ID lagu sebenar. ID pemegang tempat yang bermula dengan pending: bukan song_id akhir dan tidak boleh digunakan di sini; membuat pertanyaan hanya dengan ID pemegang tempat boleh mengembalikan tatasusunan kosong [].

model, model_version atau model_name platform dalam respons mungkin kekal nilai sejarah. Tugasan baharu sebaiknya menggunakan suno-v6, suno-v6-wild atau suno-v6-mini; dari suno-v2 hingga suno-v5-5 telah ditarik, dan melihat nama tersebut dalam sejarah bukan bermakna model itu masih boleh dihantar.

Selagi tugasan berada dalam keadaan pending, submitted atau processing, audio_url, video_url dan cover_url mungkin kosong — itu normal bagi tugasan yang belum selesai. Jangan simpulkan kegagalan hanya kerana alamat kosong; gunakan status dan pertanyaan semula apabila status selesai. Hanya apabila status selesai tetapi alamat masih kosong, anda digalakkan menghubungi sokongan dengan menyertakan song_id.

⚠️ Alamat audio hanya bertahan 7 hari — pindahkan fail anda tepat pada masanya

audio_url, video_url (dan alamat media lain seperti WAV) yang dikembalikan di sini disajikan daripada storan objek platform dan luput selepas 7 hari secara lalai: fail dikitar semula dan alamat lama mengembalikan 404.

  • Dalam tempoh 7 hari itu, pindahkan fail ke storan anda sendiri; jangan anggap alamat ini sebagai pautan jangka panjang.
  • Alamat yang telah luput tidak memerlukan penjanaan semula lagu dan tidak dicaj semula: panggil semula endpoint ini (POST /api/music/query) untuk mendapatkan alamat baharu yang masih sah bagi lagu tersebut.

2. Pertanyaan sejarah lagu akaun

Menyenaraikan lagu yang dijana oleh akaun utama pemilik kunci API semasa. Sesuai untuk membina senarai lagu, pemilih atau halaman sejarah anda sendiri.

Endpoint: GET /api/music/songs

Pengebilan: Percuma.

Parameter pertanyaan

Parameter Jenis Wajib Lalai Nota
p integer tidak 1 Nombor halaman, bermula dari 1
page_size integer tidak 20 Item setiap halaman, maksimum 100
q string tidak - Carian kabur mengikut tajuk, atau carian tepat mengikut ID lagu penuh
status string tidak - Penapis status tepat, contohnya completed, playable

Hasil disusun menurun mengikut created_at dan ID rekod dalaman, jadi susunan halaman kekal stabil.

Cara menemui penghantaran yang tamat masa: endpoint penjanaan tidak memberi respons pertengahan sebelum penerimaan. Jika klien anda tamat masa atau sambungan terputus semasa menghantar, pesanan itu mungkin sudah diterima dan sedang dijana. Lihat endpoint ini (terbaharu dahulu): lagu yang telah diterima akan muncul seperti biasa dalam senarai. Hantar semula hanya selepas anda mengesahkan ia benar-benar tiada, supaya tidak membayar dua kali. Lihat "Masa menunggu dan tetapan timeout" dalam Gambaran keseluruhan API baharu.

Contoh permintaan

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

Contoh respons

{
  "success": true,
  "message": "",
  "data": {
    "page": 1,
    "page_size": 20,
    "total": 42,
    "items": [
      {
        "song_id": "8e31b3c0-example-song-id",
        "title": "Bandar pada malam hari",
        "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
      }
    ]
  }
}

Medan respons

Medan Jenis Nota
song_id string ID lagu sebenar, boleh digunakan untuk pertanyaan butiran
title string Tajuk semasa, yang mungkin telah dinamakan semula oleh pengguna
status string Status semasa
generation_type string Jenis penjanaan
model string Model penjanaan
duration number Tempoh audio dalam saat
audio_url string Alamat audio; mungkin kosong selagi belum selesai
image_url string Alamat kulit; mungkin kosong
created_at integer Masa penciptaan, cap masa Unix dalam saat
completed_at integer Masa selesai, cap masa Unix dalam saat; mungkin tiada selagi belum selesai

Endpoint senarai tidak mengembalikan prompt, medan pengebilan, maklumat akaun atau respons mentah. Untuk prompt dan parameter penjanaan, panggil endpoint butiran lagu.


3. Pertanyaan parameter penjanaan

Mencari prompt, gaya, model dan lagu sumber yang disimpan platform semasa lagu dijana.

Endpoint: GET /api/music/songs/:song_id

Pengebilan: Percuma.

Hanya lagu milik akaun utama pemilik kunci API semasa boleh dibaca. Lagu pengguna lain atau akaun subsitus lain sentiasa diperlakukan sebagai "lagu tidak ditemui".

Parameter path

Parameter Jenis Wajib Nota
song_id string ya ID lagu sebenar

Contoh permintaan

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

Contoh respons

{
  "success": true,
  "message": "",
  "data": {
    "song_id": "8e31b3c0-example-song-id",
    "title": "Bandar pada malam hari",
    "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": "jalan bandar selepas hujan, lirik tentang pertemuan semula",
      "style_tags": "Mandopop, acoustic, warm vocal",
      "title": "Bandar pada malam hari",
      "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"
      ]
    }
  }
}

Medan parameters

Medan Jenis Nota
prompt string Prompt penjanaan atau lirik
style_tags string Tag gaya
title string Tajuk penjanaan yang disimpan; tugasan sejarah biasa mungkin hanya menyimpan tajuk semasa
model string Model penjanaan
generation_type string Jenis penjanaan
source_song_id string ID lagu sumber bagi tugasan cover, sambungan dan seumpamanya
source_audio_url string Alamat audio sumber
custom_mode boolean/null Sama ada mod tersuai digunakan; null apabila tidak disimpan
instrumental boolean/null Sama ada lagu instrumental; data sejarah sedia ada biasanya tidak menyimpannya secara berasingan
negative_tags string/null Gaya yang dikecualikan
vocal_gender string/null Tetapan jantina vokal
lyrics_mode string/null Mod lirik; data sejarah sedia ada biasanya tidak menyimpannya
wait_audio boolean/null Sama ada menunggu audio penuh; data sejarah sedia ada biasanya tidak menyimpannya
style_weight number/null Pemberat gaya
weirdness_constraint number/null Parameter kreativiti / keanehan

Medan prompt_view (lihat prompt, ditambah pada 2026-09-28)

prompt_view ialah struktur ternormalisasi khusus untuk "lihat prompt": ia menyusun data kepada bahagian tetap mengikut jenis penjanaan, jadi klien tidak perlu lagi menentukan medan mana untuk dipaparkan. Ia medan tambahan semata-mata — medan lama (parameters, parameter_retention) kekal nama dan makna, dan klien yang tidak menghurai medan baharu tidak terjejas sama sekali.

"prompt_view": {
  "type": "custom_generate",
  "type_label": "Mod tersuai",
  "generation": {
    "model": "suno-v6", "max_mode": false, "duration": 182.4,
    "title": "Pukul empat pagi#701f37", "title_base": "Pukul empat pagi", "title_suffix": "701f37",
    "created_at": 1790421721
  },
  "inputs": {
    "user_text": "...", "user_text_kind": "lyrics",
    "user_style": "elektronik guochao, sub bass dalam, synth retro",
    "style_tags": "elektronik guochao, sub bass dalam, synth retro",
    "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"]
  }
}
Medan Jenis Nota
type / type_label string Jenis penjanaan mentah / label paparan (penjanaan mudah, mod tersuai, mod kesan bunyi, penjanaan dengan suara klon…)
generation.model string Model yang digunakan
generation.max_mode bool Sama ada Max Mode dihidupkan
generation.duration number Tempoh audio (saat)
generation.title string Tajuk seperti disimpan (mungkin mengandungi akhiran)
generation.title_base string Tajuk paparan tanpa akhiran #xxxxxx di hujung
generation.title_suffix string Akhiran itu sendiri (tanpa #); kosong jika tiada
inputs.user_text string Input pengguna (penerangan atau lirik, bergantung pada jenis)
inputs.user_text_kind string lyrics / description / cover_requirements
inputs.user_style string Gaya yang ditaip pengguna sendiri (mod tersuai, suara, kesan bunyi)
inputs.style_tags string Gaya yang akhirnya terpakai
inputs.style_source string user = diisi pengguna; suno_derived = disimpulkan Suno daripada penerangan
inputs.lyrics string Isi lirik; kosong jika tiada, [Instrumental] untuk lagu instrumental
inputs.negative_tags string Gaya yang dikecualikan
inputs.is_instrumental bool Sama ada lagu instrumental
extended.* — Parameter lanjutan, lihat di bawah; medan yang tidak disimpan tidak muncul
reference.voice_name string Nama suara (hanya jenis suara; persona id dalaman tidak dikembalikan)
reference.source_song_id / source_title string Lagu sumber bagi tugasan cover, sambungan dan seumpamanya
retention.recorded_since string Tarikh parameter lanjutan mula disimpan (2026-09-28)
retention.missing_reason string Mengapa tiada parameter lanjutan; data sejarah memberi not_recorded_before_20260928
retention.not_applicable_fields string[] Parameter yang memang tidak pernah diperlukan jenis penjanaan itu (jangan paparkan sebagai "parameter hilang")

Medan yang mungkin muncul dalam extended: vocal_gender, style_weight, audio_weight, weirdness_constraint, variety, lyrics_mode, custom_mode, serta kumpulan kesan bunyi sound_type / sound_bpm / sound_key / sound_loop. Nilai kosong tidak pernah dikembalikan.

Tiga peraturan paparan (ikuti, jangan teka sendiri):

  1. Bezakan asal gaya: apabila style_source=suno_derived, paparkan "gaya (disimpulkan Suno daripada penerangan anda)", jangan tulis "gaya yang anda isi";
  2. Prompt dalaman tidak pernah muncul: jenis cover dengan suara hanya mengembalikan 【keperluan gaya】/【keperluan cover】 yang ditaip pengguna; rangka tetap yang kami susun untuk model tidak muncul dalam mana-mana medan (data sejarah juga telah dibersihkan);
  3. Jangan teka parameter yang tidak disimpan: jika tiada dalam extended, ia tidak direkodkan ketika itu — jelaskan sebabnya melalui retention.

Nota penyimpanan parameter

parameter_retention memisahkan "nilai kosong dihantar secara jelas" daripada "medan tidak pernah disimpan secara sejarah":

Lagu sejarah biasa biasanya menyimpan prompt, gaya, tajuk semasa, model, jenis penjanaan dan lagu sumber, tetapi tidak menyimpan semua parameter lanjutan secara berasingan. Platform tidak pernah meneka nilai yang hilang daripada generation_type.

Sebahagian tugasan muzik lanjutan turut menyimpan prompt asal, gaya, tajuk, model, serta custom_mode, negative_tags, vocal_gender, style_weight dan weirdness_constraint. Walaupun rekod lanjutan wujud, instrumental, lyrics_mode dan wait_audio mungkin kekal tidak dapat dipulihkan.

Tajuk lagu boleh dinamakan semula oleh pengguna kemudian. Apabila tugasan sejarah biasa tidak menyimpan tajuk asal yang berasingan, parameters.title mungkin tajuk semasa; apabila rekod tugasan lanjutan wujud, tajuk penjanaan asal yang disimpan di sana diutamakan.

Tidak ditemui atau tiada kebenaran

Ralat perniagaan menggunakan sampul respons seragam. Apabila lagu tidak wujud atau bukan milik akaun semasa:

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

Ralat perniagaan ini kini dikembalikan dengan HTTP 200, jadi nilai hasil melalui medan success. Kunci API yang hilang, tidak sah, luput atau dilumpuhkan mengembalikan HTTP 401.

Nota keselamatan

Endpoint sejarah dan butiran tidak pernah mengembalikan:

SeterusnyaAPI lirik bertimestamp

Dapatkan kunci API

Cipta kunci API dalam konsol selepas mendaftar. Setiap penjanaan berharga 0.6 ¥ dan mengembalikan 2 lagu, muat turun tanpa had dan nombor telefon tidak diperlukan.

Dapatkan kunci API Kembali ke gambaran