Using In-Region Routing
Send API requests through the region-specific base URL:How Requests Are Routed
On a regional domain, OpenRouter filters the candidate endpoints for your request down to those whose provider infrastructure is located in that region. If no endpoint for the requested model operates in your region, the request fails with an error rather than falling back to an out-of-region endpoint. In-region routing fails closed: OpenRouter never silently routes a regional request outside the region. Two categories of endpoints are always excluded from regional routing even if the model is otherwise available:- Global / cross-region deployments. Provider deployments that can process requests in any region (for example, Bedrock
global.cross-region inference profiles or Vertexgloballocations) do not guarantee residency and are not eligible. - Multi-model routers. Router-type models (such as the Auto Router) are excluded from regional model lists.
Finding In-Region Models
To see which models are available for in-region routing:- Call
/api/v1/modelson a regional domain to get the full list programmatically, or pass aregionquery parameter (euorus) on the main domain - Browse EU-eligible models or US-eligible models on the models page with the In-Region Routing filter
Feature Availability
Everything on a regional domain must uphold the same residency guarantee as inference itself. Features whose infrastructure or third-party vendors process data outside your region are therefore unavailable on regional domains today, and requests that use them return an error instead of silently processing data out of region. Not available with in-region routing today:- Web search with external engines. The web search plugin engines Exa, Perplexity, Parallel, and Firecrawl are external vendors that process your queries outside your data region, so they are rejected on regional domains. Native provider web search still works: search executed by the model provider itself (e.g.
engine: "native"on a model that supports it) stays with the region-filtered endpoint and remains available. - Web search and web fetch server tools. The
web_searchandweb_fetchserver tools are backed by the same out-of-region search and fetch vendors, so they are not available on regional domains. - Other server tools with out-of-region infrastructure, including files, image generation, Fusion, and shell. Server tools that execute entirely in-region (such as tool search, apply patch, and datetime) remain available.
- Batch API. The Batch API currently runs on US-based storage and queueing infrastructure and does not yet support regional data residency. Submit batch requests through the global endpoint at
openrouter.ai. - Multi-model routers such as the Auto Router, as described above.
Observability with In-Region Routing
Broadcast supports in-region routing. Every broadcast destination is configured with the data regions it receives traces from (global, EU, or US), and a trace from a regional request is only delivered to destinations configured for that region. Regional broadcast delivery upholds the same data boundary as inference:- Traces are sent from within the data boundary. EU and US traces are delivered to your destination directly from infrastructure inside the region, and regional trace data is never persisted to queueing infrastructure outside the region.
- Delivery is best-effort. Because regional traces are handled in memory only and never queued out of region, a failed delivery to a destination is not retried through the global retry queue the way global traffic is.
- You control where the destination lives. OpenRouter sends the trace from inside the data boundary, but the receiving endpoint is yours. If you need end-to-end residency for observability data, host the destination (e.g. your OpenTelemetry collector, Langfuse instance, or S3 bucket) inside the selected data boundary.
BYOK with In-Region Routing
BYOK works with in-region routing, but there is an important boundary to understand:- OpenRouter controls which shared endpoints are eligible. On a regional domain, OpenRouter only routes to shared provider endpoints whose infrastructure is located in that region. BYOK endpoints are not filtered this way: they are added for the provider your key belongs to, and OpenRouter sends the request to the resource your key is configured for.
- You control where your own deployment runs. For hyperscaler providers (AWS Bedrock, Azure, Google Vertex AI), your BYOK key authenticates against cloud resources in your account. OpenRouter cannot move or reconfigure those resources. If your deployment is provisioned in a region outside your data region, requests to it would leave the region.
eu.openrouter.ai or us.openrouter.ai does not by itself regionalize your cloud deployments. When you combine BYOK with in-region routing, you must ensure your hyperscaler deployments are provisioned in the matching region. The provider-specific behavior is below.
AWS Bedrock
How OpenRouter chooses the Bedrock invocation region under in-region routing depends on your key type:- AWS credentials (JSON with a
regionfield): If your configured region is inside your data region (e.g.eu-west-1on the EU domain,us-east-1on the US domain), OpenRouter uses it. If your configured region is outside your data region, or no region is set, OpenRouter does not honor it; it instead invokes Bedrock in a default in-region location (eu-west-1for the EU,us-east-1for the US). Your AWS credentials must therefore have Bedrock access and model access enabled in that region, or requests will fail. - Bedrock API keys: These are tied to a single AWS region at creation time and cannot be redirected. Create the key in a region inside your data region.
- Cross-region inference profiles:
global.inference profiles can process requests in any AWS region, so they are excluded from regional routing entirely.
Azure (AI Foundry and Azure OpenAI)
Azure BYOK configurations point at a specific resource you created (resource_name for Foundry configs, or a full endpoint_url for per-deployment configs). The geographic region of that resource was fixed when you created it in the Azure portal, and OpenRouter routes to the resource exactly as configured.
You must create your Azure resource in a region within your data region (e.g. an EU Azure region such as Sweden Central or West Europe for the EU domain). OpenRouter cannot verify or change where your Azure resource is deployed; a US-deployed Azure resource used from the EU domain would process your prompts in the US. Also review Azure’s own data-processing settings: some Azure OpenAI features (such as global deployment types) process data outside the resource’s region, so use regional (not global) deployment types for residency-sensitive workloads.
Google Vertex AI
Vertex BYOK service account keys accept an optionalregion field that selects the Vertex location OpenRouter sends requests to. Under in-region routing:
- Set
regionto a location inside your data region (e.g.europe-west1for the EU,us-central1for the US). - For most Vertex models, OpenRouter enforces this: a key region outside your data region is rejected with an error, and an unset or
"global"region resolves to a default location inside your data region instead of Google’s global endpoint. Make sure your project has model access and quota in that location. - Exceptions: models served through Vertex’s OpenAI-compatible endpoint (which includes non-OpenAI models such as Llama and DeepSeek) and models served through the Vertex Interactions API use the key’s configured region directly, defaulting to
globalwhen unset, without enforcement against your data region. Because you cannot always tell from the model which path serves it, always set an explicit in-region location on your key and never use"global", since the global location lets Google process the request in any region.
Why This Matters
OpenRouter’s in-region guarantee covers everything OpenRouter controls: where your request is decrypted, which provider endpoints it is routed to, and where responses are processed. For BYOK on hyperscalers, the final leg of the request runs on infrastructure in your cloud account, so the residency of that leg is determined by how you provisioned it. A correctly regionalized deployment plus a regional OpenRouter domain gives you end-to-end residency; a misconfigured deployment silently breaks it on the leg you control, which is why verifying your deployment regions is essential.Getting Started
- Upgrade to the Business plan from your organization settings (organization admins), or contact our enterprise team for Enterprise
- Review Sovereign AI for combining in-region routing with ZDR and data collection controls
- Configure BYOK keys with region-appropriate deployments as described above