API หนังสือรับรองสิทธิ์ใช้งานเพลงเชิงพาณิชย์
คำอธิบายเอนด์พอยต์
เอนด์พอยต์หนังสือรับรองสิทธิ์ใช้งานเพลงเชิงพาณิชย์ใช้สำหรับดูรายการเพลงที่ผู้ใช้ของ API Key ปัจจุบันมีสิทธิ์ออกหนังสือรับรอง สร้างหนังสือรับรองเป็น PDF ดูประวัติหนังสือรับรอง และดาวน์โหลดไฟล์ที่ออกให้แล้ว
ทุกเอนด์พอยต์ใช้ New API Key เหมือนกันทั้งหมด:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
ที่อยู่พื้นฐาน:
https://www.suno-api.io
ข้อกำหนดเบื้องต้น
- API Key ต้องใช้ได้ และต้องเป็นของผู้ใช้ที่ต้องการหนังสือรับรอง
- ผู้ใช้ต้องผูกตัวตนสำหรับการรับรองให้เสร็จก่อน (ดู «0. คุณสมบัติและตัวตนสำหรับการรับรอง») เมื่อยืนยันแล้ว ตัวตนจะถูกล็อกตามกฎของผลิตภัณฑ์
- ผู้ใช้ต้องผ่านเงื่อนไขยอดเติมสะสมสำหรับบุคคลธรรมดาหรือนิติบุคคล
- เอนด์พอยต์ทั่วไปคืนเฉพาะข้อมูลตัวตนที่ปิดบังไว้ ไม่คืนเลขบัตร เลขโทรศัพท์ หรือรหัสเครดิตสังคมแบบรวมเป็นข้อความธรรมดา
- เพลงแต่ละเพลงออกหนังสือรับรองได้สำเร็จเพียงฉบับเดียว หนังสือรับรองที่สร้างไม่สำเร็จจะไม่กินสิทธิ์ของเพลงนั้น
- ปัจจุบันรองรับประเภทการสร้างที่กำหนดไว้ ซึ่งสร้างเสร็จแล้ว มีเสียง และมี Suno Song ID จริง ว่าเลือกได้หรือไม่ดูจาก
authorization.selectableในรายการเพลง
0. คุณสมบัติและตัวตนสำหรับการรับรอง
ก่อนออกหนังสือรับรอง ต้องตรวจสอบคุณสมบัติและผูกตัวตนก่อน เอนด์พอยต์ทั้งสองนี้ฟรี
0.1 ตรวจสอบคุณสมบัติและสถานะตัวตน
เอนด์พอยต์: 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
}
}
}
| ฟิลด์ | ชนิด | หมายเหตุ |
|---|---|---|
| identity.exists | boolean | ผูกตัวตนสำหรับการรับรองแล้วหรือยัง เมื่อเป็น true จะคืนข้อมูลตัวตนที่ปิดบังไว้ด้วย |
| eligibility.current_amount | number | ยอดเติมสะสมปัจจุบัน (หยวน) |
| eligibility.personal_required_amount | number | เกณฑ์ยอดเติมสะสมที่ต้องใช้สำหรับการรับรองบุคคลธรรมดา |
| eligibility.company_required_amount | number | เกณฑ์ยอดเติมสะสมที่ต้องใช้สำหรับการรับรองนิติบุคคล |
| eligibility.personal_eligible / company_eligible | boolean | ปัจจุบันผ่านคุณสมบัติที่ตรงกันหรือไม่ |
| stats.authorized_song_count / certificate_count | number | จำนวนเพลงที่รับรองแล้วและจำนวนหนังสือรับรองที่ออกแล้ว |
0.2 ผูกตัวตนสำหรับการรับรอง
เอนด์พอยต์: POST /api/music/authorization/identity
{
"identity_type": "personal",
"legal_name": "สมชาย ใจดี",
"id_number": "110101199001010000",
"contact_name": "สมชาย ใจดี",
"phone": "13800000000",
"email": "user@example.com",
"address": "12 ถนนสุขุมวิท กรุงเทพฯ",
"confirm_locked": true
}
| พารามิเตอร์ | ชนิด | จำเป็น | หมายเหตุ |
|---|---|---|---|
| identity_type | string | ใช่ | personal (บุคคลธรรมดา) หรือ company (นิติบุคคล) |
| legal_name | string | ใช่ | ชื่อบุคคล |
| id_number | string | ใช่ | เลขบัตรประชาชน (เซิร์ฟเวอร์เก็บแบบเข้ารหัส เอนด์พอยต์ทั่วไปคืนเฉพาะผลที่ปิดบังไว้) |
| company_name | string | นิติบุคคลต้องระบุ | ชื่อนิติบุคคล |
| credit_code | string | นิติบุคคลต้องระบุ | รหัสเครดิตสังคมแบบรวม |
| contact_name | string | ใช่ | ผู้ติดต่อ |
| phone | string | ใช่ | เบอร์ติดต่อ |
| string | ใช่ | อีเมลติดต่อ | |
| address | string | ไม่ | ที่อยู่ติดต่อ |
| confirm_locked | boolean | ใช่ | ยืนยันการล็อกข้อมูลตัวตน การส่ง true หมายถึงยอมรับว่าหลังผูกแล้วจะแก้ไขเองไม่ได้ |
คำตอบจะคืนข้อมูลตัวตนที่ปิดบังไว้: {"identity": {...}} หลังผูกสำเร็จ กรุณาใช้เอนด์พอยต์ context ยืนยันว่า identity.exists กลายเป็น true แล้วจึงเรียกรายการเพลงและเอนด์พอยต์ออกหนังสือรับรอง หากต้องแก้ไขข้อมูลตัวตน กรุณาติดต่อฝ่ายบริการลูกค้า
1. ดูรายการเพลงที่รับรองได้
เอนด์พอยต์: GET /api/music/authorization/songs
พารามิเตอร์คำค้น
| พารามิเตอร์ | ชนิด | จำเป็น | ค่าเริ่มต้น | หมายเหตุ |
|---|---|---|---|---|
p |
number | ไม่ | 1 |
หมายเลขหน้า |
page_size |
number | ไม่ | ค่าเริ่มต้นของระบบ | จำนวนต่อหน้า สูงสุด 100 |
q |
string | ไม่ | - | ค้นหาด้วยชื่อพรอมป์ต์ หรือ Suno Song ID ที่ตรงทั้งหมด |
status |
string | ไม่ | all |
all, selectable, authorized หรือ unavailable |
ตัวอย่างคำขอ
curl "https://www.suno-api.io/api/music/authorization/songs?p=1&page_size=20&status=selectable" \
-H "Authorization: Bearer YOUR_API_KEY"
ตัวอย่างคำตอบ
{
"success": true,
"message": "",
"data": {
"page": 1,
"page_size": 20,
"total": 1,
"items": [
{
"task_id": 10001,
"suno_song_id": "suno-song-id-1",
"title": "เพลงตัวอย่าง",
"generation_type": "generate",
"completed_at": 1784000000,
"created_at": 1783999000,
"audio_url": "https://example.com/audio.mp3",
"model_name": "suno-v6",
"authorization": {
"selectable": true
}
}
]
}
}
เมื่อ authorization.selectable=false คำตอบจะอธิบายเหตุผลผ่าน reason_code และ reason เพลงที่ออกหนังสือรับรองแล้วจะคืน certificate_id และ certificate_no เพิ่มด้วย
2. สร้างหนังสือรับรอง
เอนด์พอยต์: POST /api/music/authorization/certificates
พารามิเตอร์บอดี
| พารามิเตอร์ | ชนิด | จำเป็น | หมายเหตุ |
|---|---|---|---|
song_ids |
string[] | ใช่ | รายการ Suno Song ID จริงที่ต้องการรับรอง |
confirm_risk_terms |
boolean | ใช่ | ต้องเป็น true เพื่อยืนยันขอบเขตการรับรองและข้อกำหนดความเสี่ยง |
ตัวอย่างคำขอ
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
}'
ตัวอย่างคำตอบ
{
"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": "ส*",
"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": []
}
}
}
ในคำตอบที่สำเร็จ status จะเป็น issued หากสร้าง PDF ไม่สำเร็จ หนังสือรับรองจะถูกทำเครื่องหมายเป็น failed และเพลงที่เกี่ยวข้องยังส่งใหม่ได้หลังแก้ปัญหาแล้ว
3. ดูประวัติหนังสือรับรอง
เอนด์พอยต์: GET /api/music/authorization/certificates
พารามิเตอร์คำค้น
| พารามิเตอร์ | ชนิด | จำเป็น | ค่าเริ่มต้น | หมายเหตุ |
|---|---|---|---|---|
p |
number | ไม่ | 1 |
หมายเลขหน้า |
page_size |
number | ไม่ | ค่าเริ่มต้นของระบบ | จำนวนต่อหน้า สูงสุด 100 |
q |
string | ไม่ | - | ค้นหาด้วยเลขที่หนังสือรับรองหรือชื่อผู้รับรองที่ปิดบังไว้ |
ตัวอย่างคำขอ
curl "https://www.suno-api.io/api/music/authorization/certificates?p=1&page_size=20" \
-H "Authorization: Bearer YOUR_API_KEY"
โครงสร้างคำตอบ
data ของคำตอบเป็นออบเจ็กต์แบ่งหน้า ประกอบด้วย page, page_size, total และ items แต่ละรายการใน items เป็นสรุปหนังสือรับรอง และมีสแนปช็อตเพลงของหนังสือรับรองนั้น
4. ดูรายละเอียดหนังสือรับรอง
เอนด์พอยต์: GET /api/music/authorization/certificates/:id
พารามิเตอร์ในเส้นทาง id คือ ID ตัวเลขของหนังสือรับรอง เอนด์พอยต์นี้อนุญาตให้เข้าถึงเฉพาะหนังสือรับรองของผู้ใช้ที่เป็นเจ้าของ API Key ปัจจุบันเท่านั้น
ตัวอย่างคำขอ
curl https://www.suno-api.io/api/music/authorization/certificates/101 \
-H "Authorization: Bearer YOUR_API_KEY"
โครงสร้างคำตอบ
เมื่อสำเร็จจะคืน data.certificate โดยฟิลด์ประกอบด้วยเลขที่หนังสือรับรอง สถานะ ข้อมูลผู้รับรองที่ปิดบังไว้ เวลาที่ออก ค่าตรวจสอบของ PDF ที่อยู่ดาวน์โหลด และสแนปช็อตเพลงที่รับรอง
5. ดาวน์โหลด PDF หนังสือรับรอง
เอนด์พอยต์: GET /api/music/authorization/certificates/:id/download
ดาวน์โหลดได้เฉพาะหนังสือรับรองที่มีสถานะ issued เท่านั้น คำขอดาวน์โหลดยังต้องมี API Key ที่ใช้ได้ และดาวน์โหลดได้เฉพาะหนังสือรับรองของตัวเอง
ตัวอย่างคำขอ
curl https://www.suno-api.io/api/music/authorization/certificates/101/download \
-H "Authorization: Bearer YOUR_API_KEY" \
--output authorization-certificate.pdf
คำตอบที่สำเร็จเป็นสตรีมไฟล์ application/pdf โดยชื่อไฟล์เป็นไปตาม Content-Disposition ของแบ็กเอนด์
สาเหตุความล้มเหลวที่พบบ่อย
| สถานการณ์ | คำแนะนำในการจัดการ |
|---|---|
| API Key ไม่ถูกต้องหรือไม่ได้ส่งมา | ตรวจสอบเฮดเดอร์ Authorization: Bearer YOUR_API_KEY |
| ยังไม่ได้ผูกตัวตนสำหรับการรับรอง | ผูกตัวตนในหน้าหนังสือรับรองของ Create UI ให้เสร็จก่อน |
| ยอดเติมสะสมไม่ถึงเกณฑ์ | ลองใหม่หลังถึงเกณฑ์ของบุคคลธรรมดาหรือนิติบุคคล |
| ยังไม่ได้ยืนยันข้อกำหนดความเสี่ยง | ตั้ง confirm_risk_terms เป็น true |
| เพลงรับรองไม่ได้ | ดู reason_code และ reason ที่รายการเพลงคืนมา |
| เพลงออกหนังสือรับรองแล้ว | ใช้ certificate_id ที่คืนมาเพื่อดูหนังสือรับรองเดิม |
| ตอนนี้สร้าง PDF ไม่ได้ | ลองใหม่ภายหลัง บันทึกที่ล้มเหลวไม่กินสิทธิ์การรับรองของเพลง |
ข้อควรระวัง
- ใช้
suno_song_idที่รายการเพลงคืนมา อย่าใช้ ID ชั่วคราวpending:*หรือ ID ของตารางงาน - ที่อยู่ดาวน์โหลดไม่ใช่ลิงก์สาธารณะ อย่าถอดการยืนยันตัวตนด้วย API Key ออก
- บันทึกหนังสือรับรองเป็นของผู้ใช้ที่ตรงกับ API Key ไม่สามารถข้ามผู้ใช้เพื่อดูหรือดาวน์โหลดได้
- ขอบเขตการรับรอง ข้อจำกัด และเนื้อหา PDF ขั้นสุดท้ายให้ยึดตามหนังสือรับรองที่ออกจริง
รับคีย์ API
สร้างคีย์ API ในคอนโซลหลังสมัครสมาชิก การสร้างหนึ่งครั้งราคา 0.6 หยวน ได้ 2 เพลง ดาวน์โหลดไม่จำกัด และไม่ต้องใช้เบอร์โทรศัพท์
รับคีย์ API กลับไปภาพรวม