Skip to content

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.

EndpointPurpose
POST /v1/responsesNative OpenAI Responses API (recommended). Server-side state, background mode, streaming.
GET /v1/responses/:idRetrieve a stored response (for polling background requests).
POST /v1/chat/completionsChat Completions compatibility shim — works with LangChain, LiteLLM, n8n, and anything expecting the classic shape.
GET /v1/models, GET /v1/models/:idModel list / retrieve (client.models.list()).
/v1/webhooks (CRUD)Register signed, retried outbound webhooks for workspace events.
GET /v1/eventsAuthenticated 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).

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.

ModelProvider
claude-sonnet-4-6 (default)Anthropic
claude-haiku-4-5Anthropic
claude-opus-4-7Anthropic
gpt-5.4OpenAI
gpt-5.4-miniOpenAI
deepseek-v4-flashDeepSeek
deepseek-v4-proDeepSeek

Every call runs through Octo’s full tool catalog and confirmation logic regardless of model; usage is metered at each model’s own rate.

Terminal window
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?"
}'
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)