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.
Static region assignment
Section titled “Static region assignment”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.
Dynamic region selection
Section titled “Dynamic region selection”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.
How it works
Section titled “How it works”- Call
GET /available-location/{image}to get the list of regions where your image is available, along with a pingable IP for each - From each player’s client (or your backend), measure round-trip latency to each IP
- When a match is formed, aggregate the latency results across the player group
- Start the session in the region with the lowest aggregate latency
# Step 1: get available regions and their IPsGET /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 locationping 203.0.113.42Region selection strategies
Section titled “Region selection strategies”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.