API de certificat de licență comercială muzicală

Actualizat pe 2026-09-18 · echipa Suno-API

Descrierea endpoint-ului

Endpoint-urile de certificat de licență comercială muzicală permit listarea melodiilor pe care utilizatorul cheii API curente le poate licenția, generarea unui certificat PDF, consultarea istoricului certificatelor și descărcarea fișierelor emise.

Toate endpoint-urile folosesc uniform New API Key:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Adresă de bază:

https://www.suno-api.io

Condiții preliminare

0. Eligibilitate și identitate de licențiere

Înainte de a emite un certificat trebuie verificată eligibilitatea și legată identitatea. Ambele endpoint-uri sunt gratuite.

0.1 Verificarea eligibilității și identității

Endpoint: GET /api/music/authorization/context

{
  "code": 200,
  "message": "success",
  "data": {
    "identity": {
      "exists": false
    },
    "eligibility": {
      "current_amount": 216.3,
      "personal_required_amount": 200,
      "company_required_amount": 500,
      "personal_eligible": true,
      "company_eligible": false
    },
    "stats": {
      "authorized_song_count": 0,
      "certificate_count": 0
    }
  }
}
Câmp Tip Observații
identity.exists boolean Dacă identitatea de licențiere este deja legată; când este true, se returnează informațiile de identitate mascate
eligibility.current_amount number Suma cumulată de reîncărcări în acest moment (yuan)
eligibility.personal_required_amount number Pragul de reîncărcare cumulată cerut pentru licența individuală
eligibility.company_required_amount number Pragul de reîncărcare cumulată cerut pentru licența de companie
eligibility.personal_eligible / company_eligible boolean Dacă eligibilitatea corespunzătoare este îndeplinită acum
stats.authorized_song_count / certificate_count number Numărul de melodii licențiate și de certificate emise

0.2 Legarea identității de licențiere

Endpoint: POST /api/music/authorization/identity

{
  "identity_type": "personal",
  "legal_name": "Ion Popescu",
  "id_number": "110101199001010000",
  "contact_name": "Ion Popescu",
  "phone": "13800000000",
  "email": "user@example.com",
  "address": "Str. Unirii 12, București",
  "confirm_locked": true
}
Parametru Tip Obligatoriu Observații
identity_type string da personal sau company
legal_name string da Numele persoanei
id_number string da Numărul actului de identitate (stocat criptat pe server; endpoint-urile obișnuite returnează doar rezultatul mascat)
company_name string obligatoriu pentru companii Numele companiei
credit_code string obligatoriu pentru companii Codul de credit social unificat
contact_name string da Persoana de contact
phone string da Telefonul de contact
email string da E-mailul de contact
address string nu Adresa de contact
confirm_locked boolean da Confirmă blocarea informațiilor de identitate; trimiterea true înseamnă că accepți să nu le poți modifica singur după legare

Răspunsul returnează informațiile de identitate mascate: {"identity": {...}}. După o legare reușită, confirmă cu endpoint-ul context că identity.exists a devenit true, apoi apelează lista de melodii și endpoint-urile de emitere. Dacă informațiile de identitate trebuie modificate, contactează serviciul clienți.

1. Listarea melodiilor licențiabile

Endpoint: GET /api/music/authorization/songs

Parametri de query

Parametru Tip Obligatoriu Implicit Observații
p number nu 1 Numărul paginii
page_size number nu valoarea implicită a sistemului Elemente pe pagină, maximum 100
q string nu - Caută după titlu, prompt sau Suno Song ID exact
status string nu all all, selectable, authorized sau unavailable

Exemplu de cerere

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

Exemplu de răspuns

{
  "success": true,
  "message": "",
  "data": {
    "page": 1,
    "page_size": 20,
    "total": 1,
    "items": [
      {
        "task_id": 10001,
        "suno_song_id": "suno-song-id-1",
        "title": "Melodie exemplu",
        "generation_type": "generate",
        "completed_at": 1784000000,
        "created_at": 1783999000,
        "audio_url": "https://example.com/audio.mp3",
        "model_name": "suno-v6",
        "authorization": {
          "selectable": true
        }
      }
    ]
  }
}

Când authorization.selectable=false, răspunsul explică motivul prin reason_code și reason. Melodiile pentru care există deja un certificat returnează și certificate_id și certificate_no.

2. Generarea certificatului

Endpoint: POST /api/music/authorization/certificates

Parametri din body

Parametru Tip Obligatoriu Observații
song_ids string[] da Lista de Suno Song ID reale de licențiat
confirm_risk_terms boolean da Trebuie să fie true, confirmând sfera licenței și termenii de risc

Exemplu de cerere

curl -X POST https://www.suno-api.io/api/music/authorization/certificates \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": ["suno-song-id-1", "suno-song-id-2"],
    "confirm_risk_terms": true
  }'

Exemplu de răspuns

{
  "success": true,
  "message": "",
  "data": {
    "certificate": {
      "id": 101,
      "certificate_no": "CERTIFICATE-NO",
      "verification_code": "VERIFY-CODE",
      "status": "issued",
      "song_count": 2,
      "identity_type_snapshot": "personal",
      "licensee_name_masked": "I*",
      "document_no_masked_snapshot": "11**************34",
      "phone_masked_snapshot": "138****0000",
      "pdf_sha256": "PDF_SHA256",
      "issued_at": 1784000100,
      "created_at": 1784000000,
      "updated_at": 1784000100,
      "download_url": "/api/music/authorization/certificates/101/download",
      "songs": []
    }
  }
}

Într-un răspuns reușit, status este issued. Dacă redarea PDF eșuează, certificatul este marcat failed, iar melodiile respective pot fi trimise din nou după remedierea problemei.

3. Consultarea istoricului certificatelor

Endpoint: GET /api/music/authorization/certificates

Parametri de query

Parametru Tip Obligatoriu Implicit Observații
p number nu 1 Numărul paginii
page_size number nu valoarea implicită a sistemului Elemente pe pagină, maximum 100
q string nu - Caută după numărul certificatului sau numele mascat al licențiatului

Exemplu de cerere

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

Structura răspunsului

data din răspuns este un obiect paginat cu page, page_size, total și items. Fiecare intrare din items este un rezumat de certificat și include instantaneul de melodii al acelui certificat.

4. Consultarea detaliilor certificatului

Endpoint: GET /api/music/authorization/certificates/:id

Parametrul de cale id este ID-ul numeric al certificatului. Endpoint-ul permite accesul doar la certificatele utilizatorului cheii API curente.

Exemplu de cerere

curl https://www.suno-api.io/api/music/authorization/certificates/101 \
  -H "Authorization: Bearer YOUR_API_KEY"

Structura răspunsului

În caz de succes returnează data.certificate, ale cărui câmpuri includ numărul certificatului, starea, informațiile mascate ale licențiatului, momentul emiterii, suma de control a PDF-ului, adresa de descărcare și instantaneul melodiilor licențiate.

5. Descărcarea PDF-ului certificatului

Endpoint: GET /api/music/authorization/certificates/:id/download

Pot fi descărcate doar certificatele cu starea issued. Cererea de descărcare necesită în continuare o cheie API validă și poți descărca doar propriile certificate.

Exemplu de cerere

curl https://www.suno-api.io/api/music/authorization/certificates/101/download \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --output authorization-certificate.pdf

Un răspuns reușit este un flux de fișier application/pdf; numele fișierului urmează Content-Disposition al backend-ului.

Cause frecvente de eșec

Situație Gestionare sugerată
Cheia API este invalidă sau lipsește Verifică antetul Authorization: Bearer YOUR_API_KEY
Identitatea de licențiere nu este încă legată Finalizează mai întâi legarea identității pe pagina de certificate din Create UI
Reîncărcarea cumulată este insuficientă Reîncearcă după atingerea pragului pentru persoană fizică sau companie
Termenii de risc nu au fost confirmați Setează confirm_risk_terms la true
Melodia nu poate fi licențiată Verifică reason_code și reason returnate de lista de melodii
Melodia are deja un certificat Folosește certificate_id returnat pentru a consulta certificatul existent
PDF-ul nu poate fi generat momentan Reîncearcă mai târziu; o înregistrare eșuată nu consumă eligibilitatea melodiei

Note

Obține o cheie API

Creează o cheie API în consolă după înregistrare. Fiecare generare costă 0,6 ¥ și returnează 2 piese, descărcările sunt nelimitate și nu este nevoie de număr de telefon.

Obține cheia API Înapoi la prezentare