Общая документация Public API · API-ключ можно создать в настройках аккаунта
Seedream 4.0 - быстрая и недорогая модель для картинок: фотореалистичные портреты и пейзажи, иллюстрации, предметная съёмка, аниме. Главная особенность - до 15 изображений за один запрос по цене 4 ₽ за штуку и разрешение до 4K. Модель также редактирует загруженные фото по инструкции и объединяет несколько референсов в один кадр.
Через API доступны оба сценария:
prompt;image_urls и описываете, что с ними сделать.Каждый вызов создаёт асинхронную операцию: вы получаете id, а результат забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарии, которые поддерживает модель:
{
"tool": "seedream-4-0",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "seedream-4-0".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Что нарисовать или как изменить исходные изображения, до 1000 символов. Описывайте сцену, стиль, свет и композицию коротко и конкретно. |
image_urls | string[] (url) | Нет | От 1 до 10 внешних URL изображений для редактирования или референсов. Без этого поля модель работает в режиме генерации. Только http/https, форматы .jpg, .jpeg, .png, .webp. |
size | enum | Нет | Формат кадра: auto (по умолчанию), 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9, 9:21. С изображениями auto повторяет пропорции исходника. |
resolution | enum | Нет | Качество: 4K (по умолчанию), 2K или 1K. На цену не влияет. |
n | number | Нет | Сколько изображений сгенерировать за запрос, от 1 до 15. По умолчанию 1. Каждое оплачивается отдельно. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-4-0",
"input": {
"prompt": "Логотип-талисман кофейни: улыбающееся кофейное зерно с маленькими руками, разные позы и настроение, плоский векторный стиль, белый фон, без текста",
"size": "1:1",
"resolution": "2K",
"n": 4
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-4-0',
input: {
prompt:
'Логотип-талисман кофейни: улыбающееся кофейное зерно с маленькими руками, разные позы и настроение, плоский векторный стиль, белый фон, без текста',
size: '1:1',
resolution: '2K',
n: 4,
},
}),
})
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': 'seedream-4-0',
'input': {
'prompt': 'Логотип-талисман кофейни: улыбающееся кофейное зерно с маленькими руками, разные позы и настроение, плоский векторный стиль, белый фон, без текста',
'size': '1:1',
'resolution': '2K',
'n': 4,
},
},
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": "seedream-4-0",
"input": {
"prompt": "Поменяй время года на этом фото на зиму: снег на ветках и дороге, тёплый свет фонарей, героиню и композицию сохранить",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg"
],
"size": "auto",
"resolution": "2K",
"n": 1
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-4-0',
input: {
prompt:
'Поменяй время года на этом фото на зиму: снег на ветках и дороге, тёплый свет фонарей, героиню и композицию сохранить',
image_urls: ['https://cdn.example.com/source-image-1.jpg'],
size: 'auto',
resolution: '2K',
n: 1,
},
}),
})
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': 'seedream-4-0',
'input': {
'prompt': 'Поменяй время года на этом фото на зиму: снег на ветках и дороге, тёплый свет фонарей, героиню и композицию сохранить',
'image_urls': ['https://cdn.example.com/source-image-1.jpg'],
'size': 'auto',
'resolution': '2K',
'n': 1,
},
},
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": "seedream-4-0",
"input": {
"prompt": "Собери сцену: персонаж с первого изображения сидит на кроссовке со второго, оба объекта узнаваемы, яркий рекламный кадр на оранжевом фоне",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"size": "3:4",
"resolution": "2K",
"n": 1
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-4-0',
input: {
prompt:
'Собери сцену: персонаж с первого изображения сидит на кроссовке со второго, оба объекта узнаваемы, яркий рекламный кадр на оранжевом фоне',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
size: '3:4',
resolution: '2K',
n: 1,
},
}),
})
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': 'seedream-4-0',
'input': {
'prompt': 'Собери сцену: персонаж с первого изображения сидит на кроссовке со второго, оба объекта узнаваемы, яркий рекламный кадр на оранжевом фоне',
'image_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
'size': '3:4',
'resolution': '2K',
'n': 1,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "seedream-4-0",
"cost": 16,
"balance_after": 495,
"created_at": "2026-09-17T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "seedream-4-0",
"cost": 16,
"created_at": "2026-09-17T12:00:00Z",
"completed_at": "2026-09-17T12:00:35Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/seedream-4-0/image-1.jpg",
"https://storage.bratuha.ru/results/seedream-4-0/image-2.jpg",
"https://storage.bratuha.ru/results/seedream-4-0/image-3.jpg",
"https://storage.bratuha.ru/results/seedream-4-0/image-4.jpg"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "seedream-4-0",
"cost": 4,
"created_at": "2026-09-17T12:00:00Z",
"completed_at": "2026-09-17T12:00:10Z",
"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. Опрашивайте статус раз в несколько секунд.
После успешного завершения result содержит готовые изображения:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/seedream-4-0/image-1.jpg",
"https://storage.bratuha.ru/results/seedream-4-0/image-2.jpg"
]
}
type всегда равен "image".urls - массив ссылок на JPG, их столько, сколько задано в n.4 ₽ × n: одно изображение - 4 ₽, четыре варианта - 16 ₽, пятнадцать - 60 ₽.cost ответа. Если операция завершилась с ошибкой, деньги возвращаются на баланс автоматически.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.image_urls подходят только внешние http/https ссылки, без localhost и приватных адресов; форматы .jpg, .jpeg, .png, .webp. HEIC/HEIF принимаются только при загрузке через форму сайта, по URL в API - нет.prompt ограничен 1000 символами - это заметно меньше, чем у других моделей, поэтому формулируйте задачу коротко.n в одном запросе, чем делать несколько запросов: варианты придут одним массивом в порядке генерации.prompt, что взять с каждого, и попросите сохранить узнаваемость объектов.