# Suno

{% hint style="info" %}
Чтобы отправлять авторизованные запросы нужно получить API ключ, как это сделать написано в разделе [**С чего начать?**](https://docs.gptunnel.ru/)
{% endhint %}

## Запрос

<mark style="color:green;">`POST`</mark> `https://gptunnel.ru/v1/media/create`

Асинхронный запрос вернёт задачу и её идентификатор — сохраните его для последующего получения ссылки на результат.

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

{% tabs %}
{% tab title="NodeJS" %}

```typescript
import axios from 'axios'

const request = axios({
  method: 'POST',
  url: 'https://gptunnel.ru/v1/media/create',
  headers: {
    // use your API key here
    Authorization: 'YOUR_API_KEY',
  },
  data: {
    "model":"suno",
    "prompt": "Джингл про AI интегратора GPTunneL"
  }
})

request.then((result) => {
  console.log(result)
}).catch((error) => {
  console.error(error)
})
```

{% endtab %}

{% tab title="Curl" %}

```bash
curl --request POST \
  --url https://gptunnel.ru/v1/media/create \
  --header 'Authorization: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "model":"suno",
    "prompt": "Джингл про AI интегратора GPTunneL"
  }'
```

{% endtab %}
{% endtabs %}

#### Request Body (basic mode)

| Name                                     | Type   | Description                                                        |
| ---------------------------------------- | ------ | ------------------------------------------------------------------ |
| model<mark style="color:red;">\*</mark>  | "suno" | Уникальный ID модели                                               |
| prompt<mark style="color:red;">\*</mark> | string | Промпт запроса (для basic mode максимально 400 знаков)             |
| version                                  | enum   | Версия, допустимые значения 'chirp-v3-5', 'chirp-v4', 'chirp-v4-5' |

#### Headers

| Name                                            | Type   | Description |
| ----------------------------------------------- | ------ | ----------- |
| Authorization<mark style="color:red;">\*</mark> | string | API ключ    |

## Пример ответа /create

```jsonp
{
	"code": 0,
	"id": "6880c0c4e606050001881b51",
	"model": "suno",
	"created_at": 1753268420,
	"status": "idle",
	"result": null,
	"input": {
		"model": "suno",
		"prompt": "Джингл про AI интегратора GPTunneL"
	}
}
```

После получения 24-значного идентификатора задачи вы можете вызвать метод для получения результата.

<mark style="color:green;">`POST`</mark> `https://gptunnel.ru/v1/media/result`

Запрос можно вызвать как **POST** так и **GET** методом передав `task_id` в query либо в body. Результатом выполнения запроса будет json объект данными по генерациям.

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

{% tabs %}
{% tab title="NodeJS" %}

```typescript
import axios from 'axios'

const request = axios({
  method: 'POST',
  url: 'https://gptunnel.ru/v1/media/result',
  headers: {
    // use your API key here
    Authorization: 'YOUR_API_KEY',
  },
  data: {
    task_id:"6880c0c4e606050001881b51"
  },
})

request.then((result) => {
  console.log(result)
}).catch((error) => {
  console.error(error)
})
```

{% endtab %}

{% tab title="Curl" %}

```bash
curl --request POST \
  --url https://gptunnel.ru/v1/media/result \
  --header 'Authorization: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "task_id":"6880c0c4e606050001881b51"
  }'
```

{% endtab %}
{% endtabs %}

## Пример ответа /result

```jsonp
{
	"code": 0,
	"id": "6880c0c4e606050001881b51",
	"model": "suno",
	"created_at": 1753268420,
	"status": "done",
	"input": {
		"model": "suno",
		"prompt": "Джингл про AI интегратора GPTunneL"
	},
	"result": [
		{
			"id": "c158f164-1028-447c-9333-2d4cdfc94581",
			"image_url": "https://gptunnel.ru/v1/lab/suno/6880c0c4e606050001881b51/c158f164-1028-447c-9333-2d4cdfc94581/image.jpeg",
			"audio_url": "https://gptunnel.ru/v1/lab/suno/6880c0c4e606050001881b51/c158f164-1028-447c-9333-2d4cdfc94581/audio.mp3",
			"lyric": "[Verse]\nВ мире цифр\nГде хаос живет\nGPTunneL порядок найдет\nСветлый путь в туннеле виден\nТам\nГде код и смысл едины\n\n[Chorus]\nGPTunneL\nТы мост меж миров\nGPTunneL\nРазгоняешь поток слов\nТы ведешь нас сквозь лабиринт\nGPTunneL\nТы наш гид\nТы наш синт\n\n[Verse 2]\nСложный запрос? Для нас это просто\nСвяжем системы в одну\nБез вопросов\nГде был разрыв\nТеперь есть контакт\nGPTunneL решает всё\nЭто факт\n\n[Chorus]\nGPTunneL\nТы мост меж миров\nGPTunneL\nРазгоняешь поток слов\nТы ведешь нас сквозь лабиринт\nGPTunneL\nТы наш гид\nТы наш синт\n\n[Bridge]\nКод за кодом\nШаг за шагом\nМы вперед\nЗа новым флагом\nТехнологии летят вперед\nGPTunneL путь найдет\n\n[Chorus]\nGPTunneL\nТы мост меж миров\nGPTunneL\nРазгоняешь поток слов\nТы ведешь нас сквозь лабиринт\nGPTunneL\nТы наш гид\nТы наш синт",
			"tags": "catchy with synth leads and dynamic rhythm, electronic",
			"duration": 148.44,
			"status": "succeeded"
		},
		{
			"id": "0c26644b-9eed-4d27-9685-c7593a084cbd",
			"image_url": "https://gptunnel.ru/v1/lab/suno/6880c0c4e606050001881b51/0c26644b-9eed-4d27-9685-c7593a084cbd/image.jpeg",
			"audio_url": "https://gptunnel.ru/v1/lab/suno/6880c0c4e606050001881b51/0c26644b-9eed-4d27-9685-c7593a084cbd/audio.mp3",
			"lyric": "[Verse]\nВ мире цифр\nГде хаос живет\nGPTunneL порядок найдет\nСветлый путь в туннеле виден\nТам\nГде код и смысл едины\n\n[Chorus]\nGPTunneL\nТы мост меж миров\nGPTunneL\nРазгоняешь поток слов\nТы ведешь нас сквозь лабиринт\nGPTunneL\nТы наш гид\nТы наш синт\n\n[Verse 2]\nСложный запрос? Для нас это просто\nСвяжем системы в одну\nБез вопросов\nГде был разрыв\nТеперь есть контакт\nGPTunneL решает всё\nЭто факт\n\n[Chorus]\nGPTunneL\nТы мост меж миров\nGPTunneL\nРазгоняешь поток слов\nТы ведешь нас сквозь лабиринт\nGPTunneL\nТы наш гид\nТы наш синт\n\n[Bridge]\nКод за кодом\nШаг за шагом\nМы вперед\nЗа новым флагом\nТехнологии летят вперед\nGPTunneL путь найдет\n\n[Chorus]\nGPTunneL\nТы мост меж миров\nGPTunneL\nРазгоняешь поток слов\nТы ведешь нас сквозь лабиринт\nGPTunneL\nТы наш гид\nТы наш синт",
			"tags": "catchy with synth leads and dynamic rhythm, electronic",
			"duration": 223.48,
			"status": "succeeded"
		}
	]
}
```

{% hint style="warning" %}
Ссылка на файл доступна в течение 48 часов, Далее доступность ссылки не гарантируется. Если вы планируете получить доступ к сгенерированному файлу позже, рекомендуется сохранить его на вашем ресурсе.
{% endhint %}

{% file src="/files/ql6irgok9CdiC81zAEge" %}

## Режим cusom

В этом режиме можно создавать песни с текстом пести и указанием стиля, пример параметров запроса:

<table><thead><tr><th width="189.796875">Name</th><th>Type</th><th>Описание</th></tr></thead><tbody><tr><td>model<mark style="color:red;">*</mark></td><td>string</td><td>Модель - значение "suno"</td></tr><tr><td>mode<mark style="color:red;">*</mark></td><td>string</td><td>Режим - значение "custom"</td></tr><tr><td>title<mark style="color:red;">*</mark></td><td>string</td><td>Название трека - до 80 знаков</td></tr><tr><td>lyric<mark style="color:red;">*</mark></td><td>style</td><td>Текст песни - до 3000 знаков в режиме custom</td></tr><tr><td>tags<mark style="color:red;">*</mark></td><td>string</td><td>Стиль песни, тэги - до 200 знаков</td></tr><tr><td>version</td><td>string</td><td>Версия модели, доступные значения: 'chirp-v3-5', 'chirp-v3', 'chirp-v4-5'</td></tr></tbody></table>

## Режим instrumental

В этом режиме можно создавать песни без вокала с указанием стиля, пример параметров запроса:

<table><thead><tr><th width="189.796875">Name</th><th>Type</th><th>Описание</th></tr></thead><tbody><tr><td>model<mark style="color:red;">*</mark></td><td>string</td><td>Модель - значение "suno"</td></tr><tr><td>mode<mark style="color:red;">*</mark></td><td>string</td><td>Режим - значение "instrumental"</td></tr><tr><td>title<mark style="color:red;">*</mark></td><td>string</td><td>Название трека - до 80 знаков</td></tr><tr><td>tags<mark style="color:red;">*</mark></td><td>string</td><td>Стиль песни, тэги - до 200 знаков</td></tr><tr><td>version</td><td>string</td><td>Версия модели, доступные значения: 'chirp-v3-5', 'chirp-v3', 'chirp-v4-5'</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gptunnel.ru/media-api/suno.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
