Docs/Hosted Matchmaking/Overview
Hosted Matchmaking

Hosted matchmaking

The default matchType: "matchmaking" puts a player in a queue and pairs them automatically. Hosted matchmaking is the opposite: your own backend explicitly decides who plays whom, then tells the engine to start the match. Nothing about who's paired with who is left to a queue.

Confirmed directly against a real tenant integration: a tenant's server is 100% REST — it never opens a socket connection. Every endpoint on this page and the next has a REST form for exactly that reason.

Two ways to use it

You already have everyone
All the player IDs are known up front — call submit-group once, then start-match. One round trip per group.
Players join over time
Building a lobby where people trickle in — create an empty ticket, add players to it as they show up, then explicitly promote it once it's full. See Lifecycle.

One hard requirement

Every playerId you submit must belong to a player who is currently connected via their own client — using the SDK with their own session token. The engine resolves each ID against a live connection registry; an ID with no active connection is silently dropped from the group, not rejected with an error. If a match comes back smaller than you expected, this is almost always why.