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

.md

Подключение к API СОЮЗ за 5 минут: OpenAI-совместимый чат и асинхронные джобы для генерации картинок и видео под одним ключом.

СОЮЗ — единый API-ключ к чат-моделям (GPT, Claude, Gemini, Grok, DeepSeek), генерации картинок (Nano Banana, GPT Image) и видео (Veo, Kling, Seedance). Формат зависит от модальности: чат совместим с OpenAI, а картинки и видео используют асинхронные джобы СОЮЗа.

Если у тебя уже есть код под OpenAI SDK, для чата достаточно поменять base_url и api_key. Для картинок и видео используй показанный ниже POST + опрос/вебхук; это не синхронный OpenAI Images API.

base_url = "https://api.souz.ai/v1"
api_key  = "sk-souz-..."

1. Получи API-ключ

Зарегистрируйся на dash.souz.ai, раздел API-ключи → «Создать ключ». Ключ показывается один раз — сохрани его.

2. Чат — через любой OpenAI SDK

from openai import OpenAI

client = OpenAI(
    base_url="https://api.souz.ai/v1",
    api_key="sk-souz-...",
)

resp = client.chat.completions.create(
    model="souz/gpt-5.4-mini",
    messages=[{"role": "user", "content": "Привет! Что ты умеешь?"}],
)
print(resp.choices[0].message.content)
print("потрачено кредитов:", resp.usage.cost)

То же на JavaScript:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.souz.ai/v1",
  apiKey: "sk-souz-...",
});

const resp = await client.chat.completions.create({
  model: "souz/claude-sonnet-4-6",
  messages: [{ role: "user", content: "Привет!" }],
});
console.log(resp.choices[0].message.content);

Стриминг, картинки в сообщениях (vision), tools и reasoning — в разделе Чат.

3. Картинка — один POST и короткий опрос

Генерация картинок и видео асинхронная: запрос сразу возвращает джобу, результат забираешь опросом или вебхуком.

curl https://api.souz.ai/v1/images/generations \
  -H "Authorization: Bearer sk-souz-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "souz/nano-banana-pro",
    "prompt": "уютный дом в горах на закате, кинематографичный свет",
    "aspect_ratio": "16:9",
    "resolution": "2K"
  }'

Ответ 202:

{
  "id": "job_a1b2c3...",
  "object": "image",
  "model": "souz/nano-banana-pro",
  "status": "queued",
  "price": 20,
  "created_at": 1781250000
}

Опрашивай джобу раз в 2–5 секунд:

curl https://api.souz.ai/v1/jobs/job_a1b2c3... \
  -H "Authorization: Bearer sk-souz-..."

Когда status станет completed, в data[0].url будет ссылка на файл:

{
  "id": "job_a1b2c3...",
  "status": "completed",
  "price": 20,
  "data": [{ "url": "https://api.souz.ai/v1/files/res_....png?exp=...&sig=..." }]
}

Скачивай результат сразу после completed: минимальная доступность и срок фактического удаления сейчас не гарантированы. Недоступная ссылка сама по себе не доказывает удаления. Подробнее: Джобы и результаты.

4. Видео — так же

curl https://api.souz.ai/v1/videos/generations \
  -H "Authorization: Bearer sk-souz-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "souz/kling-3",
    "prompt": "дрон пролетает над осенним лесом, утренний туман",
    "aspect_ratio": "16:9",
    "duration": "5"
  }'

Дальше тот же цикл: GET /v1/jobs/{id}completeddata[0].url (mp4).

Что дальше

Для ИИ-агентов

  • Индекс документации: /llms.txt
  • Вся документация одним файлом: /llms-full.txt
  • Любая страница в чистом Markdown: добавь .md к адресу (например /chat.md)