Документация · API v1

Публичный API 4gen

Базовый URL: https://api.4gen.ru/v1. Все запросы авторизуются Bearer-ключом из личного кабинета.

Быстрый старт

Установите официальный SDK и сохраните ключ в окружении. Ключ нельзя встраивать во frontend-код или публиковать в репозитории.

macOS, Linux или Git Bash

pip install openai
export FOURGEN_API_KEY="4gen-..."

Windows PowerShell

pip install openai
$env:FOURGEN_API_KEY="4gen-..."

Получить каталог моделей

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["FOURGEN_API_KEY"],
    base_url="https://api.4gen.ru/v1",
)

for model in client.models.list().data:
    print(model.id)

cURL — macOS, Linux или Git Bash

curl --fail-with-body "https://api.4gen.ru/v1/models" \
  -H "Authorization: Bearer $FOURGEN_API_KEY"

PowerShell

$headers = @{ Authorization = "Bearer $env:FOURGEN_API_KEY" }
Invoke-RestMethod -Method Get -Uri "https://api.4gen.ru/v1/models" -Headers $headers

Методы API v1

Все пути ниже добавляются к базовому URL. Запросы принимаются только на публичном API-хосте и требуют заголовок Authorization: Bearer 4gen-….

МетодПутьНазначение
GET/modelsСписок доступных моделей
GET/models/{model_id}Карточка модели и её обязательные/необязательные параметры. ID со слешами нужно URL-кодировать.
POST/chat/completionsТекст: JSON или SSE при stream=true
POST/images/generationsИзображения: URL либо base64
POST/audio/speechРечь: бинарный аудиофайл
POST/video/generationsВидео: синхронное расширение 4gen
GET/files/{file_id}Скачивание своего результата с тем же Bearer-ключом

Генерация

Idempotency-Key необязателен. Официальный OpenAI SDK работает без дополнительных заголовков. Для безопасного повтора запроса после сетевого сбоя передавайте уникальный ключ длиной 8–255 символов: повтор того же запроса вернёт исходный результат без повторной генерации и списания. Некорректный ключ даёт 400; тот же ключ с другим телом — 409.

Параметры запросов

МетодОбязательныеОсновные необязательныеОтвет
/chat/completionsmodel, messagesstream, stream_options, temperature, top_p, max_completion_tokens, frequency_penalty, presence_penalty, stop, seed, user, n, logit_bias, logprobs, top_logprobs, tools, tool_choice, parallel_tool_calls, response_format, modalities (text), prediction, prompt_cache_key, prompt_cache_options, reasoning_effort, safety_identifier, service_tier (auto/default), store=false, metadata, verbosity, extra_paramsOpenAI Chat Completion JSON либо SSE, завершающийся data: [DONE]
/images/generationsmodel, promptn (1–10), response_format (url/b64_json), size, quality, style, background, moderation, output_compression, output_format, partial_images, stream, user, extra_paramsJSON с URL или base64 для каждого изображения
/audio/speechmodel, input, voiceresponse_format (mp3, opus, aac, flac, wav, pcm), speed (0.25–4), extra_paramsБинарное аудио; повторная ссылка — в X-4Gen-Media-URL
/video/generationsmodel, promptduration, resolution, response_format (mp4/webm), extra_paramsJSON с защищённым URL видео
Legacy-поля чата. max_tokens автоматически преобразуется в max_completion_tokens, а functions/function_call — в tools/tool_choice. Не передавайте старое и новое поле одновременно: такой запрос неоднозначен и вернёт 422.
Пока не поддерживаются: аудиовывод чата, web_search_options, moderation, store=true и нестандартные уровни service_tier. Они возвращают 422 до запуска модели и резервирования денег.

Поддержка параметров и допустимые значения зависят от модели. Получайте их через GET /models/{model_id}: ответ содержит required_parameters и optional_parameters. Неизвестный, неподдерживаемый или конфликтующий параметр возвращает 422 и не запускает провайдера.

Текст

Совместимо с OpenAI Chat Completions

grok-4.6

Python + openai

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["FOURGEN_API_KEY"],
    base_url="https://api.4gen.ru/v1",
)

response = client.chat.completions.create(
    model="grok-4.6",
    messages=[{"role": "user", "content": "Объясни квантовые вычисления простыми словами"}],
)
print(response.choices[0].message.content)

cURL — macOS, Linux или Git Bash

curl --fail-with-body "https://api.4gen.ru/v1/chat/completions" \
  -H "Authorization: Bearer $FOURGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: example-chat-001" \
  --data '{"model":"grok-4.6","messages":[{"role":"user","content":"\u041e\u0431\u044a\u044f\u0441\u043d\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438"}]}'

Windows PowerShell

$headers = @{
  Authorization = "Bearer $env:FOURGEN_API_KEY"
  "Idempotency-Key" = "example-chat-001"
}
$body = @'
{"model":"grok-4.6","messages":[{"role":"user","content":"Объясни квантовые вычисления простыми словами"}]}
'@
Invoke-RestMethod `
  -Method Post `
  -Uri "https://api.4gen.ru/v1/chat/completions" `
  -Headers $headers `
  -ContentType "application/json; charset=utf-8" `
  -Body ([System.Text.Encoding]::UTF8.GetBytes($body))

Изображения

Совместимо с OpenAI Images

wan/v2.6/text-to-image

Python + openai

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["FOURGEN_API_KEY"],
    base_url="https://api.4gen.ru/v1",
)

response = client.images.generate(
    model="wan/v2.6/text-to-image",
    prompt="Минималистичная обложка блога о технологиях",
    response_format="url",
)
print(response.data[0].url)

cURL — macOS, Linux или Git Bash

curl --fail-with-body "https://api.4gen.ru/v1/images/generations" \
  -H "Authorization: Bearer $FOURGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: example-image-001" \
  --data '{"model":"wan/v2.6/text-to-image","prompt":"\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0431\u043b\u043e\u0436\u043a\u0430 \u0431\u043b\u043e\u0433\u0430 \u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445","response_format":"url"}'

Windows PowerShell

$headers = @{
  Authorization = "Bearer $env:FOURGEN_API_KEY"
  "Idempotency-Key" = "example-image-001"
}
$body = @'
{"model":"wan/v2.6/text-to-image","prompt":"Минималистичная обложка блога о технологиях","response_format":"url"}
'@
Invoke-RestMethod `
  -Method Post `
  -Uri "https://api.4gen.ru/v1/images/generations" `
  -Headers $headers `
  -ContentType "application/json; charset=utf-8" `
  -Body ([System.Text.Encoding]::UTF8.GetBytes($body))

Речь

Совместимо с OpenAI Audio Speech

Нет активной модели

Endpoint предусмотрен контрактом, но сейчас в каталоге нет активной модели этой категории. Проверяйте GET /models.

Видео

Расширение 4gen: raw HTTP, не метод OpenAI SDK

wan/v2.6/text-to-video

Python + requests

import os
import requests

response = requests.post(
    "https://api.4gen.ru/v1/video/generations",
    headers={
        "Authorization": f"Bearer {os.environ['FOURGEN_API_KEY']}",
    },
    json={
        "model": "wan/v2.6/text-to-video",
        "prompt": "Камера летит над горным озером на рассвете",
    },
    timeout=600,
)
response.raise_for_status()
print(response.json()["data"][0]["url"])

cURL — macOS, Linux или Git Bash

curl --fail-with-body "https://api.4gen.ru/v1/video/generations" \
  -H "Authorization: Bearer $FOURGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: example-video-001" \
  --data '{"model":"wan/v2.6/text-to-video","prompt":"\u041a\u0430\u043c\u0435\u0440\u0430 \u043b\u0435\u0442\u0438\u0442 \u043d\u0430\u0434 \u0433\u043e\u0440\u043d\u044b\u043c \u043e\u0437\u0435\u0440\u043e\u043c \u043d\u0430 \u0440\u0430\u0441\u0441\u0432\u0435\u0442\u0435"}'

Windows PowerShell

$headers = @{
  Authorization = "Bearer $env:FOURGEN_API_KEY"
  "Idempotency-Key" = "example-video-001"
}
$body = @'
{"model":"wan/v2.6/text-to-video","prompt":"Камера летит над горным озером на рассвете"}
'@
Invoke-RestMethod `
  -Method Post `
  -Uri "https://api.4gen.ru/v1/video/generations" `
  -Headers $headers `
  -ContentType "application/json; charset=utf-8" `
  -Body ([System.Text.Encoding]::UTF8.GetBytes($body))

Модели и цены

Таблица формируется из тех же данных и расчётов, что страница тарифов. В API нужно передавать ID, а не адресный slug страницы.

Модельmodel.idПубличный методЦена
Claude Fable 5claude-fable-5POST /chat/completionsвход 1530 ₽ / выход 7650 ₽ за 1 млн токенов
Claude Fable 5 1claude-fable-5-1POST /chat/completionsвход 1530 ₽ / выход 7650 ₽ за 1 млн токенов
Claude Haiku 4.5claude-haiku-4-5POST /chat/completionsвход 153 ₽ / выход 765 ₽ за 1 млн токенов
Claude Opus 4 7claude-opus-4-7POST /chat/completionsвход 765 ₽ / выход 3825 ₽ за 1 млн токенов
Claude Opus 5claude-opus-5POST /chat/completionsвход 765 ₽ / выход 3825 ₽ за 1 млн токенов
Claude Sonnet 5claude-sonnet-5POST /chat/completionsвход 306 ₽ / выход 1530 ₽ за 1 млн токенов
Deepseek 4 Flashdeepseek-v4-flashPOST /chat/completionsвход 59.4 ₽ / выход 178.2 ₽ за 1 млн токенов
Deepseek V4 Prodeepseek-v4-proPOST /chat/completionsвход 178.2 ₽ / выход 534.6 ₽ за 1 млн токенов
Gemini 2.5 Flashgemini-2.5-flashPOST /chat/completionsвход 22.95 ₽ / выход 91.8 ₽ за 1 млн токенов
Gemini 2.5 Flash Litegemini-2.5-flash-litePOST /chat/completionsвход 15.3 ₽ / выход 61.2 ₽ за 1 млн токенов
Gemini 2.5 Progemini-2.5-proPOST /chat/completionsвход 191.25 ₽ / выход 1530 ₽ за 1 млн токенов
Gemini 3 Flash Previewgemini-3-flash-previewPOST /chat/completionsвход 76.5 ₽ / выход 459 ₽ за 1 млн токенов
Gemini 3.1 Flash Lite Previewgemini-3.1-flash-lite-previewPOST /chat/completionsвход 38.25 ₽ / выход 229.5 ₽ за 1 млн токенов
Gemini 3.1 Pro Previewgemini-3.1-pro-previewPOST /chat/completionsвход 306 ₽ / выход 1836 ₽ за 1 млн токенов
Gemini 3.7 Flashgemini-3.7-flashPOST /chat/completionsвход 229.5 ₽ / выход 1147.5 ₽ за 1 млн токенов
GPT 5gpt-5POST /chat/completionsвход 270 ₽ / выход 1080 ₽ за 1 млн токенов
GPT 5 Minigpt-5-miniPOST /chat/completionsвход 54 ₽ / выход 216 ₽ за 1 млн токенов
GPT 5 Nanogpt-5-nanoPOST /chat/completionsвход 13.5 ₽ / выход 54 ₽ за 1 млн токенов
GPT 5.1gpt-5.1POST /chat/completionsвход 168.75 ₽ / выход 1350 ₽ за 1 млн токенов
GPT 5.2gpt-5.2POST /chat/completionsвход 236.25 ₽ / выход 1890 ₽ за 1 млн токенов
GPT 5.4gpt-5.4POST /chat/completionsвход 337.5 ₽ / выход 2025 ₽ за 1 млн токенов
GPT 5.4 Minigpt-5.4-miniPOST /chat/completionsвход 101.25 ₽ / выход 607.5 ₽ за 1 млн токенов
GPT 5.4 Nanogpt-5.4-nanoPOST /chat/completionsвход 27 ₽ / выход 168.75 ₽ за 1 млн токенов
GPT 5.5gpt-5.5POST /chat/completionsвход 675 ₽ / выход 4050 ₽ за 1 млн токенов
GPT 5.6 Lunagpt-5.6-lunaPOST /chat/completionsвход 27 ₽ / выход 162 ₽ за 1 млн токенов
GPT 5.6 Solgpt-5.6-solPOST /chat/completionsвход 540 ₽ / выход 2700 ₽ за 1 млн токенов
GPT 5.6 Terragpt-5.6-terraPOST /chat/completionsвход 270 ₽ / выход 1620 ₽ за 1 млн токенов
GPT 6 Astragpt-6-astraPOST /chat/completionsвход 1350 ₽ / выход 6750 ₽ за 1 млн токенов
Grok 4.3grok-4.3POST /chat/completionsвход 191.25 ₽ / выход 382.5 ₽ за 1 млн токенов
Grok 4.6grok-4.6POST /chat/completionsвход 0 ₽ / выход 0 ₽ за 1 млн токенов
Wan v2.6 Text to Imagewan/v2.6/text-to-imagePOST /images/generations0.01 ₽ за изображение
FLUX 2fal-ai/flux-2POST /images/generations3.67 ₽ за изображение
FLUX 2 Flashfal-ai/flux-2/flashPOST /images/generations1.53 ₽ за изображение
FLUX.1 [schnell]fal-ai/flux-1/schnellPOST /images/generations0.92 ₽ за изображение
Flux 2 Max (генерация)fal-ai/flux-2-maxPOST /images/generations21.42 ₽ за изображение
Flux 2 Max (редактирование)fal-ai/flux-2-max/editПока недоступен21.42 ₽ за изображение
Flux 2 Profal-ai/flux-2-proPOST /images/generations9.18 ₽ за изображение
Bagelfal-ai/bagelPOST /images/generations15.3 ₽ за изображение
Nano Bananafal-ai/nano-bananaPOST /images/generations6.09 ₽ за изображение
Nano Banana 2 (генерация)fal-ai/nano-banana-2POST /images/generations24.48 ₽ за изображение
Nano Banana 2 (редактирование)fal-ai/nano-banana-2/editПока недоступен24.48 ₽ за изображение
Grok Imagine Imagexai/grok-imagine-imagePOST /images/generations3.06 ₽ за изображение
Wan v2.6 Text to Videowan/v2.6/text-to-videoPOST /video/generations22.95 ₽ за секунду
FLUX 3 Image to Videoblackforestlabs/flux-3/image-to-videoПока недоступенот 26.01 ₽ за секунду
Flux 3 Text-to-Videoblackforestlabs/flux-3/text-to-videoPOST /video/generationsот 26.01 ₽ за секунду
Grok Imagine Video (изобр.→видео)xai/grok-imagine-video/image-to-videoПока недоступен10.71 ₽ за секунду
Grok Imagine Video (текст→видео)xai/grok-imagine-video/text-to-videoPOST /video/generationsот 6.75 ₽ за секунду

Лимиты

30текстовых запросов в минуту
10медиа-запросов в минуту
3текстовых генерации одновременно
2медиа-генерации одновременно

При превышении сервер отвечает 429. Если исходный запрос содержал Idempotency-Key, повторяйте его с тем же значением.

Ошибки

Ошибки возвращаются в едином JSON-объекте error с полями message, type, param и code.

400битый JSON или некорректный Idempotency-Key
401ключ отсутствует, неверен или отозван
402недостаточно средств
404модель или файл не найден
409Idempotency-Key повторён с другим телом
422параметр неверен или не поддерживается
429превышен лимит; учитывайте Retry-After
500внутренняя ошибка
502ошибка провайдера
503API или зависимость недоступны

Медиафайлы

URL результата вида /v1/files/<uuid> скачивается с тем же заголовком Bearer. Файлы публичного API хранятся до 30 календарных дней и после этого могут быть удалены. Отзыв ключа сам по себе не удаляет файлы аккаунта.