Создаёт песни с вокалом и инструментальную музыку длиной около 3 минут по описанию стиля или по вашему тексту. Цена — 10 ₽ за трек.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Lyria 3.5 - музыкальная модель Google. Она делает законченный трек около 3 минут: песню с вокалом или инструментал. Подходит для фоновой музыки к видео и подкастам, демо песни, поздравлений и джинглов. Режим выбирается полем generation_type:
describe - трек по описанию в describe_prompt: модель сама сочиняет музыку и, если в описании есть вокал, слова;lyrics - песня на ваш текст из lyrics_text, стиль можно описать в lyrics_style.В обоих режимах можно задать название трека и темп в ударах в минуту. Каждый вызов создаёт асинхронную операцию: в ответ сразу приходит id, а готовый трек вы забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарии, которые поддерживает модель:
generation_type: "describe" - трек по описанию.generation_type: "lyrics" - песня на свой текст.{
"tool": "lyria-3-5",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "lyria-3-5".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input. Набор полей зависит от режима.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
generation_type | enum | Нет | Режим: describe (трек по описанию, используется, если поле не передано) или lyrics (песня на свой текст). |
title | string | Нет | Название трека, до 100 символов. |
use_bpm | boolean | Нет | true - темп задаётся полем bpm. Если false или поле не передано, темп модель выбирает сама по описанию. |
bpm | number | Только при use_bpm: true | Темп в ударах в минуту, целое число от 40 до 220. Ориентиры: 60-80 - спокойная баллада, 100-130 - поп и танцевальная музыка, 140 и выше - быстрые жанры. |
describe)| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
describe_prompt | string | Да | Описание трека, от 3 до 2000 символов: жанр, настроение, инструменты, вокал, тема песни. Для трека без голоса напишите инструментал, без вокала. |
lyrics)| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
lyrics_text | string | Да | Текст песни, от 2 до 3000 символов. Размечайте части тегами [Verse] (куплет), [Chorus] (припев), [Bridge] (бридж) - так модель строит структуру. Русский текст поддерживается. |
lyrics_style | string | Нет | Стиль и звучание, до 2000 символов: жанр, инструменты, голос. Например: энергичный рок с электрогитарой и мужским вокалом. Если не передать, стиль выберет модель. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "lyria-3-5",
"input": {
"generation_type": "describe",
"describe_prompt": "Лёгкий инструментальный лоу-фай для учёбы: тёплое электропиано, мягкие барабаны, виниловый треск. Без вокала.",
"title": "Вечер за конспектом",
"use_bpm": true,
"bpm": 80
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'lyria-3-5',
input: {
generation_type: 'describe',
describe_prompt:
'Лёгкий инструментальный лоу-фай для учёбы: тёплое электропиано, мягкие барабаны, виниловый треск. Без вокала.',
title: 'Вечер за конспектом',
use_bpm: true,
bpm: 80,
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'lyria-3-5',
'input': {
'generation_type': 'describe',
'describe_prompt': 'Лёгкий инструментальный лоу-фай для учёбы: тёплое электропиано, мягкие барабаны, виниловый треск. Без вокала.',
'title': 'Вечер за конспектом',
'use_bpm': True,
'bpm': 80,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "lyria-3-5",
"input": {
"generation_type": "lyrics",
"lyrics_text": "[Verse]\nГород засыпает, фонари горят,\nЯ иду по улице, мысли не молчат.\n[Chorus]\nЭто наш вечер, только ты и я,\nПусть весь мир подождёт до утра.",
"lyrics_style": "русская поп-баллада, фортепиано, струнные, тёплый женский вокал",
"title": "Наш вечер"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'lyria-3-5',
input: {
generation_type: 'lyrics',
lyrics_text: [
'[Verse]',
'Город засыпает, фонари горят,',
'Я иду по улице, мысли не молчат.',
'[Chorus]',
'Это наш вечер, только ты и я,',
'Пусть весь мир подождёт до утра.',
].join('\n'),
lyrics_style: 'русская поп-баллада, фортепиано, струнные, тёплый женский вокал',
title: 'Наш вечер',
},
}),
})
const data = await response.json()
import requests
lyrics = """[Verse]
Город засыпает, фонари горят,
Я иду по улице, мысли не молчат.
[Chorus]
Это наш вечер, только ты и я,
Пусть весь мир подождёт до утра."""
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'lyria-3-5',
'input': {
'generation_type': 'lyrics',
'lyrics_text': lyrics,
'lyrics_style': 'русская поп-баллада, фортепиано, струнные, тёплый женский вокал',
'title': 'Наш вечер',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "lyria-3-5",
"cost": 10,
"balance_after": 490,
"created_at": "2026-10-02T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "lyria-3-5",
"cost": 10,
"created_at": "2026-10-02T12:00:00Z",
"completed_at": "2026-10-02T12:00:55Z",
"result": {
"type": "audio",
"urls": [
"https://storage.bratuha.ru/results/lyria-3-5/track.m4a"
],
"files": [
{ "url": "https://storage.bratuha.ru/results/lyria-3-5/track.m4a", "name": "result" }
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "lyria-3-5",
"cost": 10,
"created_at": "2026-10-02T12:00:00Z",
"completed_at": "2026-10-02T12:00:40Z",
"result": null,
"error_message": "Произошла ошибка, нейросеть временно недоступна."
}
После создания операции сохраните её id и проверяйте статус по нему:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const response = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
}
)
const data = await response.json()
Пока трек создаётся, status будет queued или processing. Опрашивайте статус раз в 10-15 секунд.
После успешного завершения result содержит аудиофайл - обычно один, иногда два варианта трека:
{
"type": "audio",
"urls": [
"https://storage.bratuha.ru/results/lyria-3-5/track.m4a"
],
"files": [
{ "url": "https://storage.bratuha.ru/results/lyria-3-5/track.m4a", "name": "result" }
]
}
type всегда равен "audio".urls содержит ссылку на файл .m4a (AAC, стерео, 48 кГц), который играет в браузерах, на телефонах и в видеоредакторах. Иногда в массиве две ссылки - два варианта одного трека, оба входят в цену.files дублирует те же ссылки с именем файла.cost ответа. Если операция завершилась с ошибкой, деньги возвращаются на баланс автоматически.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.describe обязательно поле describe_prompt, в режиме lyrics - lyrics_text. Без них запрос получит validation_error.lyrics_style в запросе с describe ни на что не влияет.bpm учитывается только вместе с use_bpm: true.lyrics модель может дописать свои строки и повторить припев, чтобы трек получился полной длины. Если нужен строго ваш текст, дайте его целиком: два-три куплета, припев и бридж.