Hubris Responses API
The Responses API from Hubris — 1 operation(s) for responses.
The Responses API from Hubris — 1 operation(s) for responses.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hubris-pw:hubris-pw-responses-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Hubris Responses API
version: 1.0.0
description: 'OpenAI-совместимый API российского LLM-агрегатора. Все цены в рублях.
Версии и вывод из эксплуатации (deprecation policy): несовместимые изменения — только в новой версии префикса (`/v2`); об отключении эндпоинта или поля предупреждаем не меньше чем за 90 дней заголовками `Deprecation` (RFC 9745) и `Sunset` (RFC 8594), записью в журнале изменений и письмом. Подробно: https://hubris.pw/docs/api/versioning'
servers:
- url: https://api.hubris.pw
description: Production
tags:
- name: Responses
paths:
/v1/responses:
post:
operationId: createResponse
tags:
- Responses
summary: Создать response (beta)
description: 'OpenAI-совместимый Responses API endpoint. **BETA** — schema нестабильна, поля могут меняться.
При `stream: true` возвращает Server-Sent Events стрим. Usage приходит в `response.completed` event.'
security:
- bearerAuth: []
- oauth2:
- chat:write
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesRequest'
responses:
'200':
description: 'Успешный ответ. При `stream: false` — JSON. При `stream: true` — `text/event-stream`.'
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesResponse'
text/event-stream:
schema:
type: string
description: SSE-stream events (см. /docs/api/responses, beta).
'400':
description: Невалидное тело
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'401':
description: Невалидный API-ключ
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'402':
description: Недостаточно средств
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'404':
description: Модель не найдена
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'429':
description: Превышен дневной лимит ключа
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'502':
description: Ошибка провайдера
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'503':
description: Курс ЦБ РФ недоступен
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
'504':
description: Провайдер не ответил вовремя
content:
application/json:
schema:
$ref: '#/components/schemas/ResponsesErrorResponse'
components:
schemas:
ResponsesRequest:
type: object
properties:
model:
type: string
minLength: 1
example: openai/o1-mini
input:
anyOf:
- type: string
- type: array
items:
type: object
additionalProperties:
nullable: true
description: Строка или массив input-блоков (см. OpenAI Responses API).
stream:
type: boolean
required:
- model
- input
ResponsesErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/ErrorObject'
required:
- error
ResponsesResponse:
type: object
properties:
id:
type: string
example: resp_abc123
object:
type: string
enum:
- response
created_at:
type: integer
model:
type: string
output:
type: array
items:
type: object
additionalProperties:
nullable: true
usage:
$ref: '#/components/schemas/Usage'
status:
type: string
required:
- id
- object
- created_at
- model
- output
ErrorCode:
type: string
enum:
- invalid_request
- invalid_api_key
- insufficient_balance
- daily_limit_exceeded
- workspace_limit_exceeded
- model_not_found
- exchange_rate_unavailable
- upstream_error
- upstream_timeout
- context_length_exceeded
- content_policy_violation
- input_image_rejected
- not_found
- internal_error
- too_many_active_jobs
- video_not_ready
- index_out_of_range
- byok_disabled
- byok_egress_unavailable
- byok_not_configured
- byok_insufficient_credits
- byok_not_supported_for_videos
ErrorObject:
type: object
properties:
message:
type: string
type:
type: string
code:
$ref: '#/components/schemas/ErrorCode'
param:
type: string
nullable: true
required:
- message
- type
- code
Usage:
type: object
properties:
prompt_tokens:
type: integer
minimum: 0
completion_tokens:
type: integer
minimum: 0
total_tokens:
type: integer
minimum: 0
completion_tokens_details:
type: object
properties:
reasoning_tokens:
type: integer
minimum: 0
prompt_tokens_details:
type: object
properties:
cached_tokens:
type: integer
minimum: 0
required:
- prompt_tokens
- completion_tokens
- total_tokens
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: sk-gw-...
description: API-ключ в формате `sk-gw-` + 32 hex. Создаётся в дашборде на /keys. Обычный ключ даёт все права, ключ только для чтения не может тратить баланс.
oauth2:
type: oauth2
description: 'OAuth-токен приложения с ограниченными правами. Регистрация клиента — `POST /oauth/clients` (RFC 7591), PKCE S256 обязателен. Метаданные: `/.well-known/oauth-authorization-server`, `/.well-known/oauth-protected-resource`.'
flows:
authorizationCode:
authorizationUrl: https://api.hubris.pw/oauth/authorize
tokenUrl: https://api.hubris.pw/oauth/token
refreshUrl: https://api.hubris.pw/oauth/token
scopes:
chat:write: 'Запросы к моделям от имени пользователя (списывают баланс): чат, Responses, Messages, эмбеддинги, реранкеры, модели решений, изображения, распознавание и озвучка речи, расшифровка видео; коннекторы Битрикс24.'
models:read: Видеть цепочки резервных моделей пользователя в `GET /v1/models`.
balance:read: Видеть остаток баланса пользователя.
videos:write: Создавать видео от имени пользователя (`POST /v1/videos`, резервирует и списывает баланс).
videos:read: Узнавать статус и скачивать видео пользователя (`GET /v1/videos/{id}`, `GET /v1/videos/{id}/content`).
offline_access: Выдать refresh-токен, чтобы подключение жило 90 дней без повторного входа.