Разработчикам

Документация PRO-1

PRO-1 — одна развивающаяся OpenAI-совместимая модель. Используйте pro-1 для текущей production-версии или закрепите неизменяемый snapshot pro-1-YYYY-MM-DD, если интеграции нужна воспроизводимость. Модель работает через /v1/chat/completions и официальный OpenAI SDK — поменяйте base_url и ключ.

Обзор

base_urlhttps://api.promanos.com/v1 modelpro-1 протоколOpenAI Chat Completions

PRO-1 сам подбирает обработку под сложность задачи: простые запросы — быстро и дёшево, сложные — с углублённой обработкой и проверкой полноты результата. Снаружи это обычная OpenAI-совместимая модель. Ключи провайдеров живут на сервере и потребителю не передаются; запросы тарифицируются с баланса вашего аккаунта.

Авторизация

Защищённые generation/account endpoints требуют API-токен в заголовке Authorization. Публичные endpoints, например /v1/estimate и /v1/benchmarks/*, токен не требуют. Создайте токен в кабинете и держите его на сервере (не публикуйте в клиентском коде).

Authorization: Bearer <ваш-токен>

MCP-серверы

PromanOS предоставляет два удалённых stateless Streamable HTTP endpoint. Документация публична и строго read-only; product endpoint принимает API-токен PromanOS либо OAuth 2.1 access token, когда в deployment настроен OIDC-провайдер.

Docs MCP: https://api.promanos.com/mcp/docs — поиск и чтение публичной документации, OpenAPI-контракт, changelog и методология бенчмарков.

Product MCP: https://api.promanos.com/mcp — PRO-1 и Marketplace. Создание, принятие и отмена заказов меняют состояние и требуют явного подтверждения.

https://api.promanos.com/mcp/docs
https://api.promanos.com/mcp  # Authorization: Bearer <your-token>

OAuth scopes: pro1:invoke, marketplace:read, orders:read и orders:write. Сервер проверяет подпись, issuer, audience, срок действия и scopes и публикует RFC 9728 discovery только при наличии настоящего OIDC authorization server, прошедшего live conformance gate. Безопасный статус: GET /mcp/oauth/status.

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

curl https://api.promanos.com/v1/chat/completions \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "pro-1",
    "messages": [{"role": "user", "content": "Оцени стратегию запуска и найди упущенные риски."}]
  }'

Chat Completions

POST /v1/chat/completions — основной эндпойнт.

ПараметрТипОписание
modelstring"pro-1" или зарегистрированный snapshot, например "pro-1-2026-07-06".
messagesarrayСписок сообщений {role, content} (system/user/assistant).
streambooleanЕсли true — ответ приходит по SSE (см. ниже).
stream_optionsobjectОпц.: include_usage, include_progress_text — прогресс по ходу выполнения.

Ответ

OpenAI-совместимый объект. Дополнительно — нейтральный блок promanos (версия модели, цена, кэш) и cost.

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "pro-1",
  "choices": [{ "message": { "role": "assistant", "content": "...полный ответ..." }, "finish_reason": "stop" }],
  "usage": { "prompt_tokens": 120, "completion_tokens": 1720, "total_tokens": 1840 },
  "system_fingerprint": "promanos-pro-1",
  "promanos": {
    "model_version": "1.1.3",
    "price_usd": 0.41,
    "billing": {
      "pricing_version": "pro-1-usd-2026-07-11-r2",
      "billing_basis": "processed_tokens",
      "input_per_1m_usd": 12.0,
      "output_per_1m_usd": 48.0
    },
    "cached": false
  }
}

Стриминг

С "stream": true ответ приходит как text/event-stream (SSE) чанками chat.completion.chunk. Каждый чанк может нести нейтральный блок progress (фаза + краткий статус); финальный чанк — usage + promanos. Поток завершается строкой data: [DONE].

{ "object": "chat.completion.chunk", "model": "pro-1",
  "choices": [{ "delta": { "content": "..." }, "finish_reason": null }],
  "progress": { "event": "progress", "status_text": "Обрабатываю запрос…" } }

Для длинных задач есть асинхронный session API (POST /v1/chat/sessions + SSE /events или постраничный /events-page) — готовый UI для него: Чат (прогресс-бар, лента шагов, текущая стоимость).

Мультимодальный ввод. В content можно передавать не только текст: image_url (анализ изображений), input_audio (речь распознаётся в текст), file (txt/csv/код/PDF — извлекается текст) и input_video (видео анализируется по кадрам + распознаётся речь из дорожки). Всё это автоматически учитывается моделью; доп-обработка тарифицируется добавленными токенами.

Async-сессии

Используйте session API для долгих задач, отображения прогресса, подтверждения стоимости и уточняющих вопросов. Создайте сессию через POST /v1/chat/sessions, получайте события из SSE-потока /events (или восстанавливайтесь через /events-page), затем заберите финальный OpenAI-совместимый ответ из /result.

curl -X POST https://api.promanos.com/v1/chat/sessions \
  -H "Authorization: Bearer $PROMANOS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"pro-1","messages":[{"role":"user","content":"Оцени стратегию запуска и найди упущенные риски."}]}'

# SSE progress stream
curl -N https://api.promanos.com/v1/chat/sessions/SESSION_ID/events \
  -H "Authorization: Bearer $PROMANOS_API_KEY"

# Recovery-safe page and final response
curl "https://api.promanos.com/v1/chat/sessions/SESSION_ID/events-page?after=-1&limit=100" \
  -H "Authorization: Bearer $PROMANOS_API_KEY"
curl https://api.promanos.com/v1/chat/sessions/SESSION_ID/result \
  -H "Authorization: Bearer $PROMANOS_API_KEY"

Интерактивный запуск может остановиться в awaiting_approval или awaiting_user. Вызовите /approve или /live-input и продолжайте читать события. Временная ошибка polling не отменяет запуск: переподключитесь с последним значением next_after.

Оценка стоимости

POST /v1/estimate — вилка стоимости/времени до запуска (без вызова провайдеров). Передайте model: "pro-1" или зарегистрированный датированный snapshot.

curl -X POST https://api.promanos.com/v1/estimate \\
  -H "Content-Type: application/json" -d '{"model": "pro-1"}'

Генерация изображений

POST /v1/images/generations — OpenAI-совместимая генерация изображений (модель pro-1). Размер size подгоняется к поддерживаемому по соотношению сторон (квадрат / портрет / альбом). Ответ — массив data с b64_json или url.

Авто-подбор модели под задачу. Система понимает, что нужно: для изображений с текстом (логотип, постер, надпись) или повышенного качества выбирается более сильная и дорогая модель, для обычных картинок — экономичная. Выбранный тариф возвращается в promanos.tier (standard / premium). Можно задать явно через quality ("high" / "low").

curl -X POST https://api.promanos.com/v1/images/generations \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"prompt": "постер с надписью SALE 50%", "size": "1024x1024", "n": 1}'

Тарификация — по фактической стоимости генерации (зависит от выбранного тарифа); как и остальные запросы, ответ возвращает списанную цену в блоке promanos.

Генерация видео

Генерация видео — асинхронная (job): POST /v1/videos/generations сразу возвращает id и status: "queued", затем опрашивайте GET /v1/videos/generations/{id} до status: "completed" — в ответе придёт data[].url на готовый ролик. Тариф подбирается под задачу; списание — по факту завершения.

curl -X POST https://api.promanos.com/v1/videos/generations \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"prompt": "красный куб медленно вращается на столе"}'
# -> {"id": "...", "status": "queued"}; затем:
curl https://api.promanos.com/v1/videos/generations/ID -H "Authorization: Bearer $PROMANOS_API_KEY"

Видео генерируется ~30 сек и дольше; тарификация — по фактической стоимости (списывается один раз при завершении).

Синтез речи

POST /v1/audio/speech — озвучка текста (OpenAI-совместимо). Возвращает сырые аудио-байты (как OpenAI SDK), списанная цена — в заголовке X-Promanos-Price-USD. Параметры: input, voice, response_format (mp3/wav/…), опц. instructions (стиль озвучки) и backend ("openai" — по умолчанию, либо "elevenlabs" для премиум-голосов; для ElevenLabs voice — это voice_id).

curl -X POST https://api.promanos.com/v1/audio/speech \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"input": "Привет! Это PRO-1.", "voice": "alloy", "response_format": "mp3"}' --output speech.mp3

Распознавание речи (STT)

POST /v1/audio/transcriptions — речь в текст (JSON + base64 аудио). С "stream": true ответ приходит потоком Server-Sent Events: события transcript.text.delta (по мере распознавания) и финальное transcript.text.done — живая транскрипция.

curl -N -X POST https://api.promanos.com/v1/audio/transcriptions \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"file_data": "", "filename": "speech.mp3", "stream": true, "language": "ru"}'

Генерация музыки

POST /v1/music/generations — генерация музыки и песен по текстовому описанию (модель pro-1). Возвращает сырые аудио-байты (mp3, 48 кГц), списанная цена — в заголовке X-Promanos-Price-USD.

curl -X POST https://api.promanos.com/v1/music/generations \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"prompt": "энергичный поп-рок припев про лето"}' --output song.mp3

Файлы

Загрузите файл один раз — и переиспользуйте его в следующих запросах по file_id, ищите по содержимому. Хранилище привязано к вашему аккаунту. При загрузке из файла извлекается текст (txt/csv/код/PDF).

# загрузка (JSON + base64)
curl -X POST https://api.promanos.com/v1/files \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"filename": "report.pdf", "file_data": ""}'   # -> {"id": "...", ...}
# Large files (up to 5 GiB): initialize, PUT raw 8 MiB parts, then complete.
curl -X POST https://api.promanos.com/v1/files/uploads \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/json" \\
  -d '{"filename":"huge.dat","bytes":5368709120}'
curl -X PUT https://api.promanos.com/v1/files/uploads/UPLOAD_ID/parts/0 \\
  -H "Authorization: Bearer $PROMANOS_API_KEY" -H "Content-Type: application/octet-stream" --data-binary @part-0
curl -X POST https://api.promanos.com/v1/files/uploads/UPLOAD_ID/complete \\
  -H "Authorization: Bearer $PROMANOS_API_KEY"
# список / метаданные / скачивание / удаление
curl https://api.promanos.com/v1/files               -H "Authorization: Bearer $KEY"
curl https://api.promanos.com/v1/files/FILE_ID        -H "Authorization: Bearer $KEY"
curl https://api.promanos.com/v1/files/FILE_ID/content -H "Authorization: Bearer $KEY" --output file.bin
curl -X DELETE https://api.promanos.com/v1/files/FILE_ID -H "Authorization: Bearer $KEY"
# поиск по содержимому
curl -X POST https://api.promanos.com/v1/files/search -H "Authorization: Bearer $KEY" \\
  -H "Content-Type: application/json" -d '{"query": "выручка за Q3"}'
# использование в чате по id
# content: [{"type":"text","text":"..."}, {"type":"file","file":{"file_id":"FILE_ID"}}]

Realtime (голос/текст в реальном времени)

WebSocket wss://api.promanos.com/v1/realtime — двусторонний поток в реальном времени (голос и текст, низкая задержка). Сначала получите короткоживущий ticket через POST /v1/realtime/ticket, затем подключайтесь с ?ticket=…. Постоянный API-ключ не попадает в URL WebSocket; тарификация выполняется по фактическому использованию в конце сессии.

// браузер
const ticketRes = await fetch("https://api.promanos.com/v1/realtime/ticket", {
  method: "POST",
  headers: { Authorization: "Bearer " + API_KEY }
});
const { ticket } = await ticketRes.json();
const ws = new WebSocket("wss://api.promanos.com/v1/realtime?ticket=" + encodeURIComponent(ticket));
ws.onmessage = (e) => console.log(JSON.parse(e.data));   // события сессии
ws.onopen = () => ws.send(JSON.stringify({ type: "session.update", session: {
  type: "realtime",
  output_modalities: ["audio"],
  instructions: "Привет!",
  audio: {
    input: {
      format: { type: "audio/pcm", rate: 24000 },
      turn_detection: { type: "server_vad", create_response: true, interrupt_response: true }
    },
    output: { format: { type: "audio/pcm", rate: 24000 }, voice: "alloy" }
  }
} }));

Модели

GET /v1/models возвращает moving ID pro-1 и неизменяемые датированные snapshots. Базовый ID всегда указывает на текущую production-версию; используйте pro-1-YYYY-MM-DD для воспроизводимого поведения. GET /v1/models/pro-1 возвращает текущую карточку модели, version и readiness.

Ошибки

КодЗначение
401Неверный или отсутствующий токен.
402Недостаточно средств на балансе — пополните в кабинете.
403Доступ к API в листе ожидания (включается по мере роста ёмкости).
429Превышен лимит запросов токена (rpm).
500–504Временная ошибка сервиса или upstream. Повторите с backoff; при повторении передайте request_id поддержке.

Ошибки приходят в OpenAI-совместимом формате { "error": { "message", "type", "code" } }. Заголовок X-Request-ID и поле request_id в payload идентифицируют запрос. Строгий отказ без тихой деградации: при недоступном провайдере — явная ошибка, никогда не «молча худший» ответ.

Цены и лимиты

Предоплатная модель pay as you go без подписки и промокредитов. Ставки: $12 / 1М входных · $48 / 1М выходных обработанных токенов. Обработанные токены включают все внутренние вызовы, reasoning, синтез и проверку, поэтому они могут превышать размер видимого промпта и ответа. Ответ возвращает точное списание и версию тарифа pro-1-usd-2026-07-11-r2 в блоке promanos.billing. Используйте GET /v1/pricing как машиночитаемый источник ставок и POST /v1/estimate для диапазона стоимости до запуска.

Вопросы: [email protected] · Попробовать вживую: Чат