In-Depth Look
Welcome to Edgegap Server Browser exclusive early access. We hope you enjoy the opportunity to preview our new service, and help shape it's future through roundtable discussions in our Discord.
Found this page by accident? Register for Server Browser CLOSED BETA now, limited availability!
Server Browser is a managed service for Match-Bound and persistent servers:
help players list and join suitable servers based on capacity, latency, or game parameters;
📢 pre-warm new servers to serve global demand at scale and prevent frustrating queues;
📢 streamline server operations including updates, restarts, persistence, meshing, and more.
Looking to match players based on strict rules, without allowing server choice? Consider Matchmaking.
Disclaimer: Although we strive to minimize breaking changes, some details may change in the process, as we consider your feedback, release new updates, and iterate through our CLOSED BETA and beyond.

✔️ Preparation
Testing this service is entirely free, no credit card required.
Free Tier allows up to 3 hours of runtime on our shared test cluster, after each restart.
This tutorial assumes you have already:
published your server application on Edgegap (Unreal Engine, Unity),
successfully connected from a game client to your server on Edgegap.
Networking Flows

There are four (4) important flows of data when using Server Browser:
Deployments API is used to deploy, scale, and manage your Dedicated Servers.
Use v2/deploy API for match-bound sessions lasting less than 24 hours.
Use private fleet deploy API to start standby servers with Persistence.
📢 Use Hot Standby for rule-based auto-scaling and meshing support.
Server API used by Dedicated Servers to announce availability and manage capacity.
Seat Reservation API used by Game Clients to discover and connect to Dedicated Servers.
Netcode Transports are used to communicate between Game Clients and Dedicated Servers.
▶️ Start Browsing
Learn about server/player lifecycle and their responsibilities to ensure efficient server use.
Authenticate
In addition to your existing game client authentication using your Game Backend, all requests for the Matchmaker must send an Authorization HTTP header with your secret Auth Token:
Authorization: xxxxxxxx-e458-4592-b607-c2c28afd8b62Keep your tokens secret and safe! Edgegap staff will never ask you for your tokens.
Server Browser automatically generates two types of tokens:
Server Token - required for Server API methods, can be injected as app version variable.
Grants access to all API methods, and is handy for testing, devops, or custom orchestrators.
Client Token - required for Monitor and Seat Reservation API methods used by Game Clients.
We recommend storing this token in a third party secret store to make token rotation easier.
Discover Instance
Deployments API is used to deploy, scale, and manage your Dedicated Servers.
Use v2/deploy API for match-bound sessions lasting less than 24 hours.
Use private fleet deploy API to start standby servers with Persistence.
📢 Use Hot Standby for rule-based auto-scaling and meshing support.
When you start new Deployments, notify Server Browser about a new Instance and set any number of optional custom parameters useful for player filtering, sorting, and browsing:
slot information - team capacity and team-specific metadata (e.g. team name),
at least one slot per instance is required to manage player capacity;
name and tags - customizable, unique, human-readable and searchable labels;
connection details - URL, IP, external ports, or other parameters;
compatibility data - server version or supported client versions;
latency qualifiers - city and region identifiers, and assigned Ping Beacons details;
game parameters - level/scene/map, game mode, difficulty, mods used;
any other custom parameters to help players filter and find a suitable server.
Metadata supports string keys and values containing string, number, boolean, or array of strings.
To serialize nested objects try encoding their accessor path in the key as "object.child.property".
Servers may update instance or slot metadata anytime to modify their discoverability criteria.
Server Instances must periodically send a keep-alive heartbeat to verify their ongoing availability and prevent players from attempting to join crashed or offline servers. Missing the heartbeat for 30 seconds will automatically remove the instance and any pending seat reservations.
📢 Servers may update their instance to "hibernation mode" before they are scaled down (stopped) to remain discoverable without sending further heartbeat requests. When a player requests to Reserve Seats for a hibernating instance, Server Browser will redeploy your server automatically.
Search and Browse
Players may list server instances and paginate through results to find a server they'd like to join. To display ping (latency) data, read each instance's Ping Beacons details and measure latency.
📢 Instances and slots may be sorted or filtered by available seats or any metadata key. Filter and sort by regions and/or cities to narrow down selection before measuring latency to servers.
Reserve Seats
Before joining a server, a seat reservation is required to ensure that the instance offers sufficient available capacity. Reservations can include a group of players or a solo individual.
Reservations exceeding slot's joinable seat capacity will be automatically rejected (409 Conflict). Joinable seats are any available seats which have not been reserved by other players yet.
Federated Identity: Players must provide a unique third party player ID in their reservation. Sending the same ID once they Connect to Server will allow the server to verify their identity.
Once a reservation is made successfully (200 OK) players should attempt connecting immediately. Pending reservations will expire after 30 seconds unless they are confirmed by your server.
Connect to Server
Once a player found a suitable instance, they can retrieve required connection details from metadata (URL, IP, External Port). As soon as the seat reservation is made, players may proceed to connect to your deployment's game server and pass their player ID.
To connect from PIE (Editor) during development and testing, press the tilde key ~ and type open {URL}:{port} and wait for your editor to load the map.
In case of failed connections or dark screen consult our troubleshooting guide.
To connect your Unity Editor or game client to your cloud deployment, input:
Deployment URL pointing to the server's IP, usually in
NetworkManagercomponent.External port mapping to the server's internal listen port, usually in a Transport component.
In case of connection timeout or other issues consult our troubleshooting guide.
To authenticate new connections, your server must send a bulk reservation confirmation request with all new players' IDs, receiving information in confirmation response:
assignment of accepted player reservations to their preferred slot,
assignment of expired player reservations to their preferred slot,
a list of unknown player IDs.
Your server may decide how to handle each group of players and whether to allow or kick/ban expired or rejected users. Each of the instance's slots must be updated immediately with the new available seat count to ensure new reservations won't exceed capacity.
Abandon Server
When players leave, the server must update their assigned slot to reflect new available seat capacity.
If your game design allows a reconnection period, your server may wait before releasing seats.
We recommend stopping servers with no players to optimize your hosting cost. Waiting a few minutes before doing so can reduce the amount of restarts during short periods of idling.
Read about Recovery Objectives to prevent frustrating persistent server rollbacks.
⚙️ Configuration
📢 Every Server Browser is based on a JSON configuration, validated automatically during restarts. You may configure custom server instance expiration period and seat reservation expiration period.
☁️ Hosting Cluster
Server Browser is conveniently hosted and managed 24/7 around the clock by Edgegap.
Choose a hosting option best suited for your goal:
Free Cluster (shared) to test all features and explore synergies with your design,
shuts down after 3 hours automatically, requiring restart to continue testing.
Private Cluster (dedicated) to ensure a stable environment for your production needs,
pick your region and get 24/7 support for live games to release with confidence.
Private Cluster Tiers
We currently offer 3 private cluster tiers to cater to everybody’s needs:
Best Suited For
enthusiasts, solo developers
commercial releases
high-traffic launches
Resources
1 vCPU + 2GB RAM
6 vCPU + 12GB RAM
18 vCPU + 48GB RAM
Redundancy
1x virtual node
3x virtual nodes
3x virtual nodes
Rate Limit (req/s)
200
750
2,000
Price, hourly
$0.0312
$0.146
$0.548
Price, 30 days (nonstop usage)
$22.464
$105.12
$394.56
Upgrade to a private cluster with one click to benefit from highly available hosting maintained by Edgegap team with 24/7 live support for publicly released games.
Resource requirements for your instance will depend on factors:
number of players - more players result in more API requests,
number of requests per player - faster retries increase service load and consume resources,
number of servers - more servers result in more data stored and more API requests,
client retry fallback logic - retrying with jittered backoff helps spread traffic burst peaks,
average match duration - shorter sessions require more frequent server browser interaction.
📗 API
Game Clients and Dedicated Servers send API requests throughout their lifecycle to Server Browser.
Swagger Web UI: deploying your service will generate an openAPI specification and a convenient web UI. Open the URL in your browser to view and test all API endpoints, and to review payload examples.
Import API specification to Scalar API Web Client or Swagger Editor to inspect details.
Pagination
Server Browser provides cursor pagination to fetch filtered data incrementally in a specific order. This approach requires sending a cursor (starting point) and a page size (number of response items) whenever fetching more results, as opposed to the traditional limit-offset pagination.
Our goal is for users to find a suitable server on the first page. For best experience, we recommend showing cached results for previous pages, and only refreshing results when the user clicks Search.
🔖 Changelog
Semantic Versioning
Our matchmaker uses official Semantic Versioning guidelines. Each configuration JSON is tied to a specific version of the service. Service version dictates which rules and settings are available in your configuration and API. Once a version is released, it will never change.
0.0.3 (Nov 28, 2025)
Initial release of Server Browser service launched in CLOSED BETA.
List Servers, Manage Capacity, and Get Connection Details.
Support for match sessions with Cloud Deployments and always online with Private Fleets.
Last updated
Was this helpful?

