एन्हांस्ड अपलोड API
एंडपॉइंट विवरण
एन्हांस्ड अपलोड एक स्थानीय ऑडियो फ़ाइल भेजता है; सिस्टम पृष्ठभूमि में एन्हांसमेंट करता है और एक पूरा, चलाने योग्य गाना बनाता है। भेजने का कॉल तुरंत कार्य जानकारी लौटाता है, और क्लाइंट प्रगति के लिए क्वेरी एंडपॉइंट को पूछता रहता है।
भेजने का एंडपॉइंट: POST /api/music/enhanced-upload
एक कार्य की क्वेरी: GET /api/music/enhanced-upload/:id
कार्य रद्द करें: POST /api/music/enhanced-upload/:id/cancel
सूची क्वेरी: GET /api/music/enhanced-upload
बिलिंग: प्रति कॉल 10 युआन, suno-enhanced-upload की निश्चित कीमत पर पहले से काट लिया जाता है। यदि कार्य विफल हो, या अनुमत चरण में रद्द हो, तो पहले से कटी राशि स्वतः वापस कर दी जाती है। असल में कटने वाली रकम मौजूदा बैक-ऑफ़िस मूल्य कॉन्फ़िगरेशन के अनुसार होती है।
कॉल प्रवाह
- ऑडियो फ़ाइल अपलोड करने के लिए
POST /api/music/enhanced-uploadकॉल करें। - लौटाई गई
task_idसहेजें। - प्रगति और परिणाम देखने के लिए
GET /api/music/enhanced-upload/:idकॉल करें। - सुनो का अंतिम रेंडरिंग पूरा होने पर सेवा उस कार्य से जुड़े सुनो खाते से Studio का अधिकृत डाउनलोड एंडपॉइंट कॉल करती है और MP3 को CN2 मीडिया सेवा में लिखती है।
- कार्य तभी
completedहोता है जब CN2 एसेट तैयार हो; तब प्रतिक्रिया केaudio_urlसे CDN ऑडियो पता लिया जाता है।
/api/forbidden एक प्लेसहोल्डर पता है जो Suno Studio मेटाडेटा में दिख सकता है; यह चलाने या डाउनलोड करने योग्य संसाधन नहीं है। यह कभी ग्राहक को नहीं लौटाया जाता और पूर्णता का आधार नहीं माना जाता। यदि रेंडरिंग पूरी हो चुकी है पर CN2 अभी तैयारी में है, तो एंडपॉइंट processing लौटाता रहता है और audio_url नहीं लौटाता; क्लाइंट को पूछताछ जारी रखनी चाहिए और खाली पते को विफलता नहीं मानना चाहिए।
एन्हांस्ड अपलोड भेजें
Headers
| पैरामीटर | प्रकार | ज़रूरी | नोट |
|---|---|---|---|
| Authorization | string | हाँ | Bearer YOUR_API_KEY |
| Content-Type | string | नहीं | multipart अनुरोधों में इसे हाथ से न सेट करें; क्लाइंट को बनाने दें |
फ़ॉर्म पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | डिफ़ॉल्ट | नोट |
|---|---|---|---|---|
| file | file | हाँ | - | स्थानीय ऑडियो फ़ाइल, अधिकतम 80 MB |
| title | string | नहीं | बिना एक्सटेंशन वाला फ़ाइल नाम | गाने का शीर्षक |
अनुरोध उदाहरण
नीचे का उदाहरण प्रोडक्शन सत्यापन जैसा ही कॉल रूप इस्तेमाल करता है, लेकिन API Key को प्लेसहोल्डर से बदल दिया गया है।
curl.exe --http1.1 -s -S \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@source.aac" \
-F "title=Enhanced upload demo" \
"https://www.suno-api.io/api/music/enhanced-upload"
प्रतिक्रिया
{
"success": true,
"message": "",
"data": {
"task_id": 3209,
"song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "queued",
"created_at": 1781137961,
"pre_consumed_quota": 5000000,
"billing_source": "wallet"
}
}
एक कार्य की क्वेरी
अनुरोध उदाहरण
curl.exe --http1.1 -s -S \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://www.suno-api.io/api/music/enhanced-upload/3209"
प्रोसेसिंग के दौरान प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"task": {
"task_id": 3209,
"song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "processing",
"type": "enhanced_upload",
"progress": {
"stage": "media_preparing",
"percent": 98,
"label": "正在准备播放资源",
"updated_at": 1781138500
},
"pre_consumed_quota": 5000000,
"billing_source": "wallet",
"created_at": 1781137961,
"updated_at": 1781138500
}
}
}
पूर्ण होने पर प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"task": {
"task_id": 3209,
"song_id": "56cbd0bb-0e8c-4a34-8729-55d5c05d9c53",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "completed",
"type": "enhanced_upload",
"audio_url": "https://media.code-go.com/assets/56cbd0bb-0e8c-4a34-8729-55d5c05d9c53-mp3.mp3",
"duration": 217.74,
"progress": {
"stage": "completed",
"percent": 100,
"label": "已完成",
"updated_at": 1781138943
},
"pre_consumed_quota": 5000000,
"billing_source": "wallet",
"created_at": 1781137961,
"updated_at": 1781138943,
"completed_at": 1781138943
}
}
}
कार्य रद्द करें
रद्द करना तभी संभव है जब कार्य और बैकएंड वर्कफ़्लो दोनों अभी queued चरण में हों। कार्य leasing, running, processing में जाने या पूरा होने के बाद रद्द नहीं किया जा सकता।
अनुरोध उदाहरण
curl.exe --http1.1 -s -S -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://www.suno-api.io/api/music/enhanced-upload/3209/cancel"
प्रतिक्रिया
{
"success": true,
"message": "",
"data": {
"task_id": 3209,
"song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"status": "cancelled"
}
}
यदि कार्य पहले ही प्रोसेसिंग शुरू कर चुका है, तो एंडपॉइंट यह लौटाता है:
{
"success": false,
"message": "强化上传已开始处理,无法取消"
}
कार्य सूची की क्वेरी
सूची एंडपॉइंट केवल मौजूदा API Key वाले उपयोगकर्ता के एन्हांस्ड अपलोड कार्य लौटाता है; सामान्य जनरेशन, कवर और एक्सटेंड कार्य इसमें नहीं मिलते।
Query पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | डिफ़ॉल्ट | नोट |
|---|---|---|---|---|
| p | number | नहीं | 1 | पृष्ठ संख्या |
| page_size | number | नहीं | सिस्टम डिफ़ॉल्ट | प्रति पृष्ठ आइटम, अधिकतम 100 |
अनुरोध उदाहरण
curl.exe --http1.1 -s -S \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://www.suno-api.io/api/music/enhanced-upload?p=1&page_size=3"
प्रतिक्रिया
{
"success": true,
"message": "",
"data": {
"page": 1,
"page_size": 3,
"total": 1,
"items": [
{
"task_id": 3209,
"song_id": "56cbd0bb-0e8c-4a34-8729-55d5c05d9c53",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "completed",
"type": "enhanced_upload",
"audio_url": "https://media.code-go.com/assets/56cbd0bb-0e8c-4a34-8729-55d5c05d9c53-mp3.mp3",
"duration": 217.74,
"progress": {
"stage": "completed",
"percent": 100,
"label": "已完成",
"updated_at": 1781138943
},
"pre_consumed_quota": 5000000,
"billing_source": "wallet",
"created_at": 1781137961,
"updated_at": 1781138943,
"completed_at": 1781138943
}
]
}
}
प्रतिक्रिया फ़ील्ड विवरण
| फ़ील्ड | प्रकार | नोट |
|---|---|---|
| task_id | number | एन्हांस्ड अपलोड कार्य ID; आगे की क्वेरी और रद्द करने में इसी का उपयोग करें |
| song_id | string | प्रोसेसिंग के दौरान pending:enhanced-upload:*, पूरा होने पर असली गाना ID |
| client_request_id | string | क्लाइंट अनुरोध ट्रैकिंग ID |
| status | string | कार्य स्थिति, जैसे queued, processing, completed, failed, cancelled |
| type | string | हमेशा enhanced_upload |
| audio_url | string | पूरा होने के बाद ऑडियो पता |
| duration | number | ऑडियो अवधि सेकंड में |
| progress.stage | string | वर्तमान प्रोसेसिंग चरण |
| progress.percent | number | प्रगति प्रतिशत |
| progress.label | string | उपयोगकर्ता को दिखाई जाने वाली प्रगति पाठ |
| pre_consumed_quota | number | इस कॉल के लिए पहले से कटा कोटा |
| billing_source | string | शुल्क स्रोत, जैसे wallet |
| error_message | string | विफलता का कारण |
नोट
- यह एंडपॉइंट फ़िलहाल केवल multipart फ़ाइल अपलोड समर्थित करता है; JSON
file_urlऔरfile_base64समर्थित नहीं हैं। - अपलोड की जाने वाली फ़ाइल अधिकतम 80 MB है।
- भेजने का एंडपॉइंट असिंक्रोनस है:
queuedमिलने का अर्थ कार्य कतार में लग गया है, यह नहीं कि ऑडियो बन गया है। - रद्द करना केवल उन कार्यों पर लागू है जिनकी प्रोसेसिंग शुरू नहीं हुई; प्रोसेसिंग शुरू होने पर प्लेटफ़ॉर्म खाते का वर्कफ़्लो बाधित नहीं होता।
- क्लाइंट कोड में असली API Key उजागर न करें।
एन्हांस्ड अपलोड पूरा होने के बाद कवर शुरू करें
एन्हांस्ड अपलोड पूरा होने पर आप परिणाम को स्रोत क्लिप बनाकर POST /api/music/generate-from-source कॉल करके कवर शुरू कर सकते हैं।
ध्यान: कवर एक सिंक्रोनस एंडपॉइंट है — ऑर्डर जवाब आने पर ही स्वीकार होता है, और मापन के अनुसार प्रतीक्षा लगभग 230 सेकंड तक हो सकती है। क्लाइंट टाइमआउट 300 सेकंड या अधिक रखें और टाइमआउट के तुरंत बाद दोबारा कोशिश न करें। नए API का अवलोकन में "प्रतीक्षा समय और टाइमआउट सेटिंग" देखें।
पहले GET /api/music/enhanced-upload/:id को तब तक पूछें जब तक task.status completed न हो जाए। तब:
task.song_idअसली गाना ID है और वहीsourceClipIdहै जो कवर एंडपॉइंट चाहता है;task.audio_urlकोsourceAudioUrlके रूप में भी भेजना सुझाया जाता है, ताकि सर्वर उस स्थिति को संभाल सके जब स्रोत क्लिप और निष्पादन खाता अलग हों;task.task_idकेवल एन्हांस्ड अपलोड कार्य ID है औरsourceClipIdके रूप में इस्तेमाल नहीं हो सकता;pending:enhanced-upload:*प्रोसेसिंग चरण का प्लेसहोल्डर ID है और कवर के लिए इस्तेमाल नहीं हो सकता।
कवर शुरू करते समय एन्हांस्ड अपलोड जैसा ही API Key इस्तेमाल करें और नीचे दिए फ़ील्ड मैपिंग के अनुसार अनुरोध बनाएँ।
| कवर अनुरोध फ़ील्ड | मान का स्रोत |
|---|---|
sourceClipId |
पूर्ण हुए एन्हांस्ड अपलोड परिणाम का task.song_id |
sourceAudioUrl |
पूर्ण हुए एन्हांस्ड अपलोड परिणाम का task.audio_url |
sourceTitle |
पूर्ण हुए एन्हांस्ड अपलोड परिणाम का task.title |
बाकी बोल, स्टाइल, शीर्षक और मॉडल पैरामीटर स्रोत क्लिप से कवर API के अनुसार भरें। कवर एंडपॉइंट नया clips[].song_id लौटाने के बाद POST /api/music/query से जनरेशन स्थिति और अंतिम ऑडियो देखें।
API कुंजी प्राप्त करें
रजिस्टर करने के बाद कंसोल में API कुंजी बनाएँ। प्रत्येक जनरेशन का खर्च 0.6 युआन है और 2 ट्रैक मिलते हैं, डाउनलोड असीमित हैं और फ़ोन नंबर की ज़रूरत नहीं है।
API कुंजी लें अवलोकन पर लौटें