Документация PRO-1
PRO-1 — одна развивающаяся OpenAI-совместимая модель. Используйте pro-1 для текущей production-версии или закрепите неизменяемый snapshot pro-1-YYYY-MM-DD, если интеграции нужна воспроизводимость. Модель работает через /v1/chat/completions и официальный OpenAI SDK — поменяйте base_url и ключ.
Обзор
https://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": "Оцени стратегию запуска и найди упущенные риски."}]
}'
# pip install openai
from openai import OpenAI
client = OpenAI(base_url="https://api.promanos.com/v1", api_key="sk-...")
resp = client.chat.completions.create(
model="pro-1",
messages=[{"role": "user", "content": "Оцени стратегию запуска и найди упущенные риски."}],
)
print(resp.choices[0].message.content)
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.promanos.com/v1", apiKey: process.env.PROMANOS_API_KEY });
const resp = await client.chat.completions.create({
model: "pro-1",
messages: [{ role: "user", content: "Оцени стратегию запуска и найди упущенные риски." }],
});
console.log(resp.choices[0].message.content);
Chat Completions
POST /v1/chat/completions — основной эндпойнт.
| Параметр | Тип | Описание |
|---|---|---|
model | string | "pro-1" или зарегистрированный snapshot, например "pro-1-2026-07-06". |
messages | array | Список сообщений {role, content} (system/user/assistant). |
stream | boolean | Если true — ответ приходит по SSE (см. ниже). |
stream_options | object | Опц.: 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] · Попробовать вживую: Чат