Developersfree, keyless, open
LOCKIT’s ratings are readable by anyone, without a key, from any origin. If you build a Deadlock tool, you can show a player’s LOCKIT level next to whatever else you show them.
We’d rather you did. A rating is only worth displaying because the matches behind it were run and verified here — that part isn’t something an API can copy, so there’s nothing to protect by making this hard to use.
Free, no key, and it stays that way. Reading LOCKIT ratings will not move behind a paywall or a rate-limit tier. If you integrate this, it keeps working. We charge for running events and private hubs — never for the record.
01The badge
One tag. Nothing to install, no key, no callback.
<img src="https://lockit-mocha.vercel.app/api/v1/players/76561198149295276/badge" alt="LOCKIT rank">
It renders the level and LR once a player is placed, and their placement progress before that — never an unplaced rating, because we don’t publish one anywhere else either.

02Is anything happening
GET https://lockit-mocha.vercel.app/api/v1/status
- open
- Is a queue window open right now
- waiting
- How many are in the pool
- popsAt
- How many players form a match
Cached 15 seconds rather than 60 — a pool count that lags a minute is worse than useless to someone deciding whether to open the game. If you’re building a Discord bot or a stream overlay, this is the one to start with.
03A player
GET https://lockit-mocha.vercel.app/api/v1/players/76561198149295276
- status
placed, provisional or unrated- lr / level
- Numbers when placed, otherwise null — never an estimate
- placement
{ played, required } while provisional- verifiedMatches
- Decided matches on the platform record
04The ladder
GET https://lockit-mocha.vercel.app/api/v1/leaderboard?limit=25
Placed players for the live season, ranked. An empty list during placements is a real answer, not an error.
05Rules of the road
- Auth
- None. Don’t send a key; there isn’t one
- CORS
- Open to any origin
- Cache
- 60s at the edge, 15s for /status. Please don’t poll harder than that
- Writes
- None, ever
There is no write API and there won’t be. Matches, ratings and verifications are produced by the platform or they don’t exist — that’s the whole product, and an endpoint that let something else create them would be the end of what the numbers mean.
Conduct records are never exposed. Warnings and timeouts appear on a player’s own profile because we owe them the reason we refused something. Publishing that to any caller is a different thing entirely.
This is v1 and it’s stable. Breaking changes get a /api/v2, not a quiet edit — you shouldn’t have to watch us to keep an embed working.