EU-sovereign and external models sit behind your single Akumi base_url. The router picks the right one per request, keeps regulated data in the EU, and fails over when a provider blinks. Sovereignty is enforced in code, not left to a checkbox.
one client · one base_url · the model is just a string
POST /v1/chat/completions
Resolve allowed models for the data class
Keep regulated data in the EU
EU-resident · served
external · not allowed here
You need more than one model: for capability, for cost, for the mornings a provider is down. But every provider you add is another SDK, another key, another outage that becomes your outage, and another path for regulated data to reach a US model without anyone deciding it should. Most teams bridge it with routing glue code and inherit a compliance gap they cannot see.
Set the rules once. The router applies them on every request, so the policy lives in one place instead of scattered across services.
Use your own provider credentials, billed and audited through one place, with your contracts and pricing intact. No lock-in: the client stays OpenAI-compatible.
Every route is recorded: which model ran, in which region, through which provider, and why it was allowed. Answer "where did this go" with the log, not a guess.
Each response carries the model and region that served it. Fallback and policy never happen behind your back.
Generic routers optimize for cost and latency. The Model Router optimizes for the answer your DPO needs first.
Create a key, set your policy, and let the router keep every request in line.
We use privacy-friendly, EU-hosted analytics to understand how Akumi is used. Accept analytics cookies, or continue without them. See our cookie policy.