Matchmaking API

Ship multiplayer.
Not matchmaking logic.

MatchKit handles skill-based matching, lobby management, and region routing so you can focus on your game. One API call. Any engine.

Free up to 1,000 API calls/day. No credit card required.

Matchmaking.cs
using MatchKit.Matchmaking;
// configured once with your API key
200 OK — Joined queue
// queue-update event over SSE
match: 1042
teams: [7,4,9,2,5] vs [3,8,1,6,0]
mode: "ranked" · size: 5v5
Unity SDK + REST for any engine
<15 min to first match
REST + realtime SSE
How it works

Three calls. Players matched.

No queuing system to design, no ELO logic to maintain, no server fleet to babysit.

Step 01
Register a player
Create a player once. MatchKit stores their skill and updates the rating after every match — the client never computes a score.
matchmaking.CreatePlayer(new PlayerRequest {
  username = "ace",
  region = "eu",
  matchmakingMode = MatchmakingMode.MMR,
  ratingMode = RatingMode.TS
}, created => { /* ... */ });
Step 02
Join the queue
Drop the player into a queue by game mode and team size. Region, rating, and modes are resolved server-side from the stored player.
matchmaking.JoinQueue(
  playerId,
  gameMode: "ranked",
  teamSize: 5
);
Step 03
Get matched in realtime
Subscribe once and let the server push events — queue-update when a match forms, match-ended with fresh stats. No polling.
_sse = matchmaking.Subscribe(playerId);
_sse.OnEvent += (name, json) => {
  if (name == "queue-update") Ready(json);
};
Features

Built for game developers,
not cloud architects.

Every feature exists because a developer hit a wall building it themselves.

Skill-based matching
MMR, ELO, or LP inputs with TrueSkill and MMR rating updates. Set the acceptable skill window per queue.
Rating that maintains itself
Wins, losses, KDA, and rating are tracked server-side and updated after every match. The client never manages state.
Queues & match modes
Define queues per game mode and team size. Relaxation parameters are configurable so wait times stay under control.
Realtime events
Server-Sent Events push queue-update and match-ended to each player. No polling, and the same events drive your UI.
Player & match APIs
Full player CRUD over REST plus a gRPC interface for server-to-server, with per-match history and lifetime stats.
Usage & match analytics
Request volume and matchmaking activity for your account, live from the API — right in the developer dashboard.
Engine support

Works where you build.

UnitySDKUnreal EngineTBAGodotTBAJavaScript / TypeScriptTBA

A native Unity SDK is available today; Unreal, Godot, and a JS/TS client are on the way. Until then, any engine integrates directly over the REST + SSE API — same features, full docs.

Pricing

Priced for indie studios.

Free while you're building. Pay only when players show up.

Free
$0
free to start

  • 1,000 API calls per day
  • Skill-based matchmaking (MMR & TrueSkill)
  • REST API + realtime SSE
  • Unity SDK + more TBA
  • Community support
Start free
Studio
$29
per month

  • 250,000 matches per month
  • Unlimited queues & match modes
  • Match history & stats API
  • Usage analytics dashboard
  • Email support
Start free trial
Unlimited
Custom
usage-based, volume pricing

  • Unlimited matches
  • Everything in Studio
  • Priority queue processing
  • SLA guarantee
  • Discord support
Talk to us
Self-hosted
One-time
perpetual license

  • Run on your own infrastructure
  • Docker Compose: API, dashboard, Redis, Postgres, Kafka
  • No usage limits or metering
  • Perpetual license, versioned support
  • Your data never leaves your servers
Get a license

Your first match,
in under 15 minutes.

Start with the free tier. No credit card, no infrastructure, no matchmaking bugs to chase at 2am.