Endpoints & Formats

Endpoints & Formats

The Phase 1 catalog contains 32 Bedrock models and two GPT-5.6 models through Azure. Choose the endpoint based on the model and your client’s wire format.

Client formatEndpointSDK base URLAuthentication
OpenAI Chat Completions/v1/chat/completionshttps://api.nexotao.com/v1Authorization: Bearer sk-nexo-...
Anthropic Messages/v1/messageshttps://api.nexotao.comx-api-key: sk-nexo-...
OpenAI Responses/v1/responseshttps://api.nexotao.com/v1Authorization: Bearer sk-nexo-...

/v1/chat/completions accepts all 34 models. /v1/messages accepts the 32 Bedrock models. /v1/responses is available specifically for gpt-5.6-terra and gpt-5.6-luna, including OpenAI Codex CLI.

OpenAI format

Use this for the OpenAI SDK, Aider, Continue, and clients that ask for an OpenAI base URL:

from openai import OpenAI
 
client = OpenAI(base_url="https://api.nexotao.com/v1", api_key="sk-nexo-...")
 
response = client.chat.completions.create(
    model="qwen3-coder-next",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain consistent hashing."},
    ],
)
print(response.choices[0].message.content)

Anthropic format

Use this for the Anthropic SDK and Claude Code. The same endpoint also accepts non-Claude Phase 1 models; for example, qwen3-coder-next has been validated end-to-end through /v1/messages.

from anthropic import Anthropic
 
client = Anthropic(base_url="https://api.nexotao.com", api_key="sk-nexo-...")
 
message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=256,
    system="You are a concise assistant.",
    messages=[{"role": "user", "content": "Explain consistent hashing."}],
)
print(message.content[0].text)

In Messages format, system is a top-level field and max_tokens is required. Do not paste an OpenAI body into /v1/messages; use /v1/chat/completions instead.

Model IDs are case-sensitive. Copy them from GET /models, and check supports_tools before selecting a model for an agent loop.