Огляд документації Suno API
Зареєструйтеся за адресою електронної пошти — і зможете створити ключ API. Одна генерація коштує 0,6 ¥, повертає 2 пісні та охоплює завантаження MP3/WAV, кавер-пісні, Extend, стеми й клонування голосу. Базова URL-адреса: https://www.suno-api.io.
На цій сторінці зібрано доступні нині моделі, усі кінцеві точки генерації й редагування, принцип оплати та рекомендований порядок читання. Якщо ви інтегруєте вперше, читайте згори вниз; розділи про помилки 401/403/429 теж тут.
Короткі відповіді
Як отримати ключ API? Зареєструйтеся за адресою електронної пошти, відкрийте консоль, перейдіть до керування токенами та створіть токен. Номер телефону й банківська картка не потрібні.
Скільки коштує один виклик? Одна генерація коштує 0,6 ¥ і повертає 2 пісні. Запити стану, WAV, текст із часовими мітками та підказки промптів безкоштовні.
Які моделі підтримуються? suno-v6 (типова), suno-v6-wild і suno-v6-mini. Стандартні моделі генерації v5.5 і старші виведено з ужитку; на наявні роботи це не впливає.
Яка базова URL-адреса? 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
Базова URL-адреса:
https://www.suno-api.io
Загальні правила щодо параметрів
- Значення
numberу тілі запиту має бути числом JSON, а не рядком із відсотками. Інтенсивність 50% записують як0.5, ніколи як50чи50%. - Значення
booleanмає бутиtrueабоfalse. Не надсилайте замість них0чи1. - Поля, позначені "ні", можна не надсилати взагалі. Якщо не впевнені, що робить параметр, опустіть його, щоб сервіс використав типову поведінку; не надсилайте порожній рядок,
nullчи0замість "не надіслано", бо0є припустимим значенням для частини числових полів. - Назви полів чутливі до написання. Кожна сторінка кінцевої точки перелічує рекомендовану назву та сумісні псевдоніми; надсилайте точно так, як показано в таблиці параметрів. Там, де документація каже, що приймаються і snake_case, і camelCase, не надсилайте обидва одночасно.
- Кожне поле тривалості, що закінчується на
_sабоSeconds, вимірюється в секундах і приймає десяткові значення. Позначки часу Unix описано окремо, зокрема те, у секундах вони чи в мілісекундах. - Ідентифікатор, що починається з
pending:, — це тимчасовий заповнювач платформи, а не справжнійsong_id. Використовуйте його лише там, де кінцева точка явно документує підтримку заповнювачів; інакше дочекайтеся справжньогоsong_id.
Обмеження текстових полів
Перевищення текстового ліміту повертає одразу HTTP 400: нічого не генерується, кошти не списуються наперед і запис завдання не створюється. Лічба ведеться в символах Unicode (один ієрогліф китайської рахується як 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 с |
- Близько 10% запитів тривають понад 30 секунд, а близько 1% — від 1 до 2 хвилин. Повільний запит зазвичай означає, що саме цьому довелося спершу пройти перевірку безпеки.
- Поля запиту, форма відповіді, коди помилок і оплата не змінилися, тож наявним інтеграціям потрібно лише збільшити тайм-аут клієнта — без жодних інших змін у коді.
Вимоги до інтеграції
- Встановіть тайм-аут клієнта 300 секунд або більше. Клієнти з типовими 30, 60 чи 120 секундами розірвуть з'єднання під час очікування.
- Відсутність відповіді не означає, що нічого не згенеровано. Під час тайм-ауту чи обриву з'єднання замовлення могло вже бути прийняте й генеруватися.
- Не повторюйте запит одразу після тайм-ауту: повторне надсилання створює друге замовлення і списує кошти ще раз.
- Якщо з'єднання обірвалося, трохи згодом перелічіть свої пісні через
GET /api/music/songs(найновіші спершу) — прийняті замовлення з'являться як завжди. Надсилайте повторно лише тоді, коли переконалися, що замовлення справді немає. - Повідомляючи про проблему, долучіть заголовок відповіді
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 |
Використовує більше обчислень для кращої цілісності всієї пісні; цей запит тарифікується за подвійною ціною |
| 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.
- Подвійна ціна на практиці: кінцева точка за 0,6 ¥ стає 1,2 ¥ з
max_mode; генерація з вибраним голосом коштує 1,2 ¥ за виклик, а з Max Mode — 2,4 ¥; кавер власним голосом із 【Рекомендовано】 API голосового профілю теж 1,2 ¥ за виклик (2,4 ¥ зmax_mode). varietyзастосовується лише до сімействаsuno-v6(suno-v6,suno-v6-wild,suno-v6-mini); надсилання його з будь-якою іншою моделлю повертає 400.- Звукові ефекти, стеми, concat, WAV і дії редагування Studio (crop, видалення ділянки, fade, реверс, зміна швидкості тощо) не приймають цих параметрів — явне надсилання повертає 400, щоб жоден параметр не ігнорувався тихо.
variety— це ціле число від 0 до 4; аstyle_weightіweirdness_constraint— десяткові від 0 до 1, тож шкали різні.
Типові поля відповіді про пісню
Кінцеві точки генерації, каверу, 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) Опитуйте завдання, доки status не стане 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 описано в довіднику помилок; тайм-аути й подвійні списання — у розділі "Час очікування та налаштування тайм-ауту" вище; подробиці кожної кінцевої точки — у рекомендованому переліку нижче.
Рекомендації
- Новим інтеграціям варто використовувати
suno-v6в усьому ланцюгу. - Для кінцевих точок, що вказують типову ціну, фактично списана сума відповідає поточним налаштуванням цін у бек-офісі та запитаній моделі.
- Кінцеві точки генерації зазвичай спершу повертають завдання; фінальне аудіо читайте через
/api/music/query. wait_completion=trueблокує до завершення і підходить для тестів із малим обсягом; у продакшені краще опитування.- Кінцеві точки генерації можуть відповідати дуже довго — встановіть тайм-аут клієнта 300 секунд або більше і пам'ятайте, що "немає відповіді" не те саме, що "нічого не згенеровано"; див. розділ "Час очікування та налаштування тайм-ауту" вище.
- Можливості завантаження, каверу, replace і WAV залежать від акаунтів платформи та прав на вихідний кліп; у разі невдачі спершу прочитайте повернуті
messageабоerror_message.
Про цю документацію
Цю сторінку переструктурували відповідно до можливостей, які Create UI справді показує, і новим інтеграціям варто читати її першою. Старіша документація API й досі доступна в розділі "Стара документація API (сумісна)" для тих, хто хоче нею користуватися далі.
Отримати API-ключ
Створіть API-ключ у консолі після реєстрації. Одна генерація коштує 0,6 ¥ і повертає 2 треки, завантаження необмежені, номер телефону не потрібен.
Отримати API-ключ Повернутися до огляду