Unified API
One OpenAI-compatible endpoint for every model, including your own. Request shape, model-name forms, and authentication.
Point your existing OpenAI SDK at https://api.nyuro.ai/v1/chat/completions
and Nyuro routes the request to the best (provider, model) — cloud or your own
VPS — and returns an identical response shape.
Endpoint
POST https://api.nyuro.ai/v1/chat/completions
Authorization: Bearer neu_live_…
Content-Type: application/jsonThe request and response bodies mirror OpenAI's Chat Completions API. Any field
the underlying provider supports (temperature, max_tokens, tools,
tool_choice, stream, …) is forwarded through.
Authentication
Issue and rotate keys from Settings → API Keys in the console. Keys are
shown once on creation. Send the key as a bearer token (recommended) or via
X-API-Key:
Authorization: Bearer neu_live_<suffix>
# or
X-API-Key: neu_live_<suffix>The model field
You can pass any of these forms — all resolve through the router:
- Concrete alias —
gpt-4o-mini,claude-3-5-sonnet,llama3.1, … - Industry tag —
industry:legal,industry:code, … - Strategy hint —
strategy:cost,strategy:quality, … - Auto —
auto - Fallback array —
"models": ["gpt-4o", "gpt-4o-mini"](OpenRouter-style)
See Models & aliases for the full reference.
The 30-second migration from OpenRouter
Same OpenAI SDK, two-line change:
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="sk-or-v1-…",
)
resp = client.chat.completions.create(
model="anthropic/claude-3-5-sonnet",
messages=[{"role": "user", "content": "Hi"}],
)from openai import OpenAI
client = OpenAI(
base_url="https://api.nyuro.ai/v1",
api_key="neu_live_…",
)
resp = client.chat.completions.create(
model="claude-3-5-sonnet", # plain alias
messages=[{"role": "user", "content": "Hi"}],
extra_body={"metadata": {"industry": "legal"}},
)In return you get a single observability dashboard, a single bill, automatic fallback, industry-aware routing, and the option to run inference on your own VPS without touching client code. Full walkthrough: Migrating from OpenRouter.
Response headers
Routing decisions are surfaced on every response via X-Nyuro-* headers —
see Routing → Transparency headers.