OpenAI and Anthropic Compatibility

Use familiar request shapes while routing through EmpirioLabs AI

EmpirioLabs AI exposes compatibility endpoints so you can adopt the platform without rewriting existing integrations. Point your OpenAI or Anthropic SDK at the EmpirioLabs base URL and start making requests immediately.

OpenAI-compatible Chat Completions

POST /v1/chat/completions

Accepts the same request body as the OpenAI Chat Completions API. Supports messages, model, stream, temperature, max_tokens, and other standard parameters.

$curl "https://api.empiriolabs.ai/v1/chat/completions" \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "model": "qwen3-max",
> "messages": [{ "role": "user", "content": "Summarize this in one sentence." }]
> }'

Using the OpenAI Python SDK:

1from openai import OpenAI
2
3client = OpenAI(
4 api_key="sk-empiriolabs-your_key_here",
5 base_url="https://api.empiriolabs.ai/v1",
6)
7
8response = client.chat.completions.create(
9 model="qwen3-max",
10 messages=[{"role": "user", "content": "Hello!"}],
11)
System prompts

Every chat model ships with a short default system message that establishes its identity (for example, “You are DeepSeek V4 Flash”). The default is prepended to your request automatically when you do not include a role: "system" or role: "developer" message. If you provide one, it fully replaces the default. No merging or prepending happens, and multiple system messages in a single request are forwarded to the upstream as-is.

OpenAI Responses-compatible endpoint

POST /v1/responses

Accepts the same request body as the OpenAI Responses API. Supports model, input, instructions, and related fields.

$curl "https://api.empiriolabs.ai/v1/responses" \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "model": "seed-2-0-pro",
> "input": "Write a launch checklist."
> }'

Anthropic-style Messages endpoint

POST /v1/messages

Accepts the same request body as the Anthropic Messages API. Requires model, messages, and max_tokens.

$curl "https://api.empiriolabs.ai/v1/messages" \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "model": "mistral-medium-3-1",
> "messages": [{ "role": "user", "content": "Hello" }],
> "max_tokens": 256
> }'

SDK configuration cheat sheet

SDKConfiguration
OpenAI PythonOpenAI(api_key="sk-empiriolabs-...", base_url="https://api.empiriolabs.ai/v1")
OpenAI Nodenew OpenAI({ apiKey: "sk-empiriolabs-...", baseURL: "https://api.empiriolabs.ai/v1" })
Anthropic PythonPoint base_url to https://api.empiriolabs.ai and set api_key to your EmpirioLabs key
cURLSet Authorization: Bearer sk-empiriolabs-... and use the EmpirioLabs base URL

For coding agents, IDE assistants, and CLIs, see Integrations for OpenCode, Claude Code, Cline, Aider, Continue, Cursor, and other OpenAI-compatible tools.

Model support

Not every model supports every endpoint format. Use GET /v1/models/{modelId} to check a specific model’s capabilities (streaming, system prompt, web search, images, video) and supported_parameters before integrating.