مرور کلی مستندات Suno API

به‌روزرسانی 2026-09-18 · تیم Suno-API

با ثبت‌نام از طریق ایمیل می‌توانید یک کلید API بسازید. هر تولید 0.6 یوان هزینه دارد، 2 قطعه برمی‌گرداند و شامل دانلود MP3/WAV، کاور، Extend، جداسازی استم و استنساخ صدا می‌شود. آدرس پایه: https://www.suno-api.io.

این صفحه مدل‌های موجود در حال حاضر، همه نقاط پایانی تولید و ویرایش، روش صورت‌حساب و ترتیب پیشنهادی مطالعه را فهرست می‌کند. اگر برای نخستین بار در حال اتصال هستید، آن را از بالا به پایین بخوانید؛ بخش عیب‌یابی 401/403/429 هم همین‌جاست.

پاسخ‌های کوتاه

چطور کلید API بگیرم؟ با ایمیل ثبت‌نام کنید، کنسول را باز کنید، به مدیریت توکن بروید و یک توکن بسازید. به شماره تلفن و کارت بانکی نیازی نیست.

هر فراخوانی چقدر هزینه دارد؟ هر تولید 0.6 یوان هزینه دارد و 2 قطعه برمی‌گرداند. پرس‌وجوی وضعیت، WAV، متن ترانه با برچسب زمانی و پیشنهاد پرامپت رایگان است.

کدام مدل‌ها پشتیبانی می‌شوند؟ suno-v6 (پیش‌فرض)، suno-v6-wild و suno-v6-mini. مدل‌های استاندارد تولید v5.5 و قدیمی‌تر بازنشسته شده‌اند؛ کارهای موجود تحت تأثیر قرار نمی‌گیرند.

آدرس پایه چیست؟ https://www.suno-api.io همراه با هدر Authorization: Bearer YOUR_API_KEY.

مدل‌های موجود در حال حاضر

مدل‌های مشتریان برای تولید استاندارد آهنگ عبارت‌اند از suno-v6، suno-v6-wild و suno-v6-mini. اگر model را حذف کنید، سیستم از suno-v6 استفاده می‌کند.

مدل‌های استاندارد suno-v2، suno-v3، suno-v3-5، suno-v4، suno-v4-5، suno-v4-5-all، suno-v4-5-plus، suno-v5 و suno-v5-5 بازنشسته شده‌اند. ممکن است کارهای قدیمی هنوز این نام‌ها را نشان دهند؛ این داده تاریخی است و نشانه آن نیست که مدل برای درخواست‌های جدید قابل استفاده است. جداسازی استم استثناست — به API جداسازی استم (جداسازی خواننده/موسیقی) مراجعه کنید.

احراز هویت

همه نقاط پایانی عمومی که با کلید API کار می‌کنند از یک مجموعه هدر استفاده می‌کنند:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

آدرس پایه:

https://www.suno-api.io

قواعد کلی پارامترها

سقف فیلدهای متنی

عبور از سقف متن مستقیماً HTTP 400 برمی‌گرداند: چیزی تولید نمی‌شود، مبلغی از پیش کسر نمی‌شود و رکورد کاری ساخته نمی‌شود. شمارش بر پایه نویسه یونیکد است (یک نویسه چینی 1 حساب می‌شود) و فاصله‌های ابتدا و انتها هم شمرده می‌شوند.

فیلد (شامل نام‌های جایگزین سازگار که در هر نقطه پایانی مستند شده‌اند) سقف
prompt / lyrics / description / theme / gpt_description_prompt 3000 نویسه
style_tags / tags / style / original_tags 1000 نویسه
negative_tags 1000 نویسه
song_title / title 100 نویسه

فیلد message نام فیلد متخلف و طول اندازه‌گیری‌شده را می‌گوید، پس همین دو عدد برای کوتاه‌کردن کافی است:

{
  "error": {
    "message": "style_tags must not exceed 1000 characters; received 2772",
    "type": "invalid_request_error"
  }
}

اعمال می‌شود بر: /api/music/create, /api/music/create/custom, /api/music/extend, /api/music/upload-cover, /api/music/generate-from-source, /api/music/add-instrumental, /api/music/add-vocal, /api/music/add-stem, /api/music/mashup, /api/music/sample, /api/music/inspo, /api/music/crop, /api/music/remove-section, /api/music/fade, /api/music/reverse, /api/music/speed, /api/music/replace-section, /api/music/generate-with-voice.

یک استثنا: فیلد description در POST /api/music/sounds به 100 نویسه محدود است، چون مسیر افکت‌های صوتی از سقف کوتاه‌تر پلتفرم استفاده می‌کند.

تولید ناهمزمان و آدرس‌های صوتی

نقاط پایانی تولید موسیقی به‌طور پیش‌فرض ناهمزمان کار می‌کنند. وقتی پاسخ اول مقدار status برابر pending یا submitted یا processing دارد، خالی‌بودن audio_url یا video_url یا cover_url طبیعی است و به معنی شکست کار نیست. song_id واقعی (یا client_request_id که نقطه پایانی برگردانده) را ذخیره کنید و نقطه پایانی پرس‌وجوی متناظر را فراخوانی کنید؛ آدرس صوتی را فقط پس از تکمیل وضعیت بخوانید و دانلود کنید.

⚠️ آدرس‌های صوتی پس از 7 روز منقضی می‌شوند — فایل‌هایتان را به‌موقع منتقل کنید

audio_url، wav_url، video_url و آدرس‌هایی که نقاط پایانی دانلود برمی‌گردانند از انبار شیئی پلتفرم سرو می‌شوند و به‌طور پیش‌فرض پس از 7 روز منقضی می‌شوند (فایل‌ها بازیافت می‌شوند؛ آدرس قدیمی 404 می‌دهد یا دانلود نمی‌شود).

  • در همان 7 روز، فایل‌ها را به انبار خودتان منتقل کنید (انبار شیئی خودتان، CDN یا دیسک سرور). آدرس‌های ما را لینک بلندمدت در نظر نگیرید.
  • آدرس منقضی‌شده نیازی به تولید دوباره آهنگ ندارد و هزینه اضافی هم نمی‌سازد: API پرس‌وجوی آهنگ (یا API دانلود رسانه) را دوباره فراخوانی کنید تا آدرس تازه و معتبر همان آهنگ را بگیرید.

زمان‌های انتظار و تنظیم مهلت

نقاط پایانی تولید همزمان هستند: سفارش فقط زمانی پذیرفته و برای تولید به پلتفرم سپرده می‌شود که پاسخ برسد. پیش از آن، سرویس باید حسابی را زمان‌بندی کند و بررسی امنیتی اجباری را بگذراند و هیچ پاسخ میانی وجود ندارد — هیچ نقطه پایانی دیگری هم این سفارش را نمی‌بیند. پس تنها شاهد مطمئن برای اینکه «چیزی تولید شده»، خودِ پاسخ است، نه آنچه در حین انتظار می‌بینید.

زمان‌های انتظار اندازه‌گیری‌شده (خانواده /api/music/create در محیط تولید، 2026-09-18 تا 2026-09-20)

صدک زمان انتظار
p50 حدود 1.2–1.6 ثانیه
p75 حدود 2–6 ثانیه
p90 حدود 42–49 ثانیه
p95 حدود 48–76 ثانیه
p99 حدود 109–160 ثانیه
بیشترین حدود 230 ثانیه

الزامات اتصال

  1. مهلت سمت کلاینت را ۳۰۰ ثانیه یا بیشتر بگذارید. کلاینتی که پیش‌فرض ۳۰ یا ۶۰ یا ۱۲۰ ثانیه دارد، در میانه انتظار اتصال را می‌بندد.
  2. نبود پاسخ به معنی تولید نشدن نیست. در مهلت‌تمام‌شدن یا قطع اتصال، ممکن است سفارش پذیرفته شده باشد و در حال تولید باشد.
  3. بی‌درنگ پس از پایان مهلت دوباره تلاش نکنید: ارسال تکراری سفارش دوم می‌سازد و دوباره هزینه کسر می‌کند.
  4. اگر اتصال قطع شد، کمی بعد آهنگ‌هایتان را با GET /api/music/songs (تازه‌ترین اول) فهرست کنید — سفارش‌های پذیرفته‌شده به‌طور عادی ظاهر می‌شوند. تنها وقتی دوباره بفرستید که مطمئن شده‌اید سفارش واقعاً وجود ندارد.
  5. هنگام گزارش مشکل، هدر پاسخ X-Oneapi-Request-Id را هم بفرستید تا همان درخواست مستقیم قابل ردیابی باشد.

نمی‌خواهید اتصال طولانی نگه دارید؟ از حالت رسید پذیرش استفاده کنید. POST /api/music/create و POST /api/music/create/custom یک رسید پذیرش اختیاری پشتیبانی می‌کنند: "accept_mode": "async" را به بدنه اضافه کنید (یا هدر X-Accept-Mode: async) و نقطه پایانی بی‌درنگ 202 را همراه شماره رسید برمی‌گرداند در حالی که تولید در پس‌زمینه ادامه دارد؛ با GET /api/music/requests/{request_id} پیشرفت را بپایید. کلاینتی که فقط چند ده ثانیه مهلت دارد دیگر «بی‌پاسخی» را به‌اشتباه «تولید نشدن» نمی‌خواند و با تلاش دوباره دوبار هزینه نمی‌پردازد. بخش «حالت رسید پذیرش» را در API تولید حالت ساده ببینید.

برای مرجع: python requests از timeout=300 استفاده می‌کند، urllib از urlopen(..., timeout=300)، Node از req.setTimeout(300000) و curl از --max-time 300.

فهرست نقاط پایانی پیشنهادی

قابلیت Method Path یادداشت هزینه مستندات
موجودی حساب GET /api/user/balance رایگان مشاهده
تولید در حالت ساده POST /api/music/create پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی مشاهده
تولید در حالت سفارشی POST /api/music/create/custom پرداختی؛ با پشتیبانی از جنسیت خواننده، میزان تأثیر سبک و میزان غرابت مشاهده
تولید گفتار POST /api/music/speech پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی؛ موسیقی پس‌زمینه اختیاری مشاهده
پیشرفت از طریق رسید پذیرش GET /api/music/requests/{request_id} رایگان؛ در کنار accept_mode=async مشاهده
افکت‌های صوتی POST /api/music/sounds پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی مشاهده
تولید متن ترانه POST /api/lyrics/generate در سهمیه رایگان (10/دقیقه، 300/روز)، سپس 0.1 یوان برای هر فراخوانی مشاهده
ساخت پروفایل صدا (توصیه‌شده) POST /api/music/voice-profile/create رایگان (enhanced=true با قیمت بارگذاری تقویت‌شده حساب می‌شود) مشاهده
کاور با صدا (توصیه‌شده) POST /api/music/voice-profile/cover 1.2 یوان برای هر فراخوانی؛ 2.4 یوان با Max Mode مشاهده
فهرست / جزئیات / حذف صدا (توصیه‌شده) GET/POST /api/music/voice-profile/list, /{voice_id}, /delete رایگان مشاهده
استنساخ صدا (زنجیره قدیمی، توصیه‌نشده) POST /api/voice/clone/validate رایگان مشاهده
پرس‌وجوی کار استنساخ صدا GET /api/voice/clone/tasks/:voice_task_id رایگان مشاهده
تولید دوباره متن تأیید POST /api/voice/clone/tasks/:voice_task_id/regenerate رایگان مشاهده
ارسال صدای تأیید و ساخت صدا POST /api/voice/clone/tasks/:voice_task_id/generate بر اساس قواعد استنساخ صدا حساب می‌شود مشاهده
بررسی قابل‌استفاده‌بودن صدای استنساخ‌شده POST /api/voice/clone/tasks/:voice_task_id/check رایگان مشاهده
حذف صدای استنساخ‌شده DELETE /api/voice/clone/voices/:voice_task_id رایگان مشاهده
تولید با صدای انتخابی POST /api/music/generate-with-voice پرداختی، 1.2 یوان برای هر فراخوانی؛ 2.4 یوان با Max Mode مشاهده
پرس‌وجوی نتایج تولید با صدای انتخابی GET /api/music/generate-with-voice/results رایگان مشاهده
تقویت سبک POST /api/music/boost-style در سهمیه رایگان (10/دقیقه، 300/روز)، سپس 0.1 یوان برای هر فراخوانی مشاهده
پیشنهاد پرامپت POST /api/prompts/suggestions در سهمیه رایگان (10/دقیقه، 300/روز)، سپس 0.1 یوان برای هر فراخوانی مشاهده
بارگذاری صدای منبع POST /api/music/upload-source رایگان مشاهده
ارسال بارگذاری تقویت‌شده POST /api/music/enhanced-upload پرداختی، 10 یوان برای هر فراخوانی مشاهده
فهرست کارهای بارگذاری تقویت‌شده GET /api/music/enhanced-upload رایگان مشاهده
پرس‌وجوی یک کار بارگذاری تقویت‌شده GET /api/music/enhanced-upload/:id رایگان مشاهده
لغو کار بارگذاری تقویت‌شده POST /api/music/enhanced-upload/:id/cancel رایگان؛ فقط مراحل قابل‌لغو بازپرداخت می‌شوند مشاهده
بارگذاری و سپس کاور POST /api/music/upload-cover پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی؛ برای فایل‌های صوتی بزرگ بهتر است از دو مرحله upload-source + generate-from-source استفاده کنید مشاهده
کاور از کلیپ منبع POST /api/music/generate-from-source پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی مشاهده
Extend POST /api/music/extend پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی مشاهده
Replace Section POST /api/music/replace-section پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی مشاهده
Get Full Song POST /api/music/concat پرداختی، ثابت 0.05 یوان برای هر فراخوانی مشاهده
Remaster POST /api/music/remaster پرداختی، فعلاً پیش‌فرض 0.6 یوان برای هر فراخوانی مشاهده
افزودن موسیقی بی‌کلام POST /api/music/add-instrumental پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
افزودن خواننده POST /api/music/add-vocal پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
افزودن استم POST /api/music/add-stem پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
Mashup POST /api/music/mashup پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
Sample POST /api/music/sample پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
Inspo POST /api/music/inspo پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
Crop POST /api/music/crop پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
حذف بخش POST /api/music/remove-section پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
Fade in/out POST /api/music/fade پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
معکوس‌سازی POST /api/music/reverse پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
تغییر سرعت POST /api/music/speed پرداختی، بر اساس مدل درخواستی حساب می‌شود مشاهده
جداسازی استم (جداسازی خواننده/موسیقی) POST /api/music/separate پرداختی؛ two پیش‌فرض 0.6 یوان برای هر فراخوانی، twelve برابر 3.0 یوان مشاهده
حذف خواننده POST /api/music/vocal-removal رایگان مشاهده
حذف استم POST /api/music/stem-delete رایگان مشاهده
تولید / دریافت WAV POST /api/music/wav رایگان مشاهده
دریافت MIDI POST /api/music/download-file (kind=midi) رایگان مشاهده
آدرس رسانه / پخش پیش‌نمایش POST /api/music/download-url, /api/music/generation-stream-url رایگان مشاهده
دانلود فایل آهنگ POST /api/music/download-file رایگان مشاهده
دانلود بسته آهنگ POST /api/music/download-all رایگان مشاهده
آدرس دانلود پایدار GET /api/music/download رایگان مشاهده
دانلود free2 POST /api/music/free2 پرداختی، 0.2 یوان برای هر آهنگ موفق مشاهده
پرس‌وجوی وضعیت یک آهنگ POST /api/music/query رایگان مشاهده
تاریخچه آهنگ‌های حساب GET /api/music/songs رایگان مشاهده
پارامترهای تولید آهنگ GET /api/music/songs/:song_id رایگان مشاهده
متن ترانه با برچسب زمانی POST /api/lyrics/timeline رایگان مشاهده
شرایط صدور مجوز و هویت GET /api/music/authorization/context رایگان مشاهده
اتصال هویت مجوز POST /api/music/authorization/identity رایگان؛ پس از تأیید قابل تغییر نیست مشاهده
فهرست آهنگ‌های قابل مجوزدهی GET /api/music/authorization/songs رایگان؛ نیازمند اتصال هویت مشاهده
صدور مجوز تجاری POST /api/music/authorization/certificates رایگان؛ نیازمند احراز شرایط مشاهده
تاریخچه مجوزها GET /api/music/authorization/certificates رایگان مشاهده
جزئیات مجوز GET /api/music/authorization/certificates/:id رایگان مشاهده
دانلود PDF مجوز GET /api/music/authorization/certificates/:id/download رایگان مشاهده

مسیرهای /api/voice/clone/* و /api/music/generate-with-voice زنجیره استنساخ صدای نسل اول هستند و برای اتصال‌های جدید توصیه نمی‌شوند؛ در عوض از 【توصیه‌شده】 API پروفایل صدا استفاده کنید.

پارامترهای پیشرفته: Max Mode و Variety

نقاط پایانی تولید این دو پارامتر اختیاری را پشتیبانی می‌کنند (حذف آن‌ها رفتار و قیمت قبلی را حفظ می‌کند):

پارامتر نوع بازه یادداشت
max_mode boolean true / false از توان محاسباتی بیشتری برای یکدستی در سراسر آهنگ استفاده می‌کند؛ این درخواست با 2 برابر قیمت حساب می‌شود
variety integer 0-4 درجه تنوع سبکی: 0=خاموش، 1=عادی، 2=زیاد، 3=اضافه، 4=حداکثر. برای استفاده از درجه پیش‌فرض مدل آن را خالی بگذارید (خانواده v6 پیش‌فرض 1 است)؛ هزینه اضافی ندارد

این دو پارامتر پشتیبانی می‌شوند در: POST /api/music/create, POST /api/music/create/custom, POST /api/music/extend, POST /api/music/upload-cover, POST /api/music/generate-from-source, POST /api/music/add-instrumental, POST /api/music/add-vocal, POST /api/music/add-stem, POST /api/music/mashup, POST /api/music/sample, POST /api/music/inspo, POST /api/music/replace-section, POST /api/music/voice-profile/cover, POST /api/music/speech.

فیلدهای رایج پاسخ آهنگ

نقاط پایانی تولید، کاور، extend، جداسازی و پرس‌وجو معمولاً آرایه‌ای از آهنگ‌ها با این فیلدها برمی‌گردانند:

فیلد نوع یادداشت
song_id string شناسه آهنگ یا کار
song_title string عنوان آهنگ
status string وضعیتی مانند pending، completed، failed
audio_url string آدرس صوتی، پس از تکمیل تولید برگردانده می‌شود
video_url string آدرس ویدیو، ممکن است خالی باشد
cover_url string آدرس تصویر کاور
lyrics string متن ترانه
style_tags string برچسب‌های سبک
duration number مدت صوت بر حسب ثانیه
created_at string زمان ساخت
model_version string نسخه مدل
generation_type string نوع تولید
error_message string دلیل شکست

چهار گام برای اتصال (نمونه کمینه و عملی)

همین چهار گام را انجام دهید تا نخستین آهنگتان را بگیرید؛ فهرست کامل فیلدهای هر گام در صفحه متناظر آن در فهرست نقاط پایانی پیشنهادی آمده است.

# 1) ارسال درخواست تولید: 0.6 یوان و 2 قطعه
curl -X POST https://www.suno-api.io/api/music/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "bright Mandarin pop, piano intro, warm female vocal", "model": "suno-v6"}'

# 2) تا رسیدن وضعیت به completed پرس‌وجو کنید (فاصله 3-5 ثانیه مناسب است)
curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "song_id بازگشتی از گام 1"}'

# 3) گرفتن آدرس رسانه: نقاط پایانی خواندن همه رایگان‌اند؛ song / wav / video / cover / midi موجود است
curl -X POST https://www.suno-api.io/api/music/download-url \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "همان song_id", "kind": "song"}'

وقتی مشکلی پیش آمد: 401 / 402 / 403 / 429 در مرجع خطاها توضیح داده شده‌اند؛ مهلت‌ها و کسر دوباره هزینه در بخش «زمان‌های انتظار و تنظیم مهلت» بالا؛ و جزئیات هر نقطه پایانی در فهرست نقاط پایانی پیشنهادی در پایین.

توصیه‌ها

درباره این مستندات

این صفحه بر پایه قابلیت‌هایی که Create UI در واقع نشان می‌دهد بازآرایی شده است و اتصال‌های جدید بهتر است نخست آن را بخوانند. مستندات قدیمی API هم در بخش «مستندات قدیمی API (سازگار)» برای کسانی که می‌خواهند به استفاده از آن ادامه دهند در دسترس است.

بعدیAPI استعلام موجودی حساب

دریافت کلید API

پس از ثبت‌نام از کنسول یک کلید API بسازید. هر تولید ۰٫۶ یوان هزینه دارد و ۲ قطعه برمی‌گرداند، دانلودها نامحدود است و به شماره تلفن نیازی نیست.

دریافت کلید API بازگشت به مرور کلی