Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Ключ Suno API: создание и первый запрос через reAPI
2026/09/14

Ключ 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. Выберите один пример: запуск всех четырёх создаст четыре запроса генерации.

  1. Войдите в аккаунт и откройте настройки API Keys.
  2. Нажмите CREATE API KEY — это название проверено на действующей странице. В руководстве по аутентификации кнопка названа «Create new key».
  3. Укажите понятное имя, например music-development.
  4. Скопируйте показанный ключ в менеджер секретов сервера или локальный файл окружения, исключённый из контроля версий.[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.json

Python

При необходимости установите 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, 1000110004Заголовок Bearer отсутствует или неверен; ключ недействителен либо отозванИсправить заголовок или заменить ключ
400, 2000220004Нет обязательного поля, неверное значение или модель не подходит эндпоинтуИспользовать аудиоэндпоинт, 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, учитывая параметры и цены.

Источники

  1. reAPI. Authentication and key management. Retrieved September 14, 2026 from Authentication; key-creation button also checked at API Keys.
  2. Suno. Developer API partner-interest application. Retrieved September 14, 2026 from official application.
  3. reAPI. Suno operation and version reference. Retrieved September 14, 2026 from Suno, Suno V6 and the public rate card.
  4. reAPI. Task polling reference. Retrieved September 14, 2026 from Tasks.
  5. reAPI. Error codes and handling. Retrieved September 14, 2026 from Errors.