API завантаження Free2
Опис кінцевої точки
Free2 — це окремий платний канал завантаження: він розбирає MP3/WAV/текст пісні/метадані за ідентифікатором пісні (або за посиланням на пісню suno.com) і повертає адреси завантаження, розміщені на платформі. Він приймає лише API-ключ, не приймає сесію входу з браузера, і відповідь ніколи не містить зашифрованого джерела відтворення Suno.
Кінцева точка: POST /api/music/free2
Оплата: Списується за кількістю успішних пісень, поточне типове значення — 0,2 юаня за пісню. Вибір кількох типів файлів в одному запиті не додає вартості; пісні, які не вдалося розібрати, не оплачуються. Максимум 10 пісень за запит (після дедуплікації); фактично списана сума залежить від налаштувань цін у бек-офісі.
Рекомендована модель: suno-v6. Доступні suno-v6, suno-v6-wild і suno-v6-mini.
Автентифікація
| Параметр | Тип | Обов'язково | Примітки |
|---|---|---|---|
| Authorization | string | так | Bearer YOUR_API_KEY |
| Content-Type | string | так | application/json |
Параметри запиту
| Параметр | Тип | Обов'язково | Типово | Примітки |
|---|---|---|---|---|
| song_id | string | ні | - | Ідентифікатор однієї пісні; також працює посилання на пісню suno.com (включно з коротким /s/) |
| song_ids | string[] | ні | - | Форма для кількох пісень (рекомендовано), не більше 10 пісень за запит |
| songs | string[] | ні | - | Псевдонім song_ids |
| files | string[] | так | - | Потрібні типи файлів: mp3, wav, lyrics, metadata; m4a не підтримується |
Надайте щонайменше одне з song_id або song_ids; додайте щонайменше одне значення в files.
Приклад запиту
curl -X POST https://www.suno-api.io/api/music/free2 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["song_id_1", "song_id_2"],
"files": ["mp3", "wav", "lyrics"]
}'
Відповідь
{
"code": 200,
"message": "success",
"data": {
"songs": [
{
"song_id": "song_id_1",
"files": [
{"type": "mp3", "url": "https://media.suno-api.io/assets/song_id_1-free2-v1-mp3.mp3"}
]
},
{
"song_id": "song_id_2",
"files": [],
"error": {"code": "song_not_found", "message": "song not found or not owned by the current user"}
}
],
"requested_songs": 2,
"succeeded_songs": 1,
"price": 0.2
}
}
| Поле | Тип | Примітки |
|---|---|---|
| songs | array | Результат за кожною піснею: song_id, files[] і error у разі невдачі |
| requested_songs | number | Кількість пісень після нормалізації та дедуплікації |
| succeeded_songs | number | Кількість успішних; оплата рахується за цим числом |
| price | number | Фактично списана сума за цей виклик (юані) |
Якщо запрошено лише одну пісню, відповідь додатково містить song_id і files на верхньому рівні — для сумісності зі старою формою для однієї пісні.
Повторне використання кешованих адрес (без оплати)
Для пісні, яку ви вже завантажували, повторне завантаження не потребує нового розбору й не оплачується знову: скористайтеся POST /api/music/free2/cached, щоб отримати актуальні адреси тих файлів, які цей акаунт завантажував раніше.
Кінцева точка: POST /api/music/free2/cached
Оплата: Безкоштовно. Це кеш лише для читання: без розбору, без перекодування, без списань; повертаються лише адреси, які вже підготовлені й не вилучені.
⚠️ Термін дії адреси завантаження: 7 днів — збережіть вчасно.
songs[].files[].urlнадається об'єктним сховищем платформи й типово втрачає чинність через 7 днів (файли вилучають, а стара адреса повертає 404); збережіть їх у власне сховище протягом цих 7 днів. Після завершення терміну викличтеPOST /api/music/free2знову, щоб підготувати файли заново й отримати нову дійсну адресу (ця повторна підготовка тарифікується за звичайними правилами;/api/music/free2/cachedповертає лише ще дійсні кешовані адреси).
Параметри запиту: ідентичні до POST /api/music/free2 (будь-що одне з song_id / song_ids / songs і щонайменше одне значення в files).
curl -X POST https://www.suno-api.io/api/music/free2/cached \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "song_ids": ["98ca3f1d-…", "a185b3d9-…"], "files": ["mp3"] }'
{
"success": true,
"data": {
"items": [
{ "song_id": "98ca3f1d-…", "type": "mp3", "url": "https://…/assets/98ca3f1d-…-free2-v1-mp3.mp3" }
],
"songs": [
{ "song_id": "98ca3f1d-…", "files": [ { "type": "mp3", "url": "https://…" } ], "missing_files": [] },
{ "song_id": "a185b3d9-…", "files": [], "missing_files": ["mp3"] }
],
"missing": ["a185b3d9-…"]
}
}
| Поле | Тип | Примітки |
|---|---|---|
| items | array | Перелік адрес, готових до завантаження (song_id + type + url) |
| songs | array | Результати за піснями; missing_files — формати, яких цього разу не було в кеші |
| missing | string[] | Для цієї пісні взагалі немає придатного кешу (потрібен повторний розбір через POST /api/music/free2, а він тарифікується за кожну пісню) |
Адреси повертаються лише для пісень, які ви завантажували раніше; пісні без історії завантажень або ті, чиї файли вже вилучено, з'являються тільки в missing і жодної адреси для них не повертається.
Примітки
POST /api/music/free2може розібрати будь-яку публічну пісню Suno (зокрема ті, яких немає на цій платформі); якщо пісню не вдалося розібрати,errorповертається лише для неї і решта пісень у тому ж пакеті не страждає. НатомістьPOST /api/music/free2/cachedповертає адреси лише для пісень, які завантажував цей акаунт.- Перший розбір пісні створює розміщені файли, які далі використовуються повторно; не передавайте однакові типи в
files— сервер прибирає дублікати автоматично. - Відмінність від API завантаження та попереднього прослуховування медіа пісні: Free2 платний, підтримує пряме передавання посилань suno.com і не надає типів таймлайну/MIDI, окрім тексту пісні.
Отримати API-ключ
Створіть API-ключ у консолі після реєстрації. Одна генерація коштує 0,6 ¥ і повертає 2 треки, завантаження необмежені, номер телефону не потрібен.
Отримати API-ключ Повернутися до огляду