API بارگذاری تقویت‌شده

به‌روزرسانی 2026-09-18 · تیم Suno-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 کسر می‌شود. اگر کار ناموفق شود یا در مرحله مجاز لغو شود، مبلغ کسرشده به‌طور خودکار برگشت داده می‌شود. مبلغی که واقعاً کسر می‌شود تابع پیکربندی قیمت در پنل مدیریت است.

جریان فراخوانی

  1. برای بارگذاری فایل صوتی، POST /api/music/enhanced-upload را فراخوانی کنید.
  2. مقدار task_id برگشتی را ذخیره کنید.
  3. برای دیدن پیشرفت و نتیجه، GET /api/music/enhanced-upload/:id را فراخوانی کنید.
  4. وقتی سونو رندر نهایی را تمام کرد، سرویس با حساب سونوی مرتبط با همان کار، نقطه پایانی دانلود مجاز Studio را فراخوانی می‌کند و MP3 را در سرویس رسانه CN2 می‌نویسد.
  5. کار تنها زمانی completed می‌شود که دارایی CN2 آماده باشد؛ در آن هنگام نشانی صدای CDN از audio_url در پاسخ خوانده می‌شود.

/api/forbidden نشانی جانشینی است که ممکن است در فراداده Suno Studio دیده شود؛ منبع قابل‌پخش یا قابل‌دانلود نیست. هرگز به مشتری برگردانده نمی‌شود و مبنای اتمام کار قرار نمی‌گیرد. اگر رندر تمام شده باشد اما CN2 هنوز آماده‌سازی کند، نقطه پایانی همچنان processing برمی‌گرداند و audio_url نمی‌دهد؛ کلاینت باید پرس‌وجو را ادامه دهد و نشانی خالی را شکست تلقی نکند.

ارسال بارگذاری تقویت‌شده

Headers

پارامتر نوع الزامی یادداشت
Authorization string بله Bearer YOUR_API_KEY
Content-Type string خیر در درخواست‌های multipart آن را دستی تنظیم نکنید؛ بگذارید کلاینت بسازد

پارامترهای فرم

پارامتر نوع الزامی پیش‌فرض یادداشت
file file بله - فایل صوتی محلی، حداکثر 80 مگابایت
title string خیر نام فایل بدون پسوند عنوان آهنگ

نمونه درخواست

نمونه زیر همان شیوه فراخوانی زمان اعتبارسنجی در محیط واقعی است، اما کلید API با یک مقدار جانشین جایگزین شده است.

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 جاری را برمی‌گرداند و کارهای تولید معمولی، کاور و ادامه با آن مخلوط نمی‌شوند.

پارامترهای پرس‌وجو

پارامتر نوع الزامی پیش‌فرض یادداشت
p number خیر 1 شماره صفحه
page_size number خیر مقدار پیش‌فرض سامانه تعداد در هر صفحه، حداکثر ۱۰۰

نمونه درخواست

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 شناسه کار بارگذاری تقویت‌شده؛ در پرس‌وجوها و لغو بعدی از این مقدار استفاده کنید
song_id string در حین پردازش pending:enhanced-upload:* و پس از اتمام شناسه واقعی آهنگ
client_request_id string شناسه رهگیری درخواست کلاینت
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 دلیل شکست

نکات

شروع کاور پس از اتمام بارگذاری تقویت‌شده

پس از اتمام بارگذاری تقویت‌شده می‌توانید نتیجه را به‌عنوان کلیپ منبع به کار ببرید و POST /api/music/generate-from-source را برای شروع کاور فراخوانی کنید.

توجه: کاور یک نقطه پایانی همزمان است — سفارش تنها با رسیدن پاسخ پذیرفته می‌شود و بر پایه اندازه‌گیری ممکن است تا حدود ۲۳۰ ثانیه طول بکشد. مهلت سمت کلاینت را ۳۰۰ ثانیه یا بیشتر بگذارید و بلافاصله پس از مهلت دوباره تلاش نکنید. بخش «زمان‌های انتظار و تنظیم مهلت» در مرور کلی API جدید را ببینید.

نخست GET /api/music/enhanced-upload/:id را تا زمانی پرس‌وجو کنید که task.status برابر completed شود. در آن هنگام:

هنگام شروع کاور، همان کلید API بارگذاری تقویت‌شده را به کار ببرید و درخواست را طبق نگاشت فیلدهای زیر بسازید.

فیلد درخواست کاور منبع مقدار
sourceClipId task.song_id از نتیجه کامل‌شده بارگذاری تقویت‌شده
sourceAudioUrl task.audio_url از نتیجه کامل‌شده بارگذاری تقویت‌شده
sourceTitle task.title از نتیجه کامل‌شده بارگذاری تقویت‌شده

بقیه پارامترها (متن، سبک، عنوان، مدل) را طبق API کاور از کلیپ منبع پر کنید. پس از آنکه نقطه پایانی کاور clips[].song_id تازه را برگرداند، با POST /api/music/query وضعیت تولید و صدای نهایی را بپرسید.

بعدیAPI بارگذاری و سپس کاور در یک مرحله

دریافت کلید API

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

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