API unduhan dan pratinjau media lagu

Diperbarui 2026-09-18 · tim Suno-API

Deskripsi endpoint

Grup endpoint ini memisahkan "mengambil alamat media" dari "benar-benar mengunduh berkas":

Biaya: Semuanya gratis. Unduhan dan pratinjau hanya membaca media yang sudah dihosting platform; tidak memanggil Suno dan tidak dikenai biaya.

Model yang disarankan: suno-v6. Tersedia suno-v6, suno-v6-wild, dan suno-v6-mini.

Autentikasi

Parameter Tipe Wajib Catatan
Authorization string ya Bearer YOUR_API_KEY (GET /api/music/download juga menerima sesi login)
Content-Type string ya application/json

Tipe media yang didukung (kind)

kind Catatan
song Audio (mp3 adalah aliasnya dan nilai default; di respons selalu ditulis kembali sebagai song)
wav Berkas WAV; siapkan dulu dengan API pembuatan/pengambilan WAV
video Video (mp4 adalah alias)
midi MIDI per stem; hanya berlaku untuk stem yang pemisahannya sudah selesai — lihat API pengambilan MIDI
cover Gambar sampul (image adalah alias)
lyrics Teks lirik (.txt); hanya bisa diambil dengan download-file / GET /api/music/download — download-url tidak mengembalikan alamat lirik
timestamped_lyrics Berkas lirik bertimestamp (.lrc, alias lrc). Saat ini hanya sebagian lagu yang didukung; bila mengembalikan success:false, gunakan API lirik bertimestamp untuk mengambil timeline lalu buat berkasnya sendiri

1) Mendapatkan alamat media

curl -X POST https://www.suno-api.io/api/music/download-url \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "song_id", "kind": "song"}'
{
  "code": 200,
  "message": "success",
  "data": {
    "song_id": "song_id",
    "kind": "song",
    "url": "https://media.suno-api.io/assets/song_id-mp3.mp3",
    "nav_url": "https://media.suno-api.io/assets/song_id-mp3.mp3?...&response-content-disposition=attachment..."
  }
}
Parameter Tipe Wajib Catatan
song_id string ya ID lagu milik Anda sendiri
kind string tidak Lihat tabel di atas; default song
refresh boolean tidak Mengirim true memaksa sumber daya disiapkan ulang (misalnya setelah berkas di CDN ditarik kembali)

url dipakai untuk memutar atau menyalin sendiri; nav_url membawa Content-Disposition: attachment sehingga cocok ditempel langsung ke bilah alamat peramban untuk mengunduh (dipakai saat sebagian peramban seluler tidak mendukung unduhan blob).

⚠️ Masa berlaku alamat: 7 hari — segera salin berkasnya

url / nav_url menunjuk ke penyimpanan objek platform dan kedaluwarsa setelah 7 hari secara default (berkas ditarik kembali dan alamat lama mengembalikan 404). Salin berkasnya ke penyimpanan Anda sendiri dalam 7 hari itu.

Setelah kedaluwarsa tidak perlu membuat ulang lagunya: panggil POST /api/music/download-url lagi (atau kirim refresh: true) untuk mendapatkan alamat baru yang valid bagi lagu tersebut. Grup endpoint ini gratis dan tidak menambah biaya.

2) Mengunduh satu berkas langsung

curl -X POST https://www.suno-api.io/api/music/download-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "song_id", "kind": "song"}' \
  -o song.mp3

Isi respons adalah aliran berkas (bukan JSON) dan Content-Disposition sudah memuat nama berkasnya. Lirik dan lirik bertimestamp hanya bisa diambil lewat endpoint ini (download-url hanya mengembalikan alamat media, bukan lirik). Berkas .lrc saat ini hanya didukung untuk sebagian lagu; bila mengembalikan success:false, buat .lrc sendiri dengan API lirik bertimestamp seperti pada bagian berikut, jangan coba ulang.

Cara mendapatkan lirik bertimestamp (.lrc)

Disarankan dua langkah, berlaku untuk lagu apa pun:

Langkah 1: ambil timeline per kata (gratis)

curl -X POST https://www.suno-api.io/api/lyrics/timeline \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "suno-v6", "song_id": "song_id"}'

Hasilnya langsung berupa array (tanpa pembungkus data); setiap elemen berbentuk {"word": "…", "start_s": 1.117, "end_s": 8.138, "success": true, "p_align": 0.99}. word sudah memuat baris baru sehingga bisa dipisah per baris; untuk arti setiap kolom, penyaringan bagian instrumental, dan catatan lain, lihat "Kolom" dan "Catatan penggunaan" pada API lirik bertimestamp.

Langkah 2: susun .lrc sendiri dari start_s (format waktu [mm:ss.cc])

def to_lrc(segments):
    lines = []
    for seg in segments:
        text = seg["word"].strip()
        if not text:
            continue
        start = max(0.0, float(seg["start_s"]))
        cs = int(start * 100 + 0.5)
        lines.append(f"[{cs // 6000:02d}:{(cs % 6000) // 100:02d}.{cs % 100:02d}]{text}")
    return "\n".join(lines)

GET /api/music/download?song_id=<id>&kind=lrc juga mengunduh .lrc buatan server secara langsung, tetapi saat ini hanya sebagian lagu yang didukung: bila mengembalikan success:false, buat sendiri seperti di atas — tidak perlu mencoba ulang dan tidak memengaruhi penagihan.

3) Unduhan paket

curl -X POST https://www.suno-api.io/api/music/download-all \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_ids": ["song_id_1", "song_id_2"]}' \
  -o songs.zip

Gunakan song_id (satu) atau song_ids (banyak, maksimal 50 item). Isi respons adalah aliran ZIP.

4) Alamat unduhan stabil

GET /api/music/download?song_id=<id>&kind=<kind> adalah pintu unduhan yang diberikan langsung pada respons lagu. Ia menerima kunci API maupun sesi login, berperilaku sama seperti download-file, dan cocok ditulis tetap di klien atau pemutar pihak ketiga.

5) Pratinjau saat pembuatan

curl -X POST https://www.suno-api.io/api/music/generation-stream-url \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_ids": ["song_id_1", "song_id_2"]}'
{
  "code": 200,
  "message": "success",
  "data": {
    "items": [
      {
        "song_id": "song_id_1",
        "url": "https://media.suno-api.io/assets/song_id_1-mp3.mp3",
        "expires_at": 0,
        "content_type": "audio/mpeg",
        "playable_until_completed": false,
        "mode": "mp3",
        "ranges": true
      }
    ]
  }
}
Parameter Tipe Wajib Catatan
song_id string tidak Satu ID lagu
song_ids string[] tidak Banyak, maksimal 24 item (batas jumlah stem dalam satu batch pemisahan otomatis)

playable_until_completed bernilai true berarti ini alamat pratinjau sementara untuk lagu yang sedang dibuat; setelah lagu selesai, beralihlah ke alamat permanen. Jika satu lagu gagal, item itu membawa kolom error dan lagu lain tetap dikembalikan seperti biasa.

Catatan

BerikutnyaAPI unduhan Free2

Dapatkan kunci API

Buat kunci API di konsol setelah mendaftar. Setiap pembuatan berbiaya 0,6 ¥ dan menghasilkan 2 lagu, unduhan tidak terbatas, dan nomor telepon tidak diperlukan.

Ambil kunci API Kembali ke ringkasan