Getting a credential without Discord
One call from the game server is all it takes. Nobody asks who you are; you only prove that a server is running at that address.
- 01
Call from the game server machine
Send it from the machine the game server runs on. Sent from anywhere else, that other place is what gets registered. Put your implementation name in User-Agent so the records tell clients apart.
POST /api/v1/servers/claim - 02
Address check
We send A2S_INFO to the request IP and the port you gave, and wait for an SCP:SL server to answer. No answer means 403.
{"port":7777} - 03
Store the credential
The credential in the 200 response is returned only once. Store it and start reporting.
{"status":"verified","credential":"slsrv_…"} - 04
Stay within the limits
One credential per IP every 5 minutes, at most 3 live at a time. To claim again for the same IP:port, send the earlier credential as Authorization: Bearer and it is replaced at once; without it, only after that registration has been silent for over an hour.
Authorization: Bearer slsrv_…
On a shared IP
If several servers share one public IP on different ports (typical for game hosting), another server on the same IP passes the check too. That is why replacing a live registration requires its credential in the Authorization header (409 otherwise), and one IP holds at most 3 credentials. If that cap is too small, use the Discord claim path, which is limited per account instead.