Быстрый старт
Это руководство за пять минут проведёт вас от создания ключа API до первой сгенерированной песни, проверки статуса задачи и скачивания аудио. Примеры можно копировать и запускать как есть.
Текущая модель по умолчанию —
suno-v6. Модели генерации отsuno-v2доsuno-v5-5отключены: они могут встречаться в старых задачах, но новые запросы не принимают.
Шаг 1. Получите ключ API
- Откройте https://www.suno-api.io.
- Нажмите Получить ключ API и зарегистрируйтесь. Нужна только электронная почта, номер телефона не требуется.
- В консоли откройте управление токенами и создайте ключ.
- Сразу скопируйте его — ключ показывается один раз. Перед первым платным вызовом пополните баланс кодом активации.
Шаг 2. Настройте запрос
Все вызовы используют один и тот же базовый URL и одни и те же заголовки:
POST https://www.suno-api.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Шаг 3. Отправьте первый запрос
Пример 1 — генерация по описанию
Опишите музыку, а API напишет текст, мелодию и аранжировку:
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "весёлая фолк-песня о первом дне весны",
"model": "suno-v6"
}'
Ответ:
[
{
"song_id": "abc123",
"status": "pending",
"song_title": "Весенняя история",
"description": "весёлая фолк-песня о первом дне весны",
"created_at": "2026-04-22T10:30:00Z"
},
{
"song_id": "def456",
"status": "pending",
"song_title": "Весенние шаги",
"description": "весёлая фолк-песня о первом дне весны",
"created_at": "2026-04-22T10:30:00Z"
}
]
Каждый запуск возвращает две разные версии на выбор. Одна генерация стоит 0,6 ¥.
Пример 2 — проверка статуса
Передайте полученные song_id в эндпоинт запроса статуса:
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["abc123", "def456"],
"model": "suno-v6"
}'
Пока задача выполняется:
[
{
"song_id": "abc123",
"status": "processing",
"song_title": "Весенняя история",
"progress": "60%"
}
]
Когда всё готово:
[
{
"song_id": "abc123",
"status": "completed",
"song_title": "Весенняя история",
"audio_url": "https://media.code-go.com/assets/abc123-mp3.mp3",
"video_url": "https://media.code-go.com/assets/abc123-mp4.mp4",
"cover_url": "https://media.code-go.com/assets/abc123-cover.jpg",
"duration": 168
}
]
Поле status проходит значения pending, submitted, processing и доходит до
completed. Адреса могут оставаться пустыми, пока задача выполняется: ориентируйтесь на
status, а не на наличие audio_url.
Шаг 4. Скачайте файл
Когда status равен completed, просто запросите audio_url. Скачивание в MP3 и WAV
неограниченно и не стоит дополнительных денег. Если нужен звук без потерь для монтажа,
используйте эндпоинт WAV.
Типовые сценарии
Фоновая музыка для видео
{
"description": "спокойный lo-fi фон для видео о продукте, без вокала, стабильная динамика",
"instrumental": true,
"model": "suno-v6"
}
При instrumental равном true в результате не будет вокала.
Свой текст и стиль
{
"lyrics": "[Verse 1]\nОгни города гаснут медленно\n\n[Chorus]\nМы просто идём дальше",
"style": "acoustic pop, тёплый женский вокал, 92 BPM",
"model": "suno-v6"
}
Опрос до завершения
import time
import requests
API_KEY = "sk-your-key-here"
BASE = "https://www.suno-api.io"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
created = requests.post(
f"{BASE}/api/music/create",
headers=HEADERS,
json={"description": "весёлая фолк-песня о весне", "model": "suno-v6"},
).json()
song_ids = [track["song_id"] for track in created]
for _ in range(60):
time.sleep(10)
tracks = requests.post(
f"{BASE}/api/music/query",
headers=HEADERS,
json={"song_ids": song_ids, "model": "suno-v6"},
).json()
if all(track.get("status") == "completed" for track in tracks):
for track in tracks:
print(track["song_title"], track["audio_url"])
break
Обработка ошибок
Основные коды
| Код | Значение | Что делать |
|---|---|---|
| 200 | Успех | Читайте тело ответа |
| 400 | Неверный запрос — параметр отсутствует или искажён | Сверьтесь со справочником |
| 401 | Ключ отсутствует или недействителен | Проверьте заголовок Authorization |
| 403 | Нет доступа, обычно недостаточно средств | Пополните баланс |
| 429 | Превышен лимит запросов | Повторите с экспоненциальной задержкой |
| 500 | Ошибка сервера | Повторите; если не проходит, обратитесь в поддержку |
Формат ошибки
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
Рекомендации
- Храните ключ на сервере, никогда в браузере или в распространяемых приложениях.
- Опрашивайте статус раз в 10–15 секунд, а не в плотном цикле.
- Сохраняйте
song_id: это единственный идентификатор, по которому потом можно найти аудио. - Повторяйте запрос при
429и500; при400и401сначала устраните причину. - Неудачные генерации возвращаются автоматически, поэтому неудачная задача ничего не стоит.
Что дальше
- Аутентификация — ключи, ошибки и лимиты
- Поддерживаемые модели — названия моделей, стемы и отключённые модели
Получить API-ключ
Создайте API-ключ в консоли после регистрации. Одна генерация стоит 0,6 ¥ и возвращает 2 трека, загрузки не ограничены, номер телефона не нужен.
Получить API-ключ Вернуться к обзору