HomeGetting startedRegistering with an HTTP keyGetting a credential without DiscordServer claim flowReport rules and the block windowVersion check and 426Authentication and server keysThe blocking modelError handlingRate limitsVersions and compatibilityPOST /v1/servers/claimPOST /v1/servers/reportPOST /v1/servers/revokePOST /plugin/v1/claimPOST /plugin/v1/reportGET /plugin/v1/versionGET /maps/{seed}GET /jobs/{seed}GET /seedsGET /stats/overviewGET /stats/protectionAPI changelog
Getting started
Getting started
The blocking API is two steps: get a server key, then report the seed every round. The read API can be called right away without a key.
Choose a path
Self-claimRecommended
One request from the game server machine returns a key. No plugin, no Discord. The recommended path for your own client.
Guide →Discord HTTP key
Get a key from Discord when you cannot reach the game server machine. Not bound to an IP; blocks are capped at 20 minutes.
Guide →Official plugin
Install the plugin and registration and reports are automatic. Get a code in Discord and type it in the server console.
Guide →Common rules
| Base URL | https://slmaps.com/api | HTTPS only. http:// requests are redirected to https:// with 301, so use https from the start. |
| Body | application/json; charset=utf-8 | Requests and responses are JSON. A string in a numeric field is a 400. |
| User-Agent | MyServer/1.0 | Put your implementation name and version here. Some library defaults (Python-urllib among them) are refused by the CDN with 403. |
| Auth | Authorization: Bearer slsrv_… | Needed only for report on the blocking API. The read API has no authentication. |
| Timestamps | 2026-09-17T09:00:00Z | ISO-8601 UTC strings, possibly with fractional seconds. |
| Request IP | CF-Connecting-IP | Set by the CDN. No request field carries an IP. |
Try it in five minutes
Get a key through self-claim, report a seed, see the block, then release it. Step 1 must be sent from the machine the game server runs on.
# 1. Issue a server key from the game server machine
curl -X POST https://slmaps.com/api/v1/servers/claim -H "Content-Type: application/json" -H "User-Agent: MyServer/1.0" -d "{\"port\":7777,\"clientName\":\"my-server\"}"
# -> {"status":"verified","serverId":"...","credential":"slsrv_...","issuedAt":"..."}
# 2. Round start: report the seed
curl -X POST https://slmaps.com/api/v1/servers/report -H "Authorization: Bearer slsrv_..." -H "Content-Type: application/json" -H "User-Agent: MyServer/1.0" -d "{\"event\":\"round_start\",\"seed\":1848055747,\"port\":7777}"
# -> {"ok":true,"blockedUntil":"2026-09-17T09:00:00Z"}
# 3. Check: 403 while blocked
curl https://slmaps.com/api/maps/1848055747 -H "User-Agent: MyServer/1.0"
# -> 403 {"error":"blocked","blockedUntil":"2026-09-17T09:00:00Z"}
# 4. Round end: release the block
curl -X POST https://slmaps.com/api/v1/servers/report -H "Authorization: Bearer slsrv_..." -H "Content-Type: application/json" -H "User-Agent: MyServer/1.0" -d "{\"event\":\"round_end\",\"seed\":1848055747,\"port\":7777}"
# -> {"ok":true,"blockedUntil":null}Read next
Authentication and server keysHow the three paths differ and how to keep keysThe blocking modelWindows, caps, budget, cooldownError handlingEvery error string and how to retryRate limitsThe table and how counting worksVersions and compatibilityThe additive-only v1 promise
SLMAPS is the seed-map viewer for SCP: Secret Laboratory. These pages describe the public API of slmaps.com.slmaps.com ·