Docs - Customer API

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.
  • kill stops a server without letting it save first. Use stop unless 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.