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 format | Endpoint | SDK base URL | Authentication |
|---|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | https://api.nexotao.com/v1 | Authorization: Bearer sk-nexo-... |
| Anthropic Messages | /v1/messages | https://api.nexotao.com | x-api-key: sk-nexo-... |
| OpenAI Responses | /v1/responses | https://api.nexotao.com/v1 | Authorization: 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.