# Suno V6 API

> Песни и звуки Suno V6 с нуля по описанию или со своим текстом: за один запуск два варианта трека в MP3. По вашему аудио: добавить вокал или музыку, кавер, продолжение, замена куска, ремикс двух треков. Есть ещё версии V6 Mini и V6 Wild.

Разработчик: Suno
Ключ модели в API: `suno`

## Подключение в три шага

1. [Получите ключ](https://api.cyhub.ai/docs/connection.md?lang=ru): Ключ создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
2. [Узнайте цену](https://api.cyhub.ai/docs/generations.md?lang=ru): POST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
3. [Запустите задачу и заберите результат](https://api.cyhub.ai/docs/tasks.md?lang=ru): POST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.

## Готовый код

Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.

```bash
curl -X POST "https://api.cyhub.ai/v1/tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "suno",
  "settings": {
    "mode": "generate",
    "model": "V6",
    "customMode": false,
    "songDescription": "Лёгкая летняя песня о дороге к морю, акустическая гитара, женский вокал"
  }
}'

curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```python
import time

import requests

API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

body = {
    "model": "suno",
    "settings": {
        "mode": "generate",
        "model": "V6",
        "customMode": False,
        "songDescription": "Лёгкая летняя песня о дороге к морю, акустическая гитара, женский вокал",
    },
}

response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
    time.sleep(5)
    task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])
```

```javascript
const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };

const body = {
  "model": "suno",
  "settings": {
    "mode": "generate",
    "model": "V6",
    "customMode": false,
    "songDescription": "Лёгкая летняя песня о дороге к морю, акустическая гитара, женский вокал"
  }
};

async function main() {
  let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
  if (!response.ok) throw new Error(await response.text());
  let task = await response.json();
  while (task.status === "queued" || task.status === "running") {
    await new Promise((resolve) => setTimeout(resolve, 5000));
    response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
    task = await response.json();
  }
  console.log(task.status, task.result);
}

main();
```

[Получить ключ](https://cyhub.ai/cabinet/keys)

## Цена до запуска

Цены на 15.10.2026: от 3 ₽. Точную цену своих настроек покажет POST /v1/price.

Отправьте те же настройки в POST /v1/price: ответ покажет цену запуска, деньги при этом не списываются.

```bash
curl -X POST "https://api.cyhub.ai/v1/price" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "suno",
  "settings": {
    "mode": "generate",
    "model": "V6",
    "customMode": false,
    "songDescription": "Лёгкая летняя песня о дороге к морю, акустическая гитара, женский вокал"
  }
}'
```

- amount_minor: цена запуска в копейках (для рублей)
- currency: валюта кошелька
- available_minor: сколько сейчас доступно на балансе для новых задач

## <a id="generate"></a>Песня с нуля

> Песня по короткому описанию или со своим текстом, стилем и названием.

Значение поля mode: `generate`

Цена в этом режиме от 12 ₽.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `customMode` (Необязательно)

Расширенный режим: свой текст песни, стиль, название и длительность. Выключен: достаточно описания песни.

- Тип: Да/нет
- По умолчанию: `false`

#### `songDescription` (Необязательно)

Описание песни для простого режима: о чём она, настроение, жанр. Обязательно, когда customMode выключен.

- Тип: Строка
- Максимум символов: 3000

#### `title` (Необязательно)

Название песни. Обязательно в расширенном режиме, в простом не задаётся.

- Тип: Строка
- Максимум символов: 80

#### `style` (Необязательно)

Стиль и жанр словами. Обязательно в расширенном режиме, в простом не задаётся.

- Тип: Строка
- Максимум символов: 1000

#### `prompt` (Необязательно)

Текст песни для расширенного режима. Обязателен, если песня не инструментальная. В простом режиме не задаётся: там песню задаёт описание.

- Тип: Строка
- Максимум символов: 5000

#### `instrumental` (Необязательно)

Без вокала.

- Тип: Да/нет
- По умолчанию: `false`

#### `vocalGender` (Необязательно)

Голос исполнителя, только в расширенном режиме.

- Тип: Строка
- Допустимые значения: `m` (Мужской), `f` (Женский)
- По умолчанию: `"m"`

#### `duration` (Необязательно)

Длительность в секундах, только в расширенном режиме.

- Тип: Целое число
- Минимум: 10
- Максимум: 360
- По умолчанию: `20`

#### `styleWeight` (Необязательно)

Насколько строго держаться заданного стиля: 0 свободно, 1 строго, не точнее сотых. Только в расширенном режиме.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `weirdnessConstraint` (Необязательно)

Насколько смелым выйдет результат: 0 предсказуемо, 1 экспериментально, не точнее сотых. Только в расширенном режиме.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `audioWeight` (Необязательно)

Вес звуковых особенностей в результате: 0 слабо, 1 сильно, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Входные данные

- Простой режим: описание песни, остальное придумает модель. Название, стиль и текст песни в нём не задаются.
- Расширенный режим: название и стиль обязательны, текст песни обязателен, если она не инструментальная.
- Голос, длительность, вес стиля и необычность действуют только в расширенном режиме: в простом они не отправляются.

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Песня по описанию

```json
{
  "model": "suno",
  "settings": {
    "mode": "generate",
    "model": "V6",
    "customMode": false,
    "songDescription": "Лёгкая летняя песня о дороге к морю, акустическая гитара, женский вокал"
  }
}
```

Песня со своим текстом

```json
{
  "model": "suno",
  "settings": {
    "mode": "generate",
    "model": "V6",
    "customMode": true,
    "title": "Дорога к морю",
    "style": "акустический поп, лето",
    "prompt": "Куплет 1: ...\nПрипев: ...",
    "instrumental": false,
    "vocalGender": "f",
    "duration": 120
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="sounds"></a>Звук или фон

> Не песня, а звук: шум дождя, гул города, эффект для игры. Можно зациклить, задать темп и тональность.

Значение поля mode: `sounds`

Цена в этом режиме от 3 ₽.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `soundDescription` (Обязательно)

Что должно звучать, например шум дождя по крыше или шаги по снегу. Слов в звуке не будет.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 500

#### `soundLoop` (Необязательно)

Свести звук так, чтобы конец без щелчка переходил в начало: для фона, который играет по кругу.

- Тип: Да/нет
- По умолчанию: `false`

#### `soundTempo` (Необязательно)

Темп в ударах в минуту. Не задан: темп выберет модель.

- Тип: Целое число
- Минимум: 1
- Максимум: 300

#### `soundKey` (Необязательно)

Тональность: буква это мажор, буква с m это минор (Am это ля минор). Пустая строка: любая.

- Тип: Строка
- Допустимые значения: `""` (Любая), `C`, `C#`, `D`, `D#`, `E`, `F`, `F#`, `G`, `G#`, `A`, `A#`, `B`, `Cm`, `C#m`, `Dm`, `D#m`, `Em`, `Fm`, `F#m`, `Gm`, `G#m`, `Am`, `A#m`, `Bm`
- По умолчанию: `""`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Фон для ролика

```json
{
  "model": "suno",
  "settings": {
    "mode": "sounds",
    "soundDescription": "Шум дождя по жестяной крыше, далёкие раскаты грома",
    "soundLoop": true
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="add_vocals"></a>Добавить вокал

> Вокал поверх вашей музыки без голоса: модель споёт ваш текст в заданном стиле.

Значение поля mode: `add_vocals`

Цена в этом режиме от 12 ₽, с файлом на 1 с.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `audio` (Обязательно)

Одна ссылка на вашу музыку без вокала.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `title` (Обязательно)

Название трека. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 80

#### `style` (Обязательно)

Стиль и жанр словами. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 1000

#### `prompt` (Обязательно)

Слова, которые споёт вокал.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 5000

#### `negativeTags` (Обязательно)

Каких стилей в результате быть не должно, через запятую. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 500

#### `vocalGender` (Необязательно)

Пол вокалиста: m мужской, f женский. Только повышает вероятность, не гарантирует. Не задан: решает модель.

- Тип: Строка
- Допустимые значения: `""` (Не задан), `m` (Мужской), `f` (Женский)
- По умолчанию: `""`

#### `styleWeight` (Необязательно)

Насколько строго держаться заданного стиля: 0 свободно, 1 строго, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `weirdnessConstraint` (Необязательно)

Насколько смелым выйдет результат: 0 предсказуемо, 1 экспериментально, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `audioWeight` (Необязательно)

Насколько результат держится звучания исходника: 0 слабо, 1 сильно, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Входные данные

- Аудио передаётся ссылкой на MP3, WAV, OGG, M4A, FLAC или AAC до 20 МБ.
- Только своё аудио: известные чужие песни Suno узнаёт и отказывается обрабатывать.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `audio` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Вокал на свою музыку

```json
{
  "model": "suno",
  "settings": {
    "mode": "add_vocals",
    "audio": [
      "https://example.com/my-instrumental.mp3"
    ],
    "title": "Ночной город",
    "style": "синти-поп, мягкий женский вокал",
    "prompt": "Куплет 1: ...\nПрипев: ...",
    "negativeTags": "хеви-метал, рэп"
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="add_instrumental"></a>Добавить инструментал

> Музыка под ваш вокал, записанный без аккомпанемента.

Значение поля mode: `add_instrumental`

Цена в этом режиме от 12 ₽, с файлом на 1 с.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `audio` (Обязательно)

Одна ссылка на ваш вокал без музыки.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `title` (Обязательно)

Название трека. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 80

#### `tags` (Обязательно)

Стиль музыки словами: жанр, инструменты, настроение. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 500

#### `negativeTags` (Обязательно)

Каких стилей в результате быть не должно, через запятую. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 500

#### `vocalGender` (Необязательно)

Пол вокалиста: m мужской, f женский. Только повышает вероятность, не гарантирует. Не задан: решает модель.

- Тип: Строка
- Допустимые значения: `""` (Не задан), `m` (Мужской), `f` (Женский)
- По умолчанию: `""`

#### `styleWeight` (Необязательно)

Насколько строго держаться заданного стиля: 0 свободно, 1 строго, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `weirdnessConstraint` (Необязательно)

Насколько смелым выйдет результат: 0 предсказуемо, 1 экспериментально, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `audioWeight` (Необязательно)

Насколько результат держится звучания исходника: 0 слабо, 1 сильно, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Входные данные

- Аудио передаётся ссылкой на MP3, WAV, OGG, M4A, FLAC или AAC до 20 МБ.
- Только своё аудио: известные чужие песни Suno узнаёт и отказывается обрабатывать.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `audio` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Музыка под свой голос

```json
{
  "model": "suno",
  "settings": {
    "mode": "add_instrumental",
    "audio": [
      "https://example.com/my-vocals.mp3"
    ],
    "title": "Колыбельная",
    "tags": "нежное фортепиано, струнные",
    "negativeTags": "барабаны, электроника"
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="cover_upload"></a>Кавер вашего аудио

> Мелодия вашего трека остаётся, стиль меняется. Как у песни с нуля: по описанию или со своим текстом, стилем и названием.

Значение поля mode: `cover_upload`

Цена в этом режиме от 12 ₽, с файлом на 1 с.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `audio` (Обязательно)

Одна ссылка на ваш трек.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `customMode` (Необязательно)

Расширенный режим: свой текст песни, стиль, название и длительность. Выключен: достаточно описания песни.

- Тип: Да/нет
- По умолчанию: `false`

#### `songDescription` (Необязательно)

Описание песни для простого режима: о чём она, настроение, жанр. Обязательно, когда customMode выключен.

- Тип: Строка
- Максимум символов: 3000

#### `title` (Необязательно)

Название песни. Обязательно в расширенном режиме, в простом не задаётся.

- Тип: Строка
- Максимум символов: 80

#### `style` (Необязательно)

Стиль и жанр словами. Обязательно в расширенном режиме, в простом не задаётся.

- Тип: Строка
- Максимум символов: 1000

#### `prompt` (Необязательно)

Текст песни для расширенного режима. Обязателен, если песня не инструментальная. В простом режиме не задаётся: там песню задаёт описание.

- Тип: Строка
- Максимум символов: 5000

#### `instrumental` (Необязательно)

Без вокала.

- Тип: Да/нет
- По умолчанию: `false`

#### `negativeTags` (Необязательно)

Каких стилей в результате быть не должно, через запятую. Только в расширенном режиме.

- Тип: Строка
- Максимум символов: 500

#### `duration` (Необязательно)

Длительность в секундах, только в расширенном режиме.

- Тип: Целое число
- Минимум: 10
- Максимум: 360
- По умолчанию: `20`

#### `styleWeight` (Необязательно)

Насколько строго держаться заданного стиля: 0 свободно, 1 строго, не точнее сотых. Только в расширенном режиме.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `weirdnessConstraint` (Необязательно)

Насколько смелым выйдет результат: 0 предсказуемо, 1 экспериментально, не точнее сотых. Только в расширенном режиме.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `audioWeight` (Необязательно)

Насколько результат держится звучания исходника: 0 слабо, 1 сильно, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Входные данные

- Аудио передаётся ссылкой на MP3, WAV, OGG, M4A, FLAC или AAC до 20 МБ.
- Только своё аудио: известные чужие песни Suno узнаёт и отказывается обрабатывать.
- Трек не длиннее 8 минут.
- Простой режим: описание песни, остальное придумает модель. Название, стиль и текст песни в нём не задаются.
- Расширенный режим: название и стиль обязательны, текст песни обязателен, если она не инструментальная.
- Длительность, вес стиля и необычность действуют только в расширенном режиме: в простом они не отправляются.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `audio` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Кавер в другом стиле

```json
{
  "model": "suno",
  "settings": {
    "mode": "cover_upload",
    "audio": [
      "https://example.com/my-song.mp3"
    ],
    "customMode": false,
    "songDescription": "Та же мелодия в стиле лёгкого джаза, женский вокал"
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="extend"></a>Продолжение вашего аудио

> Трек продолжается с нужной секунды. Секунда продолжения обязательна, стиль и название по желанию: без них продолжение держится звучания самого трека.

Значение поля mode: `extend`

Цена в этом режиме от 12 ₽, с файлом на 90 с.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `audio` (Обязательно)

Одна ссылка на ваш трек.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `title` (Необязательно)

Название трека. По желанию.

- Тип: Строка
- Максимум символов: 100

#### `style` (Необязательно)

Стиль и жанр словами. По желанию.

- Тип: Строка
- Максимум символов: 1000

#### `prompt` (Необязательно)

Слова продолжения. Обязательны, если продолжение не инструментальное.

- Тип: Строка
- Максимум символов: 5000

#### `instrumental` (Необязательно)

Продолжение без вокала.

- Тип: Да/нет
- По умолчанию: `false`

#### `continueAt` (Обязательно)

С какой секунды трека начать продолжение. Раньше конца файла.

- Тип: Число
- Минимум: 1
- Максимум: 480

#### `negativeTags` (Необязательно)

Каких стилей в результате быть не должно, через запятую.

- Тип: Строка
- Максимум символов: 500

#### `vocalGender` (Необязательно)

Пол вокалиста: m мужской, f женский. Только повышает вероятность, не гарантирует. Не задан: решает модель.

- Тип: Строка
- Допустимые значения: `""` (Не задан), `m` (Мужской), `f` (Женский)
- По умолчанию: `""`

#### `styleWeight` (Необязательно)

Насколько строго держаться заданного стиля: 0 свободно, 1 строго, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `weirdnessConstraint` (Необязательно)

Насколько смелым выйдет результат: 0 предсказуемо, 1 экспериментально, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `audioWeight` (Необязательно)

Насколько результат держится звучания исходника: 0 слабо, 1 сильно, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

> Эти настройки API задаёт сам, передавать их не нужно: `defaultParamFlag` = `true`

### Входные данные

- Аудио передаётся ссылкой на MP3, WAV, OGG, M4A, FLAC или AAC до 20 МБ.
- Только своё аудио: известные чужие песни Suno узнаёт и отказывается обрабатывать.
- Трек не длиннее 8 минут.
- Секунда продолжения раньше конца трека.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `audio` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Продолжить свой трек

```json
{
  "model": "suno",
  "settings": {
    "mode": "extend",
    "audio": [
      "https://example.com/my-song.mp3"
    ],
    "title": "Дорога к морю",
    "style": "акустический поп, лето",
    "prompt": "Куплет 3: ...\nПрипев: ...",
    "continueAt": 60
  }
}
```

Продолжить без слов, в звучании трека

```json
{
  "model": "suno",
  "settings": {
    "mode": "extend",
    "audio": [
      "https://example.com/my-song.mp3"
    ],
    "instrumental": true,
    "continueAt": 90
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="replace_upload"></a>Переписать кусок вашего аудио

> Переписывается только выбранный отрезок трека, остальное остаётся и сшивается с новым куском.

Значение поля mode: `replace_upload`

Цена в этом режиме от 5 ₽, с файлом на 60 с.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `audio` (Обязательно)

Одна ссылка на ваш трек.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `infillStartS` (Обязательно)

Начало куска в секундах, не точнее сотых, например 45.25.

- Тип: Число
- Минимум: 0

#### `infillEndS` (Обязательно)

Конец куска в секундах, не точнее сотых. Кусок не короче 10 секунд и не длиннее половины трека.

- Тип: Число
- Минимум: 0

#### `prompt` (Обязательно)

Новые слова для этого куска.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 5000

#### `fullLyrics` (Обязательно)

Слова всей песни целиком, уже с поправленным куском. Если слов нет, опишите по порядку, что звучит.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 5000

#### `tags` (Обязательно)

Стиль нового куска словами. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 500

#### `title` (Обязательно)

Название трека. Обязательно.

- Тип: Строка
- Минимум символов: 1
- Максимум символов: 80

#### `negativeTags` (Необязательно)

Каких стилей в результате быть не должно, через запятую.

- Тип: Строка
- Максимум символов: 500

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Входные данные

- Аудио передаётся ссылкой на MP3, WAV, OGG, M4A, FLAC или AAC до 20 МБ.
- Только своё аудио: известные чужие песни Suno узнаёт и отказывается обрабатывать.
- Кусок не короче 10 секунд и не длиннее половины трека.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `audio` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Новый припев

```json
{
  "model": "suno",
  "settings": {
    "mode": "replace_upload",
    "audio": [
      "https://example.com/my-song.mp3"
    ],
    "infillStartS": 45,
    "infillEndS": 70,
    "prompt": "Новый припев: ...",
    "fullLyrics": "Куплет 1: ...\nНовый припев: ...\nКуплет 2: ...",
    "tags": "поп-рок, энергично",
    "title": "Дорога к морю"
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## <a id="mashup"></a>Ремикс из двух треков

> Два ваших трека сводятся в один, первый задаёт основу. По описанию или со своим текстом, стилем и названием.

Значение поля mode: `mashup`

Цена в этом режиме от 12 ₽, с файлом на 1 с.

### Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

#### `model` (Необязательно)

Версия модели.

- Тип: Строка
- Допустимые значения: `V6`, `V6_MINI` (V6 Mini), `V6_WILD` (V6 Wild)
- По умолчанию: `"V6"`

#### `audio` (Обязательно)

Ссылка на первый трек: он задаёт основу.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `audio2` (Обязательно)

Ссылка на второй трек.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

#### `customMode` (Необязательно)

Расширенный режим: свой текст песни, стиль, название и длительность. Выключен: достаточно описания песни.

- Тип: Да/нет
- По умолчанию: `false`

#### `songDescription` (Необязательно)

Описание песни для простого режима: о чём она, настроение, жанр. Обязательно, когда customMode выключен.

- Тип: Строка
- Максимум символов: 3000

#### `title` (Необязательно)

Название песни. Обязательно в расширенном режиме, в простом не задаётся.

- Тип: Строка
- Максимум символов: 80

#### `style` (Необязательно)

Стиль и жанр словами. Обязательно в расширенном режиме, в простом не задаётся.

- Тип: Строка
- Максимум символов: 1000

#### `prompt` (Необязательно)

Текст песни для расширенного режима, по желанию. В простом режиме не задаётся: там песню задаёт описание.

- Тип: Строка
- Максимум символов: 5000

#### `instrumental` (Необязательно)

Без вокала.

- Тип: Да/нет
- По умолчанию: `false`

#### `duration` (Необязательно)

Длительность в секундах, только в расширенном режиме.

- Тип: Целое число
- Минимум: 10
- Максимум: 360
- По умолчанию: `20`

#### `styleWeight` (Необязательно)

Насколько строго держаться заданного стиля: 0 свободно, 1 строго, не точнее сотых. Только в расширенном режиме.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `weirdnessConstraint` (Необязательно)

Насколько смелым выйдет результат: 0 предсказуемо, 1 экспериментально, не точнее сотых. Только в расширенном режиме.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

#### `audioWeight` (Необязательно)

Насколько результат держится звучания исходника: 0 слабо, 1 сильно, не точнее сотых.

- Тип: Число
- Минимум: 0.0
- Максимум: 1.0
- По умолчанию: `0.65`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

### Входные данные

- Аудио передаётся ссылкой на MP3, WAV, OGG, M4A, FLAC или AAC до 20 МБ.
- Только своё аудио: известные чужие песни Suno узнаёт и отказывается обрабатывать.
- Простой режим: описание песни, остальное придумает модель. Название, стиль и текст песни в нём не задаются.
- Расширенный режим: название и стиль обязательны, текст песни по желанию.
- Длительность, вес стиля и необычность действуют только в расширенном режиме: в простом они не отправляются.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `audio` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |
| `audio2` | Аудио | mp3, wav, ogg, m4a, flac, aac | 1 | 20 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

### Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Ремикс по описанию

```json
{
  "model": "suno",
  "settings": {
    "mode": "mashup",
    "audio": [
      "https://example.com/track-1.mp3"
    ],
    "audio2": [
      "https://example.com/track-2.mp3"
    ],
    "customMode": false,
    "songDescription": "Танцевальный ремикс, быстрый темп, яркий припев"
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

### Результат

- За один запуск две версии трека в MP3, а текстом название и слова, если они есть.
- Песня создаётся от 5 до 10 минут, звук около минуты.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `audio` | mp3 | 2 | Две версии трека. |

`result.texts`: Название и слова песни, если они есть.

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [
      "Текст результата, например слова песни"
    ],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "audio",
        "filename": "audio.mp3",
        "size": 4194304,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## Смотрите также

- [Нейросеть Suno V6: возможности и цены](https://api.cyhub.ai/models/suno)
- Похожие модели: [Eleven Music API](https://api.cyhub.ai/models/eleven-music/api.md)
- [Документация API](https://api.cyhub.ai/docs.md?lang=ru)
- [Ошибки API и что с ними делать](https://api.cyhub.ai/docs/errors.md?lang=ru)
