เริ่มต้นอย่างรวดเร็ว
คู่มือนี้พาคุณจากขั้นตอนสร้างคีย์ API ไปจนถึงเพลงแรก ตรวจสอบความคืบหน้า และดาวน์โหลดไฟล์เสียง ได้ภายในเวลาประมาณห้านาที ตัวอย่างทั้งหมดคัดลอกไปรันได้ทันที
โมเดลเริ่มต้นปัจจุบันคือ
suno-v6โมเดลสร้างเพลงตั้งแต่suno-v2ถึงsuno-v5-5ถูกปิดแล้ว อาจยังปรากฏในงานเก่า แต่จะไม่รับคำขอใหม่
ขั้นที่ 1: ขอคีย์ API
- เปิด https://www.suno-api.io
- กด ขอคีย์ API แล้วสมัคร ใช้เพียงอีเมล ไม่ต้องใช้เบอร์โทรศัพท์
- ในคอนโซล เปิดส่วนจัดการโทเคนและสร้างคีย์
- คัดลอกทันที เพราะคีย์จะแสดงเพียงครั้งเดียว เติมยอดคงเหลือด้วยรหัสแลกเครดิตก่อนเรียกครั้งแรก ที่มีค่าใช้จ่าย
ขั้นที่ 2: ตั้งค่าคำขอ
ทุกการเรียกใช้ฐาน URL และเฮดเดอร์เดียวกัน:
POST https://www.suno-api.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
ขั้นที่ 3: ส่งคำขอแรก
ตัวอย่างที่ 1 — สร้างจากคำอธิบาย
อธิบายเพลง แล้ว API จะเขียนเนื้อร้อง ทำนอง และเรียบเรียงให้:
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "เพลงโฟล์กสนุก ๆ เกี่ยวกับวันแรกของฤดูใบไม้ผลิ",
"model": "suno-v6"
}'
ผลลัพธ์:
[
{
"song_id": "abc123",
"status": "pending",
"song_title": "เรื่องราวฤดูใบไม้ผลิ",
"description": "เพลงโฟล์กสนุก ๆ เกี่ยวกับวันแรกของฤดูใบไม้ผลิ",
"created_at": "2026-04-22T10:30:00Z"
},
{
"song_id": "def456",
"status": "pending",
"song_title": "ก้าวย่างฤดูใบไม้ผลิ",
"description": "เพลงโฟล์กสนุก ๆ เกี่ยวกับวันแรกของฤดูใบไม้ผลิ",
"created_at": "2026-04-22T10:30:00Z"
}
]
แต่ละครั้งจะได้สองเวอร์ชันให้เลือก หนึ่งครั้งราคา 0,6 ¥
ตัวอย่างที่ 2 — ตรวจสอบความคืบหน้า
ส่งค่า song_id ที่ได้ไปยังปลายทางตรวจสอบสถานะ:
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["abc123", "def456"],
"model": "suno-v6"
}'
ระหว่างที่งานยังทำงานอยู่:
[
{
"song_id": "abc123",
"status": "processing",
"song_title": "เรื่องราวฤดูใบไม้ผลิ",
"progress": "60%"
}
]
เมื่อเสร็จแล้ว:
[
{
"song_id": "abc123",
"status": "completed",
"song_title": "เรื่องราวฤดูใบไม้ผลิ",
"audio_url": "https://media.code-go.com/assets/abc123-mp3.mp3",
"video_url": "https://media.code-go.com/assets/abc123-mp4.mp4",
"cover_url": "https://media.code-go.com/assets/abc123-cover.jpg",
"duration": 168
}
]
ค่า status จะไล่จาก pending ไป submitted แล้ว processing และจบที่ completed
ระหว่างทำงาน ที่อยู่ต่าง ๆ อาจว่างได้ ให้ดูที่ status ไม่ใช่ดูว่ามี audio_url หรือไม่
ขั้นที่ 4: ดาวน์โหลดไฟล์
เมื่อ status เป็น completed ให้นำ audio_url ไปใช้ได้เลย การดาวน์โหลด MP3 และ WAV
ไม่จำกัดจำนวนและไม่มีค่าใช้จ่ายเพิ่ม หากต้องการไฟล์เสียงแบบไม่สูญเสียข้อมูลสำหรับตัดต่อ
ให้ใช้ปลายทาง WAV
สถานการณ์ที่พบบ่อย
เพลงประกอบวิดีโอ
{
"description": "เพลงประกอบ lo-fi ผ่อนคลายสำหรับวิดีโอสินค้า ไม่มีเสียงร้อง ไดนามิกสม่ำเสมอ",
"instrumental": true,
"model": "suno-v6"
}
เมื่อ instrumental เป็น true ผลลัพธ์จะไม่มีเสียงร้อง
เนื้อร้องและสไตล์ของตัวเอง
{
"lyrics": "[Verse 1]\nแสงไฟในเมืองค่อย ๆ ดับลง\n\n[Chorus]\nเราเดินต่อไป",
"style": "acoustic pop, เสียงร้องหญิงอบอุ่น, 92 BPM",
"model": "suno-v6"
}
ตรวจสอบจนกว่างานจะเสร็จ
import time
import requests
API_KEY = "sk-your-key-here"
BASE = "https://www.suno-api.io"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
created = requests.post(
f"{BASE}/api/music/create",
headers=HEADERS,
json={"description": "เพลงโฟล์กสนุก ๆ เกี่ยวกับฤดูใบไม้ผลิ", "model": "suno-v6"},
).json()
song_ids = [track["song_id"] for track in created]
for _ in range(60):
time.sleep(10)
tracks = requests.post(
f"{BASE}/api/music/query",
headers=HEADERS,
json={"song_ids": song_ids, "model": "suno-v6"},
).json()
if all(track.get("status") == "completed" for track in tracks):
for track in tracks:
print(track["song_title"], track["audio_url"])
break
การจัดการข้อผิดพลาด
รหัสสถานะหลัก
| รหัส | ความหมาย | สิ่งที่ควรทำ |
|---|---|---|
| 200 | สำเร็จ | อ่านเนื้อหาผลลัพธ์ |
| 400 | คำขอไม่ถูกต้อง — พารามิเตอร์หายไปหรือผิดรูปแบบ | เทียบกับเอกสาร |
| 401 | ไม่มีคีย์หรือคีย์ไม่ถูกต้อง | ตรวจเฮดเดอร์ Authorization |
| 403 | ไม่มีสิทธิ์ มักเกิดจากยอดคงเหลือไม่พอ | เติมเงินในบัญชี |
| 429 | เกินขีดจำกัดคำขอ | ส่งซ้ำแบบ backoff แบบทวีคูณ |
| 500 | เซิร์ฟเวอร์ผิดพลาด | ส่งซ้ำ หากยังไม่หายให้ติดต่อฝ่ายสนับสนุน |
รูปแบบข้อผิดพลาด
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
แนวปฏิบัติที่ดี
- เก็บคีย์ไว้บนเซิร์ฟเวอร์ ไม่ใส่ในเบราว์เซอร์หรือแอปที่แจกจ่าย
- ตรวจสอบทุก 10–15 วินาที ไม่วนซ้ำถี่ ๆ
- เก็บ
song_idไว้ เพราะเป็นรหัสเดียวที่ใช้ค้นไฟล์เสียงในภายหลัง - ส่งซ้ำเมื่อเจอ
429และ500ส่วน400และ401ให้แก้สาเหตุก่อน - งานที่ล้มเหลวจะคืนเงินอัตโนมัติ จึงไม่เสียค่าใช้จ่าย
ขั้นตอนถัดไป
- การยืนยันตัวตน — คีย์ ข้อผิดพลาด และขีดจำกัด
- โมเดลที่รองรับ — ชื่อโมเดล การแยกสเต็ม และโมเดลที่ปิดไปแล้ว
รับคีย์ API
สร้างคีย์ API ในคอนโซลหลังสมัครสมาชิก การสร้างหนึ่งครั้งราคา 0.6 หยวน ได้ 2 เพลง ดาวน์โหลดไม่จำกัด และไม่ต้องใช้เบอร์โทรศัพท์
รับคีย์ API กลับไปภาพรวม