OpenAI's Per-Request Regional Routing: One Key, Any Region, No New Projects

OpenAI now lets API operators select a processing region per request using a prefixed base URL with one Global project key. Multi-region gateway architecture changes: one credential fans out to us.api.openai.com or eu.api.openai.com based on per-request routing logic.

Published via OpenAI

Archive item produced with AI assistance from the cited source and published without individual review. Editor of record: Joe Werner.

A routing diagram showing one API key branching to regional endpoints — US and EU — using different base URLs

Multi-region API deployments used to require a separate OpenAI project — and a separate API key — for each target region. As of August 21, OpenAI changed that. A single API key from a project with Global geography can now select a processing region per request by switching the base_url at call time.

The mechanism is simple: prefix the domain. us.api.openai.com/v1 routes inference and storage to the United States. eu.api.openai.com/v1 routes to Europe (EEA and Switzerland). Pass the same API key in both cases. No project switching, no credential rotation.

What the actual request shape looks like

from openai import OpenAI

client = OpenAI()  # Global project key from env

# Default — no regional constraint
response = client.responses.create(model="gpt-5.6-terra", input="Hello")

# Force US processing and storage
response = client.with_options(
    base_url="https://us.api.openai.com/v1",
).responses.create(model="gpt-5.6-terra", input="Hello")

# Force EU processing and storage
response = client.with_options(
    base_url="https://eu.api.openai.com/v1",
).responses.create(model="gpt-5.6-terra", input="Hello")

The with_options pattern works on any OpenAI SDK version that supports per-call base URL overrides. It creates a short-lived client variant without mutating the parent client, which is safe to use concurrently.

Which regions support processing, and what's required

Not all regional endpoints are equal. The distinction between storage and processing matters for compliance:

EndpointRegional processingEligibility requirement
us.api.openai.comYesNone (open to all)
eu.api.openai.comYesMAM or ZDR required
ae.api.openai.comPartial (limited model set)Approval required
au, ca, jp, in, sg, kr, gbStorage onlyMAM/ZDR required

US processing is the one you can use immediately without paperwork. EU processing requires Modified Abuse Monitoring (MAM) or Zero Data Retention (ZDR) approval first — these are existing enterprise controls, but they require a sales conversation.

The non-processing regions (Australia, Canada, Japan, India, Singapore, South Korea, UK) provide regional storage only: your data stays in-region at rest, but inference may cross regions. Routing to those endpoints for processing will silently fall back to OpenAI's default behavior. Don't use them expecting in-region inference if you haven't confirmed processing support.

How this changes the routing decision

Previously, multi-region setups required:

  1. Create a project per region in the OpenAI console
  2. Provision and rotate a separate API key per region
  3. Configure your gateway with N credentials mapped to N regions
  4. Direct requests to the correct credential based on compliance tagging

Now, with a single Global project key:

  1. One API key in your gateway credential store
  2. Route by appending the appropriate base_url prefix based on request metadata (user location, tenant compliance flag, data classification tag)
  3. No credential lookup by region — only URL construction

For routing gateways, this changes regional routing from a credential-routing problem to a pure URL-construction problem. That's a meaningful simplification: credential stores stay small, rotation surface is reduced, and per-tenant compliance policies become a function of request tagging rather than key selection.

The cross-provider context

Azure OpenAI Service has offered regional endpoints via separate resource deployments for years — each resource gets its own base URL and key. Google Vertex AI's regional endpoints similarly require separate client initialization per region. OpenAI's per-request approach is closer to how AWS Bedrock handles cross-region inference profiles: one ARN-based identifier, inference runs in the selected region.

The new OpenAI model is the simplest to operate at the gateway layer. A single client instance can branch across regions without teardown and reinit. The trade-off is that regional processing capability is tied to Global project eligibility, which means you cannot mix data residency configurations mid-request.

Eligibility constraints operators need to know

A few concrete limits to check before building this into a routing policy:

  • Only Global geography projects qualify. Region-scoped projects already locked to a region don't gain the per-request flexibility — they're already pinned.
  • EU requires MAM or ZDR. If your team uses the default abuse monitoring configuration, EU processing is not available. Start the approval process now if your roadmap includes EU-region inference.
  • The model must support the target region. Not every model snapshot is available in every region. The UAE endpoint, for example, supports gpt-5.6-luna and gpt-5.5-2026-04-23 for processing, but not gpt-5.6-sol or gpt-5.6-terra. Confirm model-region compatibility in OpenAI's data controls documentation before routing production traffic.
  • No per-request storage-only routing. If you send to gb.api.openai.com expecting in-region processing, you won't get it — only storage is regional there. Routing policy should distinguish processing-capable endpoints from storage-only ones.

What gateway operators should do now

Three concrete actions based on what this release actually changes:

Audit your current regional key setup. If you have multiple OpenAI projects provisioned per region, check whether consolidating to a single Global project key would simplify your credential management. The tradeoff is that Global keys lose per-project data isolation (no project-level Zero Data Retention scoping), which matters for some enterprise configurations.

Check EU eligibility before routing. EU processing requires MAM or ZDR. If you're anticipating GDPR-driven EU inference requirements, the eligibility timeline matters — start the OpenAI sales engagement now rather than when you need the endpoint live.

Build region as a routing dimension, not a credential dimension. If you're redesigning your routing layer, treat the regional prefix (us, eu, ae) as a derivable attribute from request metadata — user geography, tenant compliance tier, data classification — rather than as a separate credential to select. The implementation becomes: base_url = f"https://{region_prefix}.api.openai.com/v1" if region_prefix else "https://api.openai.com/v1".

For TheRouter users, this means you can configure a single OpenAI provider credential and express regional routing as a policy on the request path, rather than configuring multiple OpenAI providers with different keys. Check the provider configuration docs for how to apply dynamic base URL overrides.

Enterprise API routing architecture diagram showing direct OpenAI API path versus SI-mediated partner network delivery with tier structure overlay

OpenAI Partner Network: enterprise API routing architecture diagram

OpenAI Partner Network launched June 14, 2026 with Select, Advanced and Elite tiers, $150M in ecosystem investment, and Codex specializations. Architecture diagram and checklist for direct OpenAI API keys vs SI-managed delivery, quota ownership, and fallback control.

via OpenAI
Help & contact