Skip to content

Region Selection

When starting a session, you must specify a single region by name. This guide covers the two approaches — static assignment and dynamic latency-based selection — and when to use each.

If your player base is concentrated in one geography, hardcode the region in your session start calls:

{
"location": "europe",
"image": "your-game-server"
}

This is the simplest approach and appropriate for regional titles or early-stage games with a known player geography.

For global titles, use the Available Locations endpoint to measure real latency from each player to each available region, then pick the region with the best aggregate result for the match group.

  1. Call GET /available-location/{image} to get the list of regions where your image is available, along with a pingable IP for each
  2. From each player’s client (or your backend), measure round-trip latency to each IP
  3. When a match is formed, aggregate the latency results across the player group
  4. Start the session in the region with the lowest aggregate latency
Terminal window
# Step 1: get available regions and their IPs
GET /available-location/your-game-server
# Response includes one IP per region:
# { "locations": [{ "id": "europe", "ips": ["203.0.113.42"] }, ...] }
# Step 2: ping each IP from the player's location
ping 203.0.113.42

Lowest average latency — minimises the average latency across all players in the match. Fair for most game types.

Lowest maximum latency — chooses the region where the worst-case player has the lowest latency. Better for competitive games where one high-latency player affects the whole match.

Host geography — for games with a designated host player, select the region closest to that player.

  • Region names are stable; the underlying node IPs within a region may change as infrastructure is managed. Always query fresh location data rather than caching IPs long-term.
  • If your preferred region returns a 420 (capacity unavailable), have fallback regions defined and retry with the next best option.
  • The current list of supported region names is provided during onboarding and available in the Admin Panel.