OpenAI-compatible API overview
The /v1 API is an OpenAI-compatible facade over Octo. Any tool that speaks
the OpenAI API can talk to Octo by changing base_url and api_key — nothing
else in your integration needs to change.
- Base URL:
https://api.omniocto.com/v1
Both endpoint families below are thin serializers over the same internal turn
pipeline that powers the dashboard and the channel bridge, so a /v1 call
inherits Octo’s full tool catalog, role filtering, confirmation machine, and
usage metering unchanged.
Endpoints
Section titled “Endpoints”| Endpoint | Purpose |
|---|---|
POST /v1/responses | Native OpenAI Responses API (recommended). Server-side state, background mode, streaming. |
GET /v1/responses/:id | Retrieve a stored response (for polling background requests). |
POST /v1/chat/completions | Chat Completions compatibility shim — works with LangChain, LiteLLM, n8n, and anything expecting the classic shape. |
GET /v1/models, GET /v1/models/:id | Model list / retrieve (client.models.list()). |
/v1/webhooks (CRUD) | Register signed, retried outbound webhooks for workspace events. |
GET /v1/events | Authenticated Server-Sent Events feed of the same events, with a resume cursor. |
For the full request/response schema of every operation, use the interactive reference: API reference (try it).
The model field
Section titled “The model field”model selects from a curated allowlist. Send any listed id to run that model;
an unknown id returns 400 model_not_found; omit model to run the
default (claude-sonnet-4-6). The chosen model is echoed back in the response.
Call GET /v1/models (client.models.list()) for the live list.
| Model | Provider |
|---|---|
claude-sonnet-4-6 (default) | Anthropic |
claude-haiku-4-5 | Anthropic |
claude-opus-4-7 | Anthropic |
gpt-5.4 | OpenAI |
gpt-5.4-mini | OpenAI |
deepseek-v4-flash | DeepSeek |
deepseek-v4-pro | DeepSeek |
Every call runs through Octo’s full tool catalog and confirmation logic regardless of model; usage is metered at each model’s own rate.
First call: curl
Section titled “First call: curl”curl https://api.omniocto.com/v1/responses \ -H "Authorization: Bearer $OCTO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-6", "input": "What can you help me with?" }'First call: Python (OpenAI SDK)
Section titled “First call: Python (OpenAI SDK)”from openai import OpenAI
client = OpenAI( api_key="sk-octo_...", base_url="https://api.omniocto.com/v1",)
resp = client.responses.create( model="claude-sonnet-4-6", input="What can you help me with?",)print(resp.output_text)- Statefulness — continuing a conversation across calls.
- Confirmations — how risky actions get confirmed over the API.
- Streaming — Server-Sent Events for both endpoints.
- Events & webhooks — subscribe to workspace state changes your agent didn’t initiate.
- Rate limits, Errors, Usage & billing.