API voor certificaten voor commercieel muziekgebruik
Beschrijving van het endpoint
De endpoints voor certificaten voor commercieel muziekgebruik laten u de nummers opvragen die de gebruiker van de huidige API-sleutel mag licentiëren, een PDF-certificaat genereren, de certificaathistorie opvragen en uitgegeven bestanden downloaden.
Alle endpoints gebruiken uniform de New API Key:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Basisadres:
https://www.suno-api.io
Vereisten
- De API-sleutel moet geldig zijn en toebehoren aan de gebruiker die het certificaat nodig heeft.
- De gebruiker moet eerst de licentie-identiteit koppelen (zie "0. Licentiegeschiktheid en identiteit"); zodra die is bevestigd, wordt de identiteit volgens productregels vergrendeld.
- De gebruiker moet voldoen aan de eis voor cumulatieve opwaardering voor een particulier of een bedrijf.
- Gewone endpoints geven alleen gemaskeerde identiteitsinformatie terug; zij geven nooit id-nummers, telefoonnummers of uniforme sociale kredietcodes in platte tekst terug.
- Per nummer kan slechts één succesvol certificaat worden uitgegeven; een certificaat dat niet kon worden gegenereerd, verbruikt de geschiktheid van het nummer niet.
- Momenteel worden afgeronde aangewezen generatietypen ondersteund die audio en een echte Suno Song ID hebben. Of een nummer selecteerbaar is, bepaalt
authorization.selectablein de nummerlijst.
0. Licentiegeschiktheid en identiteit
Vóór het uitgeven van een certificaat moet u de geschiktheid opvragen en de identiteit koppelen. Beide endpoints zijn gratis.
0.1 Geschiktheid en identiteit opvragen
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
}
}
}
| Veld | Type | Opmerkingen |
|---|---|---|
| identity.exists | boolean | Of de licentie-identiteit al is gekoppeld; bij true komt er gemaskeerde identiteitsinformatie mee |
| eligibility.current_amount | number | Huidig cumulatief opwaarderingsbedrag (yuan) |
| eligibility.personal_required_amount | number | Drempel voor cumulatieve opwaardering voor een particuliere licentie |
| eligibility.company_required_amount | number | Drempel voor cumulatieve opwaardering voor een bedrijfslicentie |
| eligibility.personal_eligible / company_eligible | boolean | Of aan de betreffende geschiktheid wordt voldaan |
| stats.authorized_song_count / certificate_count | number | Aantal gelicentieerde nummers en uitgegeven certificaten |
0.2 Licentie-identiteit koppelen
Endpoint: POST /api/music/authorization/identity
{
"identity_type": "personal",
"legal_name": "Jan Jansen",
"id_number": "110101199001010000",
"contact_name": "Jan Jansen",
"phone": "13800000000",
"email": "user@example.com",
"address": "Dorpsstraat 12, Amsterdam",
"confirm_locked": true
}
| Parameter | Type | Verplicht | Opmerkingen |
|---|---|---|---|
| identity_type | string | ja | personal of company |
| legal_name | string | ja | Naam van de persoon |
| id_number | string | ja | Id-nummer (versleuteld opgeslagen op de server; gewone endpoints geven alleen het gemaskeerde resultaat terug) |
| company_name | string | verplicht voor bedrijven | Bedrijfsnaam |
| credit_code | string | verplicht voor bedrijven | Uniforme sociale kredietcode |
| contact_name | string | ja | Contactpersoon |
| phone | string | ja | Contacttelefoon |
| string | ja | Contact-e-mail | |
| address | string | nee | Contactadres |
| confirm_locked | boolean | ja | Bevestigt dat de identiteitsinformatie wordt vergrendeld; true betekent dat u accepteert dat die na het koppelen niet zelf kan worden gewijzigd |
Het antwoord geeft de gemaskeerde identiteitsinformatie terug: {"identity": {...}}. Controleer na een geslaagde koppeling met het context-endpoint dat identity.exists true is geworden en roep daarna de nummerlijst en de uitgifte-endpoints aan. Moet de identiteitsinformatie worden gewijzigd, neem dan contact op met de klantenservice.
1. Licentieerbare nummers opvragen
Endpoint: GET /api/music/authorization/songs
Query-parameters
| Parameter | Type | Verplicht | Standaard | Opmerkingen |
|---|---|---|---|---|
p |
number | nee | 1 |
Paginanummer |
page_size |
number | nee | systeemstandaard | Items per pagina, maximaal 100 |
q |
string | nee | - | Zoek op titel, prompt of exacte Suno Song ID |
status |
string | nee | all |
all, selectable, authorized of unavailable |
Voorbeeldverzoek
curl "https://www.suno-api.io/api/music/authorization/songs?p=1&page_size=20&status=selectable" \
-H "Authorization: Bearer YOUR_API_KEY"
Voorbeeldantwoord
{
"success": true,
"message": "",
"data": {
"page": 1,
"page_size": 20,
"total": 1,
"items": [
{
"task_id": 10001,
"suno_song_id": "suno-song-id-1",
"title": "Voorbeeldnummer",
"generation_type": "generate",
"completed_at": 1784000000,
"created_at": 1783999000,
"audio_url": "https://example.com/audio.mp3",
"model_name": "suno-v6",
"authorization": {
"selectable": true
}
}
]
}
}
Bij authorization.selectable=false legt het antwoord de reden uit via reason_code en reason. Nummers die al een certificaat hebben, geven ook certificate_id en certificate_no terug.
2. Een certificaat genereren
Endpoint: POST /api/music/authorization/certificates
Body-parameters
| Parameter | Type | Verplicht | Opmerkingen |
|---|---|---|---|
song_ids |
string[] | ja | Lijst met echte Suno Song ID's om te licentiëren |
confirm_risk_terms |
boolean | ja | Moet true zijn: bevestiging van de licentiescope en de risicovoorwaarden |
Voorbeeldverzoek
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
}'
Voorbeeldantwoord
{
"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": "J*",
"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": []
}
}
}
In een geslaagd antwoord is status gelijk aan issued. Mislukt het renderen van de PDF, dan wordt het certificaat gemarkeerd als failed en kunnen de betreffende nummers na het oplossen van het probleem opnieuw worden ingediend.
3. Certificaathistorie opvragen
Endpoint: GET /api/music/authorization/certificates
Query-parameters
| Parameter | Type | Verplicht | Standaard | Opmerkingen |
|---|---|---|---|---|
p |
number | nee | 1 |
Paginanummer |
page_size |
number | nee | systeemstandaard | Items per pagina, maximaal 100 |
q |
string | nee | - | Zoek op certificaatnummer of gemaskeerde naam van de licentienemer |
Voorbeeldverzoek
curl "https://www.suno-api.io/api/music/authorization/certificates?p=1&page_size=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Antwoordstructuur
De data van het antwoord is een gepagineerd object met page, page_size, total en items. Elk item in items is een certificaatsamenvatting en bevat de nummersnapshot van dat certificaat.
4. Certificaatdetails opvragen
Endpoint: GET /api/music/authorization/certificates/:id
De padparameter id is het numerieke ID van het certificaat. Het endpoint geeft alleen toegang tot certificaten van de gebruiker van de huidige API-sleutel.
Voorbeeldverzoek
curl https://www.suno-api.io/api/music/authorization/certificates/101 \
-H "Authorization: Bearer YOUR_API_KEY"
Antwoordstructuur
Bij succes wordt data.certificate teruggegeven, met velden als certificaatnummer, status, gemaskeerde licentienemerinformatie, uitgiftetijd, PDF-controlesom, downloadadres en de snapshot van gelicentieerde nummers.
5. Certificaat-PDF downloaden
Endpoint: GET /api/music/authorization/certificates/:id/download
Alleen certificaten met status issued kunnen worden gedownload. Het downloadverzoek vereist nog steeds een geldige API-sleutel en u kunt alleen uw eigen certificaten downloaden.
Voorbeeldverzoek
curl https://www.suno-api.io/api/music/authorization/certificates/101/download \
-H "Authorization: Bearer YOUR_API_KEY" \
--output authorization-certificate.pdf
Een geslaagd antwoord is een application/pdf-bestandsstream; de bestandsnaam volgt de Content-Disposition van de backend.
Veelvoorkomende oorzaken van mislukking
| Situatie | Voorgestelde aanpak |
|---|---|
| De API-sleutel is ongeldig of ontbreekt | Controleer de header Authorization: Bearer YOUR_API_KEY |
| De licentie-identiteit is nog niet gekoppeld | Rond eerst de identiteitskoppeling af op de certificaatpagina in de Create UI |
| Cumulatieve opwaardering is onvoldoende | Probeer opnieuw nadat de eis voor particulier of bedrijf is bereikt |
| De risicovoorwaarden zijn niet bevestigd | Zet confirm_risk_terms op true |
| Het nummer kan niet worden gelicentieerd | Bekijk reason_code en reason uit de nummerlijst |
| Het nummer heeft al een certificaat | Gebruik het teruggegeven certificate_id om het bestaande certificaat op te vragen |
| De PDF kan nu niet worden gegenereerd | Probeer het later opnieuw; een mislukte registratie verbruikt de licentiegeschiktheid van het nummer niet |
Opmerkingen
- Gebruik de
suno_song_iduit de nummerlijst; gebruik geenpending:*-plaatshouder-ID's of ID's uit de takentabel. - Het downloadadres is geen openbare link; verwijder de API-sleutelauthenticatie niet.
- Certificaatrecords horen bij de gebruiker waar de API-sleutel bij hoort en kunnen niet tussen gebruikers worden opgevraagd of gedownload.
- De licentiescope, beperkingsvoorwaarden en de uiteindelijke PDF-inhoud volgen het daadwerkelijk uitgegeven certificaat.
Een API-sleutel aanvragen
Maak na je registratie een API-sleutel aan in de console. Elke generatie kost ¥0,6 en levert 2 nummers op, downloads zijn onbeperkt en een telefoonnummer is niet nodig.
API-sleutel ophalen Terug naar overzicht