Regions
PolarGrid runs GPU infrastructure at edge locations to minimize latency.Available Regions
Endpoint URLs
https://api.yto-01.edge.polargrid.aihttps://api.yul-01.edge.polargrid.aihttps://api.yvr-02.edge.polargrid.aihttps://api.nyc-01.edge.polargrid.aihttps://api.dfw-01.edge.polargrid.aihttps://api.sfo-01.edge.polargrid.aihttps://api.lax-01.edge.polargrid.aihttps://api.sea-01.edge.polargrid.aihttps://api.chi-01.edge.polargrid.aihttps://api.phx-01.edge.polargrid.aihttps://api.was-01.edge.polargrid.aihttps://api.mia-01.edge.polargrid.aihttps://api.sfo-03.edge.polargrid.ai
Auto-Routing
The SDKs can automatically select the fastest region:Explicit Region Selection
You can specify a region by ID or alias:Region Aliases
For convenience, these aliases are supported:
The
-02 variants (e.g. yul-02, nyc-02, dfw-02) and lax-01, sea-01, chi-01, phx-01, was-01, mia-01, sfo-03 are reachable only by explicit region ID — they have no alias.
Checking Latency
CLI
SDK
Auto-routing logs latency when debug is enabled:Default Region
If you don’t specify a region and don’t use auto-routing, the SDKs default to Toronto (yto-01).
For CLI, you can set a default:
Health Checks and Fallback
Checking Region Health
Each edge node exposes a/health endpoint:
Autorouter Discovery
The autorouter returns the single best edge for the caller. By default it detects the caller’s country (from request geo) and returns the nearest edge in that country — a US caller is routed to the nearest US edge, a Canadian caller to the nearest Canadian edge — even when an edge across the border is physically closer. If no healthy edge exists in the caller’s country, it falls back to the globally nearest edge.endpoint field is the base URL you POST inference to. The ttl (seconds) is a hint for how long the SDK should cache the choice before re-asking.
Choosing the routing scope
Country affinity is the default because it keeps traffic domestic, which is usually what data-residency-sensitive workloads want. When raw proximity matters more than staying in-country, passscope=global to let the router
cross borders:
country, so a typo can never silently widen
routing to another country. The response echoes the scope that was actually
applied — check it if you need to confirm your request was honored rather than
silently defaulted.
scope=global opts out of country affinity and the network-aware
on-ramp preference applied to callers whose country has no edge. It ranks
purely by distance plus edge queue depth — the same load term the default
uses — with no network-topology awareness. Great-circle distance is not
always the lowest-latency choice across oceans, so benchmark before
switching long-haul traffic to global.Routing to a warm model
Discovery can also narrow candidates to edges that already have a specific model loaded, so your first request hits a warm node instead of paying a dynamic model load. Model availability is a hard filter; scope then picks the nearest among the nodes that qualify — the two options compose:region or baseUrl — those bypass
the autorouter entirely. Each scope/model combination is cached separately, so
switching either re-asks the router rather than reusing another combination’s
answer.
Fallback Strategy
If you’re pinning to a specific region (not using auto-routing), we recommend this fallback pattern:- Primary: Your chosen region (e.g.,
yto-01) - Fallback: Try the next-closest region if the primary returns 5xx or times out
- Auto-route: Fall back to
PolarGrid.create()which calls the autorouter
