वॉइस क्लोनिंग और निर्दिष्ट आवाज़ से जनरेशन API (सुझाया नहीं गया)

2026-09-18 को अद्यतन · Suno-API टीम

⛔ पुराना रास्ता, नई इंटीग्रेशन के लिए सुझाया नहीं जाता। यह पेज शुरुआती persona रास्ते (voice_task_id / generate-with-voice) का वर्णन करता है। यह अब भी काम करता है, लेकिन ग्राहकों को अब सुझाया नहीं जाता; बाईं ओर के मेन्यू में इसे "सुझाया नहीं गया" लिखा है।

नई इंटीग्रेशन के लिए 【सुझाया गया】 वॉइस प्रोफ़ाइल API इस्तेमाल करें: एक वोकल सैंपल से वॉइस प्रोफ़ाइल बनाएँ (POST /api/music/voice-profile/create), फिर उससे कोई तय गाना कवर करें या नया गाना गवाएँ। वॉइस प्रोफ़ाइल एक प्रथम-श्रेणी का संसाधन है: उसे सूचीबद्ध, पढ़ा और हटाया जा सकता है, और उसका स्रोत ऑडियो स्थायी रूप से सुरक्षित रहता है।

अगर आपके उत्पाद को "आवाज़ बनाएँ → लंबे समय तक दोबारा इस्तेमाल करें → कवर करें" का पूरा चक्र चाहिए, तो नए रास्ते को प्राथमिकता दें।

ज़रूरी बात: क्लोन की गई आवाज़ की अवधि खत्म हो सकती है।

वॉइस क्लोनिंग से बने voice_id / voice_task_id हमेशा के लिए चलने वाला संसाधन नहीं हैं: वैधता अवधि, अकाउंट की स्थिति या आवाज़ की स्थिति बदलने पर वे काम करना बंद कर सकते हैं। इंटीग्रेशन करने वाले को एक बार क्लोन करके स्थानीय कैश में रखी आवाज़ ID हमेशा दोबारा इस्तेमाल नहीं करनी चाहिए।

सुझाया तरीका:

  • voice_task_id, voice_id, is_available, updated_at और आख़िरी सफल जनरेशन का समय सहेजें।
  • क्लोन की गई आवाज़ से हर जनरेशन से पहले GET /api/voice/clone/tasks/{voice_task_id} या POST /api/voice/clone/tasks/{voice_task_id}/check कॉल करके is_available=true की पुष्टि करें।
  • अगर एंडपॉइंट बताए कि आवाज़ उपलब्ध नहीं है, टास्क मौजूद नहीं है या selected voice is not ready लौटाए, तो यूज़र से दोबारा क्लोन करने या दूसरी उपलब्ध आवाज़ चुनने को कहें।
  • अंतिम यूज़र से यह वादा न करें कि क्लोन की गई आवाज़ "स्थायी संपत्ति" है; प्रोडक्ट UI में बताएँ कि "आवाज़ की अवधि खत्म हो सकती है और दोबारा सत्यापन या दोबारा क्लोनिंग ज़रूरी हो सकती है"।

एंडपॉइंट विवरण

यह एंडपॉइंट समूह दोबारा इस्तेमाल हो सकने वाली आवाज़ बनाता है और उससे गाने बनाता है। कॉल करने वाले को सिर्फ़ प्लेटफ़ॉर्म का जारी किया API Key चाहिए; टास्क भेजना, स्टेटस सिंक, बिलिंग और डाउनलोड सर्वर खुद सँभालता है।

प्रमाणीकरण: Authorization: Bearer YOUR_API_KEY

बिलिंग:

कॉल का क्रम

  1. POST /api/voice/clone/validate कॉल करके स्रोत आवाज़ अपलोड करें और voice_task_id पाएँ।
  2. GET /api/voice/clone/tasks/{voice_task_id} का इंतज़ार या पोलिंग करें और validate_info पाएँ।
  3. यूज़र उस टेक्स्ट को पढ़कर सत्यापन ऑडियो रिकॉर्ड करता है।
  4. POST /api/voice/clone/tasks/{voice_task_id}/generate कॉल करके सत्यापन ऑडियो भेजें।
  5. POST /api/voice/clone/tasks/{voice_task_id}/check कॉल करें या टास्क पूछते रहें जब तक is_available=true न हो जाए।
  6. POST /api/music/generate-with-voice कॉल करके उस आवाज़ से गाना बनाएँ।
  7. जनरेशन एंडपॉइंट पहले प्लेसहोल्डर टास्क लौटाता है; जब जनरेशन पूरा हो और असली song_id मिल जाए, तो डाउनलोड एंडपॉइंट से एक फ़ाइल या एक पैकेज ले सकते हैं।
  8. (वैकल्पिक) जब आवाज़ की ज़रूरत न रहे, तो DELETE /api/voice/clone/voices/{voice_task_id} कॉल करके हटा दें; अर्थ भाग 6 में है।

एक-क़दम क्लोनिंग भी है: वर्कस्पेस के पहले रिकॉर्डिंग/स्रोत-आवाज़ अपलोड पेज पर एक ही बार में पूरा करने का विकल्प चुन सकते हैं; सिस्टम सत्यापन और आवाज़ बनाना एक साथ कर देता है, इसलिए दूसरा सत्यापन ऑडियो रिकॉर्ड करने की ज़रूरत नहीं; शुल्क प्रति कॉल 5 युआन है और विफल होने पर वापस मिलता है।

आवाज़ टास्क के फ़ील्ड

फ़ील्ड प्रकार विवरण
voice_task_id number प्लेटफ़ॉर्म के भीतर आवाज़ टास्क की ID; आगे के सभी एंडपॉइंट इसी ID का उपयोग करते हैं
voice_id string गाने बनाने के लिए इस्तेमाल हो सकने वाली आवाज़ ID; टास्क उपयोग-योग्य होने पर लौटती है
voice_name string आवाज़ का नाम
description string आवाज़ का विवरण
style string आवाज़ की शैली
singer_skill_level string गायन स्तर; आम मान: beginner, intermediate, professional
language string स्रोत आवाज़ की भाषा, जैसे zh, en
validate_info string पढ़ने के लिए सत्यापन टेक्स्ट
validate_status string वैलिडेशन टास्क की स्थिति
voice_status string आवाज़ बनने की स्थिति
is_available boolean क्या यह गाने बनाने के लिए उपयोग-योग्य है
status string प्लेटफ़ॉर्म पर टास्क की स्थिति
stage string मौजूदा चरण
error_code string विफलता का एरर कोड
error_message string विफलता का कारण
source_duration_seconds number स्रोत ऑडियो की अवधि, सेकंड में
created_at number बनने का टाइमस्टैम्प
updated_at number अपडेट का टाइमस्टैम्प
completed_at number पूरा होने का टाइमस्टैम्प

1. स्रोत आवाज़ सत्यापन के लिए भेजें

एंडपॉइंट: POST /api/voice/clone/validate

बॉडी पैरामीटर

पैरामीटर प्रकार ज़रूरी डिफ़ॉल्ट विवरण
voice_url string नहीं - स्रोत आवाज़ के ऑडियो का URL। यह या file_base64
file_base64 string नहीं - base64 में ऑडियो। यह या voice_url
file_name string नहीं - फ़ाइल नाम; file_base64 के साथ भेजना सुझाया जाता है
voice_name string नहीं अपने आप बनता है आवाज़ का नाम
description string नहीं - आवाज़ का विवरण
style string नहीं - आवाज़ की शैली
singer_skill_level string नहीं beginner गायन स्तर
language string नहीं zh स्रोत आवाज़ की भाषा
vocal_start_s number हाँ - उपयोगी वोकल का शुरुआती सेकंड
vocal_end_s number हाँ - उपयोगी वोकल का आख़िरी सेकंड
source_duration_seconds number नहीं - स्रोत ऑडियो की कुल अवधि, सेकंड में

vocal_end_s - vocal_start_s को वोकल सेगमेंट की न्यूनतम शर्त पूरी करनी चाहिए। साफ़, बिना स्पष्ट संगत या शोर वाली वोकल रिकॉर्डिंग अपलोड करें।

अनुरोध उदाहरण

curl -X POST https://www.suno-api.io/api/voice/clone/validate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_url": "https://example.com/source-voice.wav",
    "voice_name": "मेरी चीनी महिला आवाज़",
    "description": "साफ़ और स्वाभाविक चीनी महिला आवाज़",
    "style": "Mandopop",
    "singer_skill_level": "intermediate",
    "language": "zh",
    "vocal_start_s": 1.2,
    "vocal_end_s": 18.5,
    "source_duration_seconds": 20
  }'

प्रतिक्रिया उदाहरण

{
  "success": true,
  "message": "",
  "data": {
    "voice": {
      "voice_task_id": 123,
      "voice_name": "मेरी चीनी महिला आवाज़",
      "language": "zh",
      "validate_status": "submitted",
      "is_available": false,
      "status": "validate_submitted",
      "stage": "validate_submitted",
      "created_at": 1780480000,
      "updated_at": 1780480000
    }
  }
}

2. आवाज़ टास्क की क्वेरी

एंडपॉइंट: GET /api/voice/clone/tasks/{voice_task_id}

अनुरोध उदाहरण

curl https://www.suno-api.io/api/voice/clone/tasks/123 \
  -H "Authorization: Bearer YOUR_API_KEY"

प्रतिक्रिया उदाहरण

{
  "success": true,
  "message": "",
  "data": {
    "voice": {
      "voice_task_id": 123,
      "voice_name": "मेरी चीनी महिला आवाज़",
      "validate_info": "यहाँ लौटाया गया सत्यापन टेक्स्ट पढ़कर सुनाएँ",
      "validate_status": "success",
      "is_available": false,
      "status": "validate_ready",
      "stage": "validate_callback"
    }
  }
}

3. सत्यापन टेक्स्ट दोबारा बनाएँ

एंडपॉइंट: POST /api/voice/clone/tasks/{voice_task_id}/regenerate

जब सत्यापन टेक्स्ट पढ़ने के लिए उपयुक्त न हो या सत्यापन दोबारा करना हो, तब कॉल करें।

curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/regenerate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

4. सत्यापन ऑडियो भेजें और आवाज़ बनाएँ

एंडपॉइंट: POST /api/voice/clone/tasks/{voice_task_id}/generate

बॉडी पैरामीटर

पैरामीटर प्रकार ज़रूरी डिफ़ॉल्ट विवरण
verify_url string नहीं - सत्यापन टेक्स्ट से पढ़े गए ऑडियो का URL। यह या file_base64
file_base64 string नहीं - base64 में सत्यापन ऑडियो। यह या verify_url
file_name string नहीं - फ़ाइल नाम; file_base64 के साथ भेजना सुझाया जाता है
voice_name string नहीं टास्क का नाम आवाज़ का नाम
description string नहीं टास्क का विवरण आवाज़ का विवरण
style string नहीं टास्क की शैली आवाज़ की शैली
singer_skill_level string नहीं टास्क की सेटिंग गायन स्तर

अनुरोध उदाहरण

curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "verify_url": "https://example.com/verify-voice.wav",
    "voice_name": "मेरी चीनी महिला आवाज़"
  }'

5. जाँचें कि आवाज़ उपयोग-योग्य है या नहीं

एंडपॉइंट: POST /api/voice/clone/tasks/{voice_task_id}/check

curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

टास्क उपयोग-योग्य होने पर प्रतिक्रिया में is_available true होता है और voice_id लौटाया जाता है।

6. आवाज़ हटाएँ

एंडपॉइंट: DELETE /api/voice/clone/voices/{voice_task_id}

बिलिंग: मुफ़्त।

curl -X DELETE https://www.suno-api.io/api/voice/clone/voices/123 \
  -H "Authorization: Bearer YOUR_API_KEY"

प्रतिक्रिया उदाहरण

{
  "success": true,
  "message": "",
  "data": {
    "voice_task_id": 123,
    "deleted": true
  }
}
फ़ील्ड प्रकार विवरण
voice_task_id number हटाए गए आवाज़ टास्क की ID
deleted boolean हमेशा true; यानी हटाने का अनुरोध स्वीकार हो गया

हटाने के बाद क्या होता है

7. क्लोन की गई आवाज़ से गाना बनाएँ

एंडपॉइंट: POST /api/music/generate-with-voice

बिलिंग: प्रति कॉल 1.2 युआन।

बॉडी पैरामीटर

पैरामीटर प्रकार ज़रूरी डिफ़ॉल्ट विवरण
voice_task_id number हाँ - पहले से उपयोग-योग्य आवाज़ टास्क की ID
voice_id string नहीं - वैकल्पिक सत्यापन फ़ील्ड; भेजने पर वह टास्क की voice_id से मेल खानी चाहिए
customMode boolean नहीं false false = इंस्पिरेशन मोड, true = एडवांस्ड मोड
prompt string हाँ - इंस्पिरेशन मोड में गाने का विवरण, एडवांस्ड मोड में गीत के बोल। दोनों में खाली नहीं छोड़ सकते
style string एडवांस्ड मोड में हाँ - स्टाइल टैग; customMode=true पर खाली नहीं हो सकते
title string एडवांस्ड मोड में हाँ - गाने का शीर्षक; customMode=true पर खाली नहीं हो सकता
negativeTags string नहीं - बाहर रखने वाली शैली
instrumental boolean नहीं false संगतता फ़ील्ड; क्लोन आवाज़ से जनरेशन हमेशा गायन वाले गाने के रूप में लिया जाता है
waitAudio boolean नहीं false संगतता फ़ील्ड; यह एंडपॉइंट हमेशा प्लेसहोल्डर टास्क असिंक्रोनस रूप से लौटाता है और ऑडियो का इंतज़ार नहीं करता
model string नहीं suno-v6 सामान्य गाना जनरेशन मॉडल; suno-v6, suno-v6-wild या suno-v6-mini चुन सकते हैं
vocalGender string नहीं - गायन की लिंग-प्राथमिकता
lyricsMode string नहीं - संगतता फ़ील्ड; मौजूदा क्लोन-आवाज़ सबमिट श्रृंखला बोल मोड खुद नहीं बदलती
weirdnessConstraint number नहीं - रचनात्मकता की तीव्रता
styleWeight number नहीं - शैली का वज़न
audioWeight number नहीं प्लेटफ़ॉर्म डिफ़ॉल्ट Audio Influence (रेफ़रेंस ऑडियो का असर), रेंज 0.0-1.0. न भेजने पर प्लेटफ़ॉर्म डिफ़ॉल्ट लगता है (आधिकारिक UI में 25% के बराबर); 0 मान्य मान है और इसका मतलब है स्रोत की ओर ज़रा भी झुकना नहीं। यह अगली पंक्ति के sourceClipId से गहराई से जुड़ा है: स्रोत भेजने पर यह रेफ़रेंस ऑडियो की ओर इशारा करता है और स्रोत न भेजने पर क्लोन की गई आवाज़ की ओर; प्लेटफ़ॉर्म के पास दोनों के लिए यही एक स्लाइडर है, इसलिए इसे उपयोग के हिसाब से दो पैरामीटर में न बाँटें
sourceClipId string नहीं - स्रोत गाने की असली वर्कस्पेस clip ID। भेजने पर क्लोन आवाज़ से कवर शुरू होता है; न भेजने पर सामान्य क्लोन-आवाज़ जनरेशन होता है
sourceAudioUrl string नहीं - स्रोत का प्रदर्शन फ़ील्ड; स्वामित्व या अकाउंट के फ़ैसले में शामिल नहीं होता, सर्वर अपने डेटाबेस रिकॉर्ड पर चलता है
sourceTitle string नहीं - स्रोत का प्रदर्शन फ़ील्ड; स्वामित्व या अकाउंट के फ़ैसले में शामिल नहीं होता
clientSubmissionId string नहीं - Create UI संगतता फ़ील्ड; ग्राहक API में भरोसेमंद डिडुप्लिकेशन के लिए Idempotency-Key हेडर ही इस्तेमाल करें

suno-v6, suno-v6-wild और suno-v6-mini समर्थित हैं; खाली मॉडल को suno-v6 माना जाता है। पुराने V5/V5.5 मॉडल बंद कर दिए गए हैं, पर पुराने टास्क में अब भी पुराने नाम दिख सकते हैं।

साझा अनुरोध संरचना Create UI के संगतता फ़ील्ड जैसे task, soundType, soundLoop, soundBpm, soundKey, voiceTaskId, voiceId भी पढ़ती है, पर ये इस एंडपॉइंट के मान्य ग्राहक पैरामीटर नहीं हैं: आवाज़ टास्क voice_task_id से भेजना ज़रूरी है, वैकल्पिक वॉइस सत्यापन voice_id से, और आवाज़ से संगीत जनरेशन sound फ़ील्ड कभी नहीं पढ़ता।

जनरेशन पैरामीटर भरने का तरीका

हेडर पैरामीटर

हेडर ज़रूरी विवरण
Authorization: Bearer ... हाँ ग्राहक API टोकन
Content-Type: application/json हाँ JSON अनुरोध बॉडी
Idempotency-Key नहीं, कड़ाई से सुझाया गया अधिकतम 128 अक्षर। एक ही यूज़र, टोकन, एंडपॉइंट, key और बॉडी पर बिलिंग और टास्क बनना एक ही बार होता है

Idempotency-Key का व्यवहार:

sourceClipId से कवर की शर्तें

ग्राहक API में स्रोत से कवर पूरा सर्वर साइड सँभालता है: स्रोत गाने तक पहुँच सर्वर तय करता है और ग्राहक कोई अकाउंट जानकारी नहीं भेजता। संभव है या नहीं, यह एंडपॉइंट की असल प्रतिक्रिया तय करती है।

स्रोत मौजूदा API यूज़र का होना चाहिए, वर्कस्पेस का पूरा हुआ गाना हो और pending: न हो, तथा उसका ऑडियो उपयोग-योग्य हो। सामान्य जनरेशन, सामान्य अपलोड के स्रोत और एन्हांस्ड अपलोड का अंतिम गाना समर्थित हैं; एन्हांस्ड अपलोड के बीच के रिकॉर्ड बिलिंग से पहले अस्वीकार हो जाते हैं। सर्वर सिर्फ़ ग्राहक द्वारा भेजी गई स्रोत-गाना ID लेता है, अकाउंट ID कभी नहीं; स्रोत उपलब्ध न हो या अधूरा हो तो बिलिंग से पहले त्रुटि मिलती है।

अनुरोध उदाहरण

curl -X POST https://www.suno-api.io/api/music/generate-with-voice \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_task_id": 123,
    "customMode": true,
    "prompt": "गर्मियों की रात में समुद्र किनारे पर एक चीनी पॉप गीत लिखें",
    "style": "Mandopop, warm piano, emotional",
    "title": "गर्मियों की रात की समुद्री हवा",
    "negativeTags": "noise, low quality",
    "instrumental": false,
    "model": "suno-v6"
  }'

प्रतिक्रिया उदाहरण

{
  "success": true,
  "message": "",
  "data": {
    "client_request_id": "cu_1780480000_abcd1234",
    "items": [
      {
        "placeholder_id": "pending:cu_1780480000_abcd1234:0",
        "client_request_id": "cu_1780480000_abcd1234",
        "client_request_index": 0,
        "status": "submitted",
        "type": "voice_generate",
        "title": "गर्मियों की रात की समुद्री हवा",
        "prompt": "गर्मियों की रात में समुद्र किनारे पर एक चीनी पॉप गीत लिखें"
      },
      {
        "placeholder_id": "pending:cu_1780480000_abcd1234:1",
        "client_request_id": "cu_1780480000_abcd1234",
        "client_request_index": 1,
        "status": "submitted",
        "type": "voice_generate",
        "title": "गर्मियों की रात की समुद्री हवा",
        "prompt": "गर्मियों की रात में समुद्र किनारे पर एक चीनी पॉप गीत लिखें"
      }
    ],
    "pre_consumed_quota": 600000,
    "billing_source": "wallet"
  }
}

प्लेसहोल्डर टास्क और अंतिम song_id

generate-with-voice असिंक्रोनस जनरेशन एंडपॉइंट है। सफल प्रतिक्रिया का मतलब सिर्फ़ यह है कि जनरेशन टास्क भेज दिया गया है, यह नहीं कि गाना बन गया है।

प्रतिक्रिया के मुख्य फ़ील्ड का अर्थ:

फ़ील्ड विवरण
client_request_id इस जनरेशन अनुरोध की ट्रैकिंग ID। एक अनुरोध आम तौर पर 2 गाने बनाता है और दोनों नतीजे यही client_request_id इस्तेमाल करते हैं।
items[].placeholder_id प्लेटफ़ॉर्म का स्थानीय प्लेसहोल्डर ID, आम तौर पर pending:{client_request_id}:{index} रूप में। यह अंतिम गाना ID नहीं है।
items[].client_request_index उसी अनुरोध में नतीजे का क्रमांक, आम तौर पर 0 और 1।
items[].status भेजने के बाद की शुरुआती स्थिति, जैसे submitted। आगे की सफलता या विफलता अंतिम टास्क रिकॉर्ड से तय होती है।

ध्यान दें: pending: से शुरू होने वाला placeholder_id अंतिम song_id के रूप में इस्तेमाल नहीं हो सकता, और न ही सीधे /api/music/query या डाउनलोड एंडपॉइंट को दिया जा सकता है। सिर्फ़ pending:* मानों से /api/music/query कॉल करने पर खाली ऐरे [] लौट सकता है, क्योंकि असली गाना अभी बना नहीं है या प्लेसहोल्डर टास्क अभी अंतिम गाना ID से बदला नहीं गया।

ग़लत उदाहरण:

{
  "song_ids": "pending:cu_1780480000_abcd1234:0"
}

सही क्रम:

  1. POST /api/music/generate-with-voice कॉल करके आवाज़ वाला संगीत जनरेशन टास्क भेजें।
  2. प्रतिक्रिया से client_request_id, items[].placeholder_id और items[].client_request_index सहेजें।
  3. GET /api/music/generate-with-voice/results?client_request_id=cu_xxx पोल करें।
  4. जब items[].song_id में मान आ जाए और वह pending: से शुरू न हो, तब /api/music/query, /api/music/download-file या /api/music/download-all कॉल करें।

मौजूदा वर्शन में एक सार्वजनिक क्वेरी एंडपॉइंट भी जोड़ा गया है:

GET /api/music/generate-with-voice/results?client_request_id=cu_xxx

यह मौजूदा यूज़र के तहत उसी client_request_id के टास्क नतीजे लौटाता है, ताकि ग्राहक खुद अंतिम song_id ढूँढ सके। लौटी सूची में:

अगर आपने सिर्फ़ client_request_id या pending:* प्लेसहोल्डर ID सहेजी है, तो पहले यह नतीजा एंडपॉइंट कॉल करें; असली song_id फिर भी न मिले तो client_request_id टेक्निकल सपोर्ट को भेजकर पता लगवाएँ।

आवाज़ से जनरेशन के नतीजों की क्वेरी

एंडपॉइंट: GET /api/music/generate-with-voice/results

बिलिंग: मुफ़्त।

क्वेरी पैरामीटर

पैरामीटर प्रकार ज़रूरी विवरण
client_request_id string हाँ generate-with-voice द्वारा लौटाई अनुरोध ट्रैकिंग ID

अनुरोध उदाहरण

curl -X GET "https://www.suno-api.io/api/music/generate-with-voice/results?client_request_id=cu_1780480000_abcd1234" \
  -H "Authorization: Bearer YOUR_API_KEY"

बनते समय प्रतिक्रिया उदाहरण

{
  "success": true,
  "message": "",
  "data": {
    "client_request_id": "cu_1780480000_abcd1234",
    "status": "processing",
    "items": [
      {
        "song_id": "",
        "placeholder_id": "pending:cu_1780480000_abcd1234:0",
        "client_request_id": "cu_1780480000_abcd1234",
        "client_request_index": 0,
        "status": "processing",
        "type": "voice_generate",
        "title": "गर्मियों की रात की समुद्री हवा"
      }
    ]
  }
}

बन जाने पर प्रतिक्रिया उदाहरण

{
  "success": true,
  "message": "",
  "data": {
    "client_request_id": "cu_1780480000_abcd1234",
    "status": "completed",
    "items": [
      {
        "song_id": "song_abc123",
        "client_request_id": "cu_1780480000_abcd1234",
        "client_request_index": 0,
        "status": "completed",
        "type": "voice_generate",
        "title": "गर्मियों की रात की समुद्री हवा",
        "audio_url": "https://...",
        "image_url": "https://...",
        "duration": 180.5
      }
    ]
  }
}

ऊपरी स्तर के status का अर्थ

स्थिति विवरण
not_found मौजूदा यूज़र के तहत उस client_request_id का कोई टास्क रिकॉर्ड अभी नहीं है
processing कम से कम एक नतीजा अधूरा है; पोलिंग जारी रखें
completed सारे नतीजे पूरे हो गए; song_id से क्वेरी या डाउनलोड कर सकते हैं
partial कुछ पूरे, कुछ विफल; पहले पूरे हुए song_id सँभालें
failed सारे नतीजे विफल; items[].error_message देखें

8. एक फ़ाइल डाउनलोड करें

एंडपॉइंट: POST /api/music/download-file

बॉडी पैरामीटर

पैरामीटर प्रकार ज़रूरी विवरण
song_id string हाँ गाने की ID
kind string हाँ डाउनलोड प्रकार: audio, cover, wav, video

अनुरोध उदाहरण

curl -X POST https://www.suno-api.io/api/music/download-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "song_abc123",
    "kind": "audio"
  }' \
  --output song.mp3

प्रतिक्रिया एक फ़ाइल स्ट्रीम है; Content-Type और फ़ाइल नाम बैकएंड जो लौटाए उसी पर चलते हैं।

9. गाने के संसाधन पैकेज में डाउनलोड करें

एंडपॉइंट: POST /api/music/download-all

बॉडी पैरामीटर

पैरामीटर प्रकार ज़रूरी विवरण
song_id string हाँ गाने की ID

अनुरोध उदाहरण

curl -X POST https://www.suno-api.io/api/music/download-all \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "song_abc123"
  }' \
  --output song.zip

पैकेज में आम तौर पर ऑडियो, कवर और metadata.json होता है; अगर किसी प्रकार का संसाधन अभी नहीं बना, तो वह संग्रह में नहीं आता।

आम त्रुटियाँ

message विवरण
voice audio is required स्रोत आवाज़ भेजते समय न voice_url दिया गया न file_base64
invalid voice task id पाथ में आवाज़ टास्क ID अमान्य है
voice validation is not ready सत्यापन टेक्स्ट अभी नहीं मिला, इसलिए सत्यापन ऑडियो नहीं भेज सकते
selected voice is not ready चुनी गई आवाज़ अभी गाने नहीं बना सकती (तैयार नहीं, हटा दी गई, या मौजूदा अकाउंट की नहीं)
selected voice does not match voice task अनुरोध की voice_id टास्क से मेल नहीं खाती
voice task is required आवाज़ वाला गाना बनाते समय voice_task_id नहीं है
record not found टास्क / गाना मौजूद नहीं, मौजूदा API Key के अकाउंट का नहीं, या पहले ही हटा दिया गया (आवाज़ हटाने के बाद यह टास्क पूछने पर भी यही मिलता है)

इस समूह की त्रुटियाँ हमेशा HTTP 200 लौटाती हैं: सफलता बॉडी के success फ़ील्ड से तय करें (false यानी विफल, कारण message में) और सिर्फ़ HTTP स्टेटस कोड न देखें। आवाज़ हटाने का पूरा अर्थ (हटाने के बाद चलती है या नहीं, बहाल हो सकती है या नहीं) भाग 6 में है।

अगला【सुझाया गया】 वॉइस प्रोफ़ाइल API

API कुंजी प्राप्त करें

रजिस्टर करने के बाद कंसोल में API कुंजी बनाएँ। प्रत्येक जनरेशन का खर्च 0.6 युआन है और 2 ट्रैक मिलते हैं, डाउनलोड असीमित हैं और फ़ोन नंबर की ज़रूरत नहीं है।

API कुंजी लें अवलोकन पर लौटें