
Ключ Suno API: создание и первый запрос через reAPI
Получите ключ Suno API для reAPI, настройте Bearer, отправьте запрос на четырёх языках, дождитесь аудио и исправьте ошибки ключа, баланса или выполнения задачи.
Чтобы получить ключ Suno API для работы через reAPI, войдите в reAPI, откройте API Keys и создайте ключ. Передавайте его в Authorization: Bearer <key> при обращении к https://reapi.ai/api/v1. Это учётные данные reAPI для эндпоинтов reAPI, а не ключ разработчика, выпущенный Suno.[1]
По состоянию на 14 сентября 2026 года проверенные для серии официальные материалы Suno указывают на заявку о заинтересованности в партнёрстве, а не на документированный публичный процесс самостоятельного выпуска ключа. Разницу объясняет статья о статусе официального API. Здесь разобран путь reAPI: создание ключа, первый запрос и завершённый результат с аудио.[2]
Главное
- Создайте ключ в настройках API Keys и сразу сохраните его. Документация указывает, что полностью он показывается только один раз.[1]
- Отправляйте заголовок Bearer с сервера. Вход на сайт Suno или подписка не заменяют эти учётные данные.
- Передайте
model: "suno-music"иversion: "V6"на эндпоинт генерации аудио.[3] - Сохраните возвращённый
idи опрашивайте задачу. HTTP 200 сам по себе не означает успешное завершение музыки.[4] - Завершённый запрос песни стоит 60 кредитов, или 0,06 доллара, и включает два варианта. Опрос бесплатный; перед отправкой проверьте баланс.[3]
Suno API: как создать ключ для reAPI
Понадобятся аккаунт reAPI, доступ к настройкам API Keys и достаточное число кредитов для выбранной операции. В примерах используется терминал, Python с requests, Node.js со встроенным fetch или Go. Выберите один пример: запуск всех четырёх создаст четыре запроса генерации.
- Войдите в аккаунт и откройте настройки API Keys.
- Нажмите CREATE API KEY — это название проверено на действующей странице. В руководстве по аутентификации кнопка названа «Create new key».
- Укажите понятное имя, например
music-development. - Скопируйте показанный ключ в менеджер секретов сервера или локальный файл окружения, исключённый из контроля версий.[1]
Задайте REAPI_API_KEY в окружении процесса, запускающего пример. Это имя переменной примера, а не обязательное поле API. Не вставляйте настоящий ключ в код, браузерную сборку, репозиторий, URL или сообщение поддержке. Документированный префикс рабочего ключа — rk_live_. Вариант rk_test_ с имитацией ответов всё ещё помечен «coming soon», поэтому здесь он не считается доступным бесплатным тестовым режимом.[1]
Отправьте первый запрос песни с аутентификацией
Все четыре примера отправляют одинаковый запрос в режиме идеи. custom_mode: false означает, что prompt описывает песню; instrumental: false запрашивает вокал. Операция задаётся в model, версия генерации — в version. Используйте актуальные имена полей snake_case.[3]
30 секунд в примерах — сетевой тайм-аут, а не срок завершения песни. После отправки генерация продолжается асинхронно. Каждый пример проверяет HTTP-ошибки и выводит ID задачи. Это альтернативные способы отправки; затем выполните опрос.
cURL
Здесь также нужен jq для извлечения id. Переменная окружения уже должна содержать ключ.
: "${REAPI_API_KEY:?Set REAPI_API_KEY in your environment}"
curl --fail-with-body --silent --show-error --max-time 30 \
https://reapi.ai/api/v1/audio/generations \
-H "Authorization: Bearer $REAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-music",
"version": "V6",
"custom_mode": false,
"instrumental": false,
"prompt": "An upbeat acoustic song about taking the first train home"
}' > suno-submit.json && jq -er '.id' suno-submit.jsonPython
При необходимости установите requests. Сохраните и запустите код на сервере или в локальном терминале.
import os
import requests
response = requests.post(
"https://reapi.ai/api/v1/audio/generations",
headers={"Authorization": f"Bearer {os.environ['REAPI_API_KEY']}"},
json={
"model": "suno-music",
"version": "V6",
"custom_mode": False,
"instrumental": False,
"prompt": "An upbeat acoustic song about taking the first train home",
},
timeout=30,
)
response.raise_for_status()
print(response.json()["id"])Node.js
Сохраните код как submit.mjs и выполните node submit.mjs с заданной переменной окружения.
const key = process.env.REAPI_API_KEY;
if (!key) throw new Error("Set REAPI_API_KEY in your environment");
const response = await fetch("https://reapi.ai/api/v1/audio/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${key}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "suno-music",
version: "V6",
custom_mode: false,
instrumental: false,
prompt: "An upbeat acoustic song about taking the first train home",
}),
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const task = await response.json();
if (!task.id) throw new Error("Submission response has no task id");
console.log(task.id);Go
Сохраните его как main.go и запустите go run main.go. Используется только стандартная библиотека.
package main
import (
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
"strings"
"time"
)
func main() {
if err := submit(); err != nil {
log.Fatal(err)
}
}
func submit() error {
key := os.Getenv("REAPI_API_KEY")
if key == "" {
return fmt.Errorf("set REAPI_API_KEY in your environment")
}
payload := `{"model":"suno-music","version":"V6","custom_mode":false,"instrumental":false,"prompt":"An upbeat acoustic song about taking the first train home"}`
req, err := http.NewRequest("POST",
"https://reapi.ai/api/v1/audio/generations", strings.NewReader(payload))
if err != nil {
return err
}
req.Header.Set("Authorization", "Bearer "+key)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 30 * time.Second}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return err
}
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
return fmt.Errorf("HTTP %d: %s", resp.StatusCode, body)
}
var task struct { ID string `json:"id"` }
if err := json.Unmarshal(body, &task); err != nil {
return err
}
if task.ID == "" {
return fmt.Errorf("submission response has no task id")
}
fmt.Println(task.ID)
return nil
}Сохраните ID задачи и дождитесь готового аудио
Ответ на отправку содержит id, model, status и created_at. Сохранять нужно id, даже если в описании он называется task ID. Не пытайтесь читать отсутствующее верхнеуровневое поле task_id.[3]
Замените заглушку ниже полученным ID. Команда проверяет статус один раз. Пока задача в состоянии processing, повторяйте примерно раз в три секунды, установив подходящий приложению предел ожидания на клиенте. Справочник рекомендует выдерживать интервал; опрос не расходует кредиты.[4]
: "${REAPI_API_KEY:?Set REAPI_API_KEY in your environment}"
TASK_ID='replace-with-the-returned-id'
curl --fail-with-body --silent --show-error --max-time 30 \
"https://reapi.ai/api/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $REAPI_API_KEY"Проверяйте статус JSON, а не только HTTP:
processing: сохраните ID и подождите перед следующим запросом.completed: прочитайтеoutput.audio_urlsи описанные в документации Suno записиtracks.failed: завершите цикл и проверьтеerror.code,error.message,usage.credits.[3][4]
Проверка в рабочей среде для этой серии завершилась и вернула два URL аудио. Она подтверждает один процесс генерации, но не является тестом задержки или гарантией успеха всех запросов. Справочник Suno гарантирует у трека url; метаданные вроде ID, текста и длительности могут отсутствовать, если пусты. Сохраняйте ID при получении, если они нужны для последующих правок.[3]
Если локальное ожидание истекло после получения ID, продолжите опрос той же задачи позже. Не создавайте новую генерацию лишь потому, что клиент перестал ждать. Для долгого хранения скопируйте готовое аудио в собственное хранилище: контракт задач не обещает вечное хранение на CDN.[4]
Исправьте ошибки аутентификации, баланса и параметров
Публичный справочник разделяет HTTP-ошибки и сбои задач. Найденная задача может вернуть HTTP 200, но в JSON будет status: "failed" и ошибка 8xxxx.[5]
| HTTP или результат | Что проверить | Следующий шаг |
|---|---|---|
401, 10001–10004 | Заголовок Bearer отсутствует или неверен; ключ недействителен либо отозван | Исправить заголовок или заменить ключ |
400, 20002–20004 | Нет обязательного поля, неверное значение или модель не подходит эндпоинту | Использовать аудиоэндпоинт, suno-music, version и актуальные поля |
402, 30001 | Кредитов меньше стоимости запроса | Проверить баланс до повторной отправки |
404, 40001 | Задачи нет или она принадлежит другому пользователю | Использовать полученный ID и соответствующий аккаунт |
429, 50001 | Превышена частота запросов | Подождать согласно Retry-After |
200 с status: "failed" | Ошибка выполнения в error.code | Прочитать ошибку задачи, не считать HTTP 200 успехом |
Сохраняйте request_id, если он есть в ошибке, а также метод запроса и примерное время. Это помогает расследованию без передачи ключа. Исправьте параметры, аутентификацию или баланс до новой попытки.[5]
Что означают бесплатный доступ и смена ключей
Ключ аутентифицирует запросы, но не делает генерацию бесплатной. Условный баланс 0,10 доллара равен 100 кредитам. При 60 кредитах за завершённый запрос песни его хватит на один запрос; останутся 40 кредитов, чего недостаточно для второго полного запроса. Проверяйте реальные условия акции и доступный баланс, не предполагая существования безлимитного бесплатного ключа Suno API.[3]
Плату за правки и экспорт объясняет руководство по ценам Suno API. При утечке отзовите ключ в настройках. Для плановой смены создайте новый, обновите секрет на сервере, проверьте новые учётные данные, затем отзовите старый. По документации уже ожидающие задачи продолжают выполняться после отзыва и могут списывать кредиты. Отзыв запрещает новые запросы, а не отменяет существующие задачи.[1]
Частые вопросы
Где получить ключ Suno API?
Для reAPI используйте настройки API Keys, где создаются учётные данные reAPI. Официальная форма Suno — отдельная партнёрская заявка.[1][2]
Входит ли этот ключ в подписку Suno?
Нет. Подписка Suno и аккаунт reAPI независимы. Используйте ключ сервиса, чей эндпоинт вызываете; подробнее — в объяснении официального доступа.
Можно ли получить бесплатный ключ для неограниченной генерации?
Учётные данные не означают бесконечный баланс. Проверяйте остаток и цену операции. Примерные 0,10 доллара покрывают один запрос песни за 0,06 доллара, а не постоянную бесплатную генерацию.[3]
Как работает аутентификация Suno API в reAPI?
Отправляйте Authorization: Bearer <key> и в POST генерации, и в GET задачи. Храните ключ на сервере, а не в поле prompt тела JSON.[1]
Почему пришёл HTTP 200, но песни нет?
Отправка асинхронная. Сохраните id и опрашивайте задачу до JSON-статуса completed или failed. Ответ опроса может иметь HTTP 200 даже при неудачной задаче.[4][5]
Меняется ли ключ при переходе на V6 Mini или Wild?
Bearer-аутентификация остаётся той же. Для поддерживаемой операции выберите V6_MINI или V6_WILD в version; не заменяйте model названием версии. Правила параметров есть в руководстве по интеграции V6.[3]
Сначала завершите один запрос
Рабочий ключ Suno API — лишь первый шаг. Сохраните ID задачи, обработайте оба конечных состояния и сохраните аудио завершённой задачи. Когда этот небольшой процесс заработает, добавляйте собственный текст, другие варианты V6 или последующее редактирование по справочнику Suno, учитывая параметры и цены.
Источники
- reAPI. Authentication and key management. Retrieved September 14, 2026 from Authentication; key-creation button also checked at API Keys.
- Suno. Developer API partner-interest application. Retrieved September 14, 2026 from official application.
- reAPI. Suno operation and version reference. Retrieved September 14, 2026 from Suno, Suno V6 and the public rate card.
- reAPI. Task polling reference. Retrieved September 14, 2026 from Tasks.
- reAPI. Error codes and handling. Retrieved September 14, 2026 from Errors.
Автор

Категории
Ещё статьи

Сравнение GPT Image 2 и Nano Banana Pro: редактирование, 4K
Сравниваем GPT Image 2 и Nano Banana Pro: редактирование, референсы, 4K, поиск grounded, прозрачность, управление API и актуальные цены на reAPI.


Статус Seedance 2.5: API, цены и ограничения
Seedance 2.5 уже доступен. Модельный ID reAPI, цены 480p/720p, 30-секундный вывод, пределы референсов и тарификация исходного видео.


API Midjourney: V8.2 без Discord и риски автоматизации (2026)
Официальный ответ про API Midjourney, что изменилось в V8.2, почему автоматизация аккаунта опасна и как оценить авторизованные варианты доступа.
