LOCKIT.

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.

01

The 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.

Example LOCKIT badge

02

Is 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.

03

A 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
04

The 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.

05

Rules 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.

Building something and need a field we don’t return? Ask in Discord — the list is short because we started small, not because it’s finished.