Verify identity
Bring your identity provider or a bounded API key.
The model control plane for AI apps
Keep an OpenAI-compatible interface and your existing identity system. NeoRouter handles app isolation, routing, cost settlement, risk controls, and safe experiments on the request path.
Keep your user system. Keep provider logic out of your app.
// Keep your SDK. Move control to NeoRouter.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.neorouter.app/v1",
apiKey: process.env.NEOROUTER_API_KEY
});
const response = await client.chat.completions.create({
model: "openai/gpt-5",
messages: [{ role: "user", content: "Hello" }]
}); CONTROL PLANE · GLOBAL One control plane for today's language models and tomorrow's multimodal workloads
REQUEST GOVERNANCE
NeoRouter does more than proxy traffic. It verifies callers, applies policy, reserves cost, selects a route, settles usage, and turns anomalies into operational work.
api.neorouter.appA reliable, explainable outcomeBring your identity provider or a bounded API key.
Bind app, subject, permissions, and capabilities.
Check credit, concurrency, and worst-case cost first.
Balance quality, latency, price, and live health.
Account for actual input, cache, and output usage.
Connect requests, risk, action, notification, and recovery.
ONE CONTROL PLANE
Development, platform, security, and operations teams share the same request truth while controlling the layer each team owns.
Provider SDKs, protocols, streaming, and error formats all differ.
Use one interface, logical models, and presets while expanding to more modalities over time.
OpenAI-compatible · SSE · Presets A shared key cannot express app, user, scope, environment, and budget boundaries.
Normalize your identity provider into app and subject context; use short-lived, scoped, capped keys for automation.
JWT/JWKS · Scopes · Bounded keys Upstream limits, route incidents, and model removals become visible user errors.
Retry only safe failures, fall back across routes and models, and stop propagation with circuit breakers.
Retry · Fallback · Circuit breaking Fragmented logs cannot explain where latency, errors, cost, and fallback came from.
Connect requests, attempts, exact usage, queues, settlement, and notifications in one operational view.
Requests · Attempts · Exact ledger Leaks, abuse, and usage spikes can multiply cost before a team notices.
Move from detection and shadow validation to owned response, temporary controls, recovery, and audit.
Detect · Control · Audit · Recover Small prompt, model, and parameter changes can shift quality, cost, and latency together.
Bucket versions consistently, combine offline evals with online outcomes, then promote or roll back behind guardrails.
A/B/n · Evals · Guardrails · Rollback RISK & OPERATIONS
Bring platform incidents, subject anomalies, and billing risk into one queue with ownership, workflow state, related requests, and a complete audit trail.
app · subject_8F2AOn-callReviewprovider · routePlatformWatchingapi_key · budgetSecurityResolvedapp.supermuse · productionProtect the platform while preserving a slower usable path.
ActiveReserve atomically and settle against actual call cost.
ActivePause the risky capability without blocking the rest of the app.
StandbyEvery control is app- and subject-bound, time-limited, and written to the audit trail.
Watch latency, status, and fallback behavior continuously.
p95 · 684 msBatched events are processing inside the target window.
lag · 1.8 sReserved credit and actual usage are reconciled.
pending · 0Webhooks include retries, expiry, and daily digests.
retrying · 0IDENTITY & DATA BOUNDARIES
NeoRouter normalizes identity provider, app, subject, scope, and budget. Storage can evolve while the product boundary stays stable.
Verify JWT/JWKS or an identity adapter and normalize external identity into app, subject, and scope context.
Identity provider · App · Subject Issue expiring, scoped, credit-capped API keys for development, automation, and controlled testing, then revoke anytime.
Expiry · Scopes · Credit cap Rotate provider credentials through write-only slots; never echo plaintext into the console, logs, or business database.
Write-only · Rotation · Audit DATA MINIMIZATION BY DEFAULT
Prompts and responses pass through the proxy but are not written to durable storage by default. Content evaluation requires explicit app-level sampling, retention, and deletion policy.
ROUTING & RELIABILITY
Before each request leaves the gateway, NeoRouter weighs price, quality, latency, live health, and app policy. Failures are retried only inside safe boundaries.
modality: text
region: autoBest live latency in this region
Highest evaluation score for this task
Lowest projected call cost
Healthiest independent fallback route
EXPERIMENTS & EVALUATION
Online experiments measure real business outcomes. Offline evals test output quality. Both share versions, cost, latency, risk guardrails, and release decisions.
EXP-0142Bucket pseudonymous subjects consistently, compare prompt versions in the same cohort, and keep models and parameters attributable.
prompt/support-v380%prompt/support-v420%Pause the candidate if error, cost, or latency crosses its limit.
The promotion threshold is not met yet. Keep collecting samples instead of declaring a winner too early.
Compare prompts, models, and parameters on curated and historical cases before a visible regression reaches production.
Datasets · Regression · PairwiseAttribute version exposure to completion, adoption, rating, or conversion events returned by the app.
Stable buckets · Outcome APIGate quality, cost, errors, and latency together, then ramp progressively or roll back immediately.
Guardrails · Promote · RollbackExperiments record only version, bucket, and operational metrics by default. Content sampling and LLM grading require an explicit app data policy.
DEVELOPER EXPERIENCE
Keep OpenAI SDKs, URLSession, or standard HTTP. Production apps can carry an existing user session; backends and automation can use bounded API keys.
import OpenAI from "openai";
const neo = new OpenAI({
baseURL: "https://api.neorouter.app/v1",
apiKey: process.env.NEOROUTER_API_KEY
});
const result = await neo.chat.completions.create({
model: "@preset/default",
messages: [{ role: "user", content: "Design a quiet onboarding flow." }]
});import OpenAI
let config = OpenAI.Configuration(
token: ProcessInfo.processInfo.environment["NEOROUTER_API_KEY"]!,
host: "api.neorouter.app"
)
let neo = OpenAI(configuration: config)
let result = try await neo.chats(query: .init(
messages: [.user(.init(content: .string("Hello")))],
model: "openai/gpt-5"
))from openai import OpenAI
neo = OpenAI(
base_url="https://api.neorouter.app/v1",
api_key=os.environ["NEOROUTER_API_KEY"]
)
result = neo.chat.completions.create(
model="@preset/default",
messages=[{"role": "user", "content": "Summarize this document."}]
)curl https://api.neorouter.app/v1/chat/completions \
-H "Authorization: Bearer $NEOROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "@preset/default",
"messages": [{"role":"user","content":"Write a launch note."}]
}'TRANSPARENT COST
Model rates, cached tokens, output tokens, platform rules, and actual settlement remain attributable, with boundaries per app, subject, or test key.
Prices, versions, and actual usage remain attributable in the control plane.
SHIP AI CAPABILITY, NOT OPERATIONAL DRAG
Put identity, routing, cost, risk, and experiments in one control plane from the first request.