Customer API
Read your servers and control their power from your own scripts, a status bot, or a dashboard you build yourself. Four routes, one header, plain JSON.
Get a token
Open your account, pick a server, and go to the
Account tab. Create a token there and copy it once. It starts with
crk_ and it is shown a single time, so store it the way you would store a
password. A token can be revoked from the same tab at any moment.
A read token can list servers and read status. Sending power commands needs a token with
the power scope, chosen when you create it.
Making a call
The base URL is https://craftrift.com/api/v1. Send the token as a bearer
header on every request. Responses are JSON, and a failure carries an
error field with a matching status code: 401 for a bad or
revoked token, 403 when the token lacks the scope, 404 for a
server that is not yours, 429 when you go past 300 calls an hour, and
502 when the server itself cannot be reached.
List your servers
curl -H "Authorization: Bearer $CRAFTRIFT_TOKEN" \
https://craftrift.com/api/v1/servers{
"servers": [
{
"external_id": "your-order-id",
"name": "riftcraft",
"status": "active",
"address": "riftcraft.craftrift.com"
}
]
}One server
Address a server by its name, the part before .craftrift.com, or by its
external_id.
curl -H "Authorization: Bearer $CRAFTRIFT_TOKEN" \
https://craftrift.com/api/v1/servers/riftcraft{
"external_id": "your-order-id",
"name": "riftcraft",
"status": "active",
"address": "riftcraft.craftrift.com",
"state": {
"status": "online",
"players": 3,
"tps": 19.9,
"cpu": 24.5,
"mem_bytes": 1503238553,
"disk_bytes": 2147483648,
"updated_at": "2026-08-31T09:12:04Z"
}
} state is null for a server that has not reported yet, and
external_id is an opaque string: match it, never parse it.
Who is playing
curl -H "Authorization: Bearer $CRAFTRIFT_TOKEN" \
https://craftrift.com/api/v1/servers/riftcraft/players{
"external_id": "your-order-id",
"players": 3,
"player_names": ["Steve", "Alex", "Herobrine"],
"updated_at": "2026-08-31T09:12:04Z"
}Start, stop, restart
A POST carrying one of start, stop,
restart or kill. The call is accepted straight away and the
server changes state a moment later, so poll the server route if you need to know
exactly when it is up.
curl -X POST \
-H "Authorization: Bearer $CRAFTRIFT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"signal": "restart"}' \
https://craftrift.com/api/v1/servers/riftcraft/power{"ok": true, "signal": "restart"}Limits
- 300 calls an hour per token.
- Read routes may be called from a browser page. Power calls may not, so keep the token on a machine you control.
-
killstops a server without letting it save first. Usestopunless it has hung.
Public status page
If you would rather show players a page than build one, switch the public page on for a
server and share https://craftrift.com/s/your-name/. There is a badge image
at https://craftrift.com/s/your-name/badge.svg for a forum post or a
README.