Recruiting design partners for new verticals — open a new industry, get the platform at half price

OpenAI & Anthropic compatibility

Already using the OpenAI or Anthropic SDK? Point it at Nexevo by changing two things — the base URL and the API key. Your existing code keeps working, and every call gets Nexevo's smart routing, billing, and BYOK.

Endpoints

POST/v1/chat/completions

OpenAI Chat Completions

POST/v1/messages

Anthropic Messages

Both speak their vendor's exact wire format (streaming and non-streaming), so the official SDKs work unmodified. That also answers "is there an SDK?" — use the OpenAI or Anthropic SDK you already have.

Authentication

Use a workspace API key — the same key as the REST API. It binds the call to one workspace; the OpenAI surface reads it from the Authorization: Bearer header, the Anthropic surface from x-api-key. The SDKs set these for you from their api_key option.

Choosing the model

Pass "nexevo-auto" as the model to let Nexevo's router pick the best model for each request, or pass an explicit Nexevo model id to pin one. An unknown model id returns 404.

OpenAI — Python

python
from openai import OpenAI

client = OpenAI(
    base_url="https://nexevo.ai/v1",
    api_key="sk-ws-...",  # your Nexevo workspace API key
)

resp = client.chat.completions.create(
    model="nexevo-auto",  # or an explicit Nexevo model id
    messages=[{"role": "user", "content": "Summarize our Q2 results."}],
)
print(resp.choices[0].message.content)

Streaming

python
stream = client.chat.completions.create(
    model="nexevo-auto",
    messages=[{"role": "user", "content": "Write a short product update."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

OpenAI — JavaScript / TypeScript

javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://nexevo.ai/v1",
  apiKey: process.env.NEXEVO_API_KEY, // your workspace API key
});

const resp = await client.chat.completions.create({
  model: "nexevo-auto",
  messages: [{ role: "user", content: "Summarize our Q2 results." }],
});
console.log(resp.choices[0].message.content);

OpenAI — curl

bash
curl https://nexevo.ai/v1/chat/completions \\
  -H "Authorization: Bearer sk-ws-..." \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "nexevo-auto",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Anthropic — Python

The Anthropic SDK appends /v1/messages to the base URL, so set it to https://nexevo.ai.

python
from anthropic import Anthropic

client = Anthropic(
    base_url="https://nexevo.ai",
    api_key="sk-ws-...",  # your Nexevo workspace API key
)

msg = client.messages.create(
    model="nexevo-auto",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Summarize our Q2 results."}],
)
print(msg.content[0].text)

Anthropic — curl

bash
curl https://nexevo.ai/v1/messages \\
  -H "x-api-key: sk-ws-..." \\
  -H "anthropic-version: 2023-06-01" \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "nexevo-auto",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Calls bill exactly like the native chat lane (smart-routed, flat rate card), and a workspace BYOK key — if set — is used automatically. Token usage in the response is a best-effort estimate. Reasoning and tool-call frames are not emitted on these surfaces; they return assistant text only.