Router One

unsupported_country_region_territory, explained and fixed

This 403 comes from the official OpenAI API before your request reaches any model: the platform decided your request origin or account region is not on its supported list. It is not a billing problem, not a key problem, and no retry loop will clear it. Anthropic and Google enforce the same kind of wall with different words. This page covers what triggers each variant and the fixes that actually hold up in production.

What the error looks like

The official OpenAI API returns HTTP 403 with this body — the request is rejected at the platform edge, so the model, prompt, and parameters are irrelevant:

response.json
{
  "error": {
    "code": "unsupported_country_region_territory",
    "message": "Country, region, or territory not supported",
    "type": "request_forbidden"
  }
}

The same wall on other model families

Each vendor phrases its region policy differently, which makes the errors hard to search for as a group:

APIWhat you seeWhere it bites
OpenAI403 with code unsupported_country_region_territoryAPI requests from an unsupported egress IP; sign-up and billing from unsupported regions.
Anthropic (Claude)Region errors or console sign-up blocked in unsupported locationsBoth the web console and API access depend on the supported-countries list.
Google (Gemini)400 FAILED_PRECONDITION: User location is not supported for the API useAPI calls from unsupported locations, even with valid keys and billing.

Why it happens

  • Your request egress IP is in a country or region the platform does not serve.
  • Your server or CI runs in a cloud region on the unsupported list, even though your team is elsewhere.
  • A corporate proxy or VPN exits through an unsupported or flagged location.
  • The account's registration or billing country is unsupported, regardless of where requests originate.

Fixes that hold

If your region is supported: fix the egress path

Check where the request actually leaves the network — cloud region, proxy exit, VPN endpoint. Move the workload to an egress location on the provider's supported list and the same key starts working. This is the whole fix for most CI and datacenter cases.

If your region is not supported: call through a gateway

A consumer VPN is not an engineering answer: it violates the official platforms' terms, breaks silently when exit IPs get flagged, and cannot carry production traffic. The stable route is a gateway you have a direct service relationship with. Router One's OpenAI-compatible endpoint serves GPT, Claude, Gemini, DeepSeek and 40+ models with one Router One key — no official-platform account required, and it is reachable from Mainland China without a VPN.

Point your client at the gateway

Keep your OpenAI SDK or HTTP client; change the base URL and key. Pick any model ID from the /models catalog:

terminal.sh
curl https://api.router.one/v1/chat/completions \
  -H "Authorization: Bearer sk-your-router-one-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-id-from-/models>",
    "messages": [{"role": "user", "content": "hello"}]
  }'

CLI coding tools hit the same wall

Claude Code and Codex CLI talk to the official platforms by default, so they inherit the same region policy. Both work against Router One instead: Claude Code uses the Anthropic-compatible endpoint at https://api.router.one (no /v1 suffix) with ANTHROPIC_AUTH_TOKEN, and Codex CLI uses the OpenAI-compatible endpoint with wire_api = "responses". The Claude Code in China and Codex CLI in China guides walk through both setups end to end.

FAQ

Is this a billing or quota problem?
No. Quota and billing failures return different errors — insufficient_quota on the official OpenAI API, or 402 on Router One. unsupported_country_region_territory is purely about geography: where your requests come from or where the account is registered.
Will a VPN fix it?
Sometimes, briefly — and it creates two new problems. Routing official-API traffic through a VPN to mask your region violates the platforms' usage policies, and datacenter exit IPs get flagged, so the setup fails without warning. For production traffic, use infrastructure in a supported region or a gateway you contract with directly.
Does Router One work from Mainland China?
Yes — the endpoint is reachable directly, no VPN required. Based on the China latency benchmark last updated 2026-05-15, Router One measured 110-130ms p50 across Beijing, Shanghai, and Shenzhen; individual networks may vary.
Do I need an OpenAI or Anthropic account to use the gateway?
No. You sign up with Router One, create a Router One API key, and call Router One's endpoint. There is no official-platform account, region check, or foreign card requirement in that path.
I get 403 from Router One itself — same problem?
Different problem. A 403 from Router One means the key is disabled or the request hit a permission boundary — region is not the cause. Start with the LLM API error codes page and check the key's status in Dashboard → API Keys.