Skip to main content

Quick Start

The Oxen.ai chat completions API is fully OpenAI-compatible. You can use the OpenAI SDK, curl, or any HTTP client that speaks the OpenAI chat format. Base URL: https://hub.oxen.ai/api/ai Endpoint: POST /ai/chat/completions Browse all available models.

Authentication

Every request requires a Bearer token in the Authorization header. You can find your API key in your account settings.
API key

Response Format

The API returns an OpenAI-compatible JSON response:

Parameters

Messages

Each message in the messages array has a role and content:

Streaming

Set "stream": true to receive responses as server-sent events (SSE). Each event is a chat.completion.chunk object with a delta instead of a message.
Each SSE line is prefixed with data: and contains a JSON chunk:
The stream ends with:

Vision

Models that support vision (such as gemini-3-1-pro-preview or claude-sonnet-4-6) accept images in the messages array. For full details and examples including base64 encoding and video understanding, see Vision Language Models.

Tool use

Tool calling (function calling) follows the same OpenAI Chat Completions tool format. You send a tools array describing each function’s JSON Schema; the model may reply with tool_calls instead of plain text. You execute those functions in your app, then send the results back in new tool messages so the model can finish the answer.

Raw curl: first request (tools only)

The model may respond with tool_calls instead of user-facing content:
Example assistant payload (abbreviated):
Run your function locally, then call the API again with the full transcript: original messages, the assistant message including tool_calls, and one tool message per call. Replace IDs and tool_calls with values from the first response. Repeat until finish_reason is "stop" (or "length") and there are no new tool_calls.

Follow-up request: curl and OpenAI Python SDK

The follow-up HTTP body matches what the OpenAI SDK builds when you append assistant and tool messages in a loop.

Errors

The API returns errors as JSON with an error object and a standard HTTP status code.

Playground

The model playground lets you test any model interactively before writing code. This is also a great way to test models you’ve fine-tuned after deploying them. Chat Interface