Skip to content

RustAU

Public API

Read-only JSON endpoints for server status, wipe schedules, leaderboards, and player stats. No auth required - go nuts.

No authJSONCORS-friendly (same origin)60 req / 60s per IP

Playground

Run any public endpoint live. Responses come straight from this site.

GET/api/server-status?serverId=weekly

Conventions

  • serverId selects which Rust server (currently weekly or monthly). Defaults to weekly.
  • All endpoints return JSON. Errors come back as { error: string } with a 4xx/5xx status.
  • Some endpoints set Cache-Control with a short s-maxage - assume responses can be a minute or two stale.
  • Path parameters (e.g. {steamId}) accept the literal value - no encoding tricks needed for SteamID64.

Rate limits

Public endpoints are limited to 60 requests per 60 seconds per client IP, shared across all endpoints listed below. Hit the cap and you get back 429 until the window rolls over.

Response headers

HeaderMeaning
X-RateLimit-LimitMax requests per window.
X-RateLimit-RemainingRequests left in the current window.
X-RateLimit-ResetUnix epoch seconds when the window resets.
Retry-AfterOnly on 429 - seconds until you can retry.

429 response body

{
  "error": "Rate limit exceeded",
  "limit": 60,
  "windowSeconds": 60,
  "retryAfter": 17
}

Need a higher quota for an integration? Reach out in Discord - happy to whitelist a specific source.

Endpoints

GET

/api/server-status

60s server-side cache

Returns the current online count, configured max players, and online/offline status. Cached for 60s per server.

Query parameters

NameTypeDefaultDescription
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "serverId": "monthly",
  "online": 47,
  "maxPlayers": 100,
  "status": "online"
}
GET

/api/wipe-info

Computes the upcoming wipe schedule from the manager's cron config, includes recent wipes, current seed/map size, and human-friendly cadence labels.

Query parameters

NameTypeDefaultDescription
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "serverId": "monthly",
  "nextWipe": {
    "date": "2026-05-01T18:30:00.000Z",
    "type": "force",
    "label": "Forced wipe"
  },
  "upcoming": [
    {
      "date": "2026-05-01T18:30:00.000Z",
      "type": "force",
      "label": "Forced wipe"
    }
  ],
  "history": [
    {
      "date": "2026-04-03T18:30:00.000Z",
      "type": "force",
      "label": "Forced wipe"
    }
  ],
  "currentSeed": 12345678,
  "mapSize": 4250,
  "daysSinceWipe": 26,
  "lastWipeDate": "2026-04-03T18:30:00.000Z",
  "wipeTimeLabel": "04:30 AEST",
  "cadence": "monthly",
  "cadenceLabel": "Monthly forced wipe"
}
GET

/api/leaderboards

60s with stale-while-revalidate

Returns the top players in a given category. `scope=current` reads the live wipe stats files; `scope=alltime` reads the database. Set `aggregate=true` with `scope=alltime` for cross-server lifetime totals.

Query parameters

NameTypeDefaultDescription
category*playtimepvpgatherersraiderspve-raidersfarmersbuilderscrafters-Which leaderboard to fetch.
scopecurrentalltimecurrentCurrent wipe vs. lifetime totals.
limitnumber50Number of entries to return (1-100).
aggregatebooleanfalseOnly with scope=alltime - combine monthly+weekly into one lifetime total.
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "category": "pvp",
  "scope": "current",
  "serverId": "monthly",
  "aggregate": false,
  "total": 2,
  "entries": [
    {
      "steamId": "76561198000000001",
      "name": "ExamplePlayer",
      "value": 142,
      "rank": 1
    },
    {
      "steamId": "76561198000000002",
      "name": "AnotherPlayer",
      "value": 118,
      "rank": 2
    }
  ]
}
GET

/api/map

Resolves the active seed for a server and proxies to RustMaps. Status indicates whether the render is ready, still generating, or had to fall back to a cached image.

Query parameters

NameTypeDefaultDescription
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "status": "ready",
  "seed": 12345678,
  "size": 4250,
  "imageUrl": "https://files.rustmaps.com/img/231/.../map.png",
  "thumbnailUrl": "https://files.rustmaps.com/img/231/.../thumbnail.png",
  "rustmapsUrl": "https://rustmaps.com/map/...",
  "totalMonuments": 18,
  "monuments": [
    {
      "type": "Launch Site",
      "x": 0,
      "y": 0
    }
  ]
}
GET

/api/stats

120s with stale-while-revalidate

Aggregated stats for the active wipe plus all-time records, fun-fact totals, mini-leaderboards, and chart data (population, heatmap, resource breakdown, wipe comparison).

Query parameters

NameTypeDefaultDescription
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "thisWipe": {
    "totalPlayers": 312,
    "totalResources": 18420000,
    "totalCrops": 4210,
    "totalBuildings": 86220,
    "totalCrafted": 412900,
    "wipeAge": 12,
    "seed": 12345678,
    "mapSize": 4250
  },
  "funStats": {
    "totalBarrels": 88420,
    "totalHelis": 22,
    "topWeapon": "rifle.ak",
    "topWeaponKills": 1840
  },
  "allTime": {
    "totalUniquePlayers": 4210,
    "totalWipes": 38,
    "peakPlayers": 124
  }
}
GET

/api/stats/wipe

Look up a previous wipe by its number on a given server and return the per-player stats and fun-fact rollups for that wipe.

Query parameters

NameTypeDefaultDescription
number*number-Wipe number (1-indexed) on the chosen server.
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "wipe": {
    "number": 1,
    "type": "force",
    "startedAt": "2026-04-03T18:30:00.000Z",
    "endedAt": "2026-05-01T18:30:00.000Z",
    "seed": 12345678,
    "mapSize": 4250
  },
  "players": [
    {
      "steamId": "76561198000000001",
      "name": "ExamplePlayer",
      "totalResources": 240000
    }
  ]
}
GET

/api/achievements/leaderboard

Aggregates earned milestones per player and ranks them by the total points awarded. Includes earned-count and total-milestones for context.

Query parameters

NameTypeDefaultDescription
serverIdweeklymonthlyweeklyWhich Rust server to query. Defaults to weekly.

Sample response

{
  "serverId": "monthly",
  "total": 1,
  "totalMilestones": 42,
  "entries": [
    {
      "steamId": "76561198000000001",
      "score": 320,
      "earned": 18,
      "rank": 1
    }
  ]
}
GET

/api/player/{steamId}/history

Returns up to 20 of the most recent per-wipe stat rows for a Steam ID, joined with the wipe metadata.

Path parameters

NameTypeDefaultDescription
steamId*string-17-digit SteamID64.

Sample response

{
  "steamId": "76561198000000001",
  "wipes": [
    {
      "wipe": {
        "id": "ckwipe...",
        "type": "force",
        "startedAt": "2026-04-03T18:30:00.000Z",
        "seed": 12345678,
        "mapSize": 4250
      },
      "totalResources": 184000,
      "kills": 42,
      "deaths": 30
    }
  ]
}
GET

/api/player/{steamId}/alltime

Cross-wipe lifetime totals for a player. Returns `{ steamId, stats: null }` if the player has never been seen.

Path parameters

NameTypeDefaultDescription
steamId*string-17-digit SteamID64.

Sample response

{
  "steamId": "76561198000000001",
  "stats": {
    "displayName": "ExamplePlayer",
    "totalPlaytime": 1480000,
    "totalKills": 412,
    "totalDeaths": 318,
    "totalHeadshots": 84
  }
}