RustAU
Public API
Read-only JSON endpoints for server status, wipe schedules, leaderboards, and player stats. No auth required - go nuts.
Playground
Run any public endpoint live. Responses come straight from this site.
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
| Header | Meaning |
|---|---|
| X-RateLimit-Limit | Max requests per window. |
| X-RateLimit-Remaining | Requests left in the current window. |
| X-RateLimit-Reset | Unix epoch seconds when the window resets. |
| Retry-After | Only 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-statusLive online player count for a server.
- GET/api/wipe-infoWipe schedule, current seed, and history.
- GET/api/leaderboardsWipe and all-time leaderboards by category.
- GET/api/mapCurrent map render and monuments via RustMaps.
- GET/api/statsServer-wide stats dashboard payload.
- GET/api/stats/wipeStats for a specific historical wipe.
- GET/api/achievements/leaderboardMilestone-points leaderboard for a server.
- GET/api/player/{steamId}/historyA player's last 20 wipes.
- GET/api/player/{steamId}/alltimeA player's all-time aggregated stats.
/api/server-status
60s server-side cacheReturns the current online count, configured max players, and online/offline status. Cached for 60s per server.
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
| serverId | weeklymonthly | weekly | Which Rust server to query. Defaults to weekly. |
Sample response
{
"serverId": "monthly",
"online": 47,
"maxPlayers": 100,
"status": "online"
}/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
| Name | Type | Default | Description |
|---|---|---|---|
| serverId | weeklymonthly | weekly | Which 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"
}/api/leaderboards
60s with stale-while-revalidateReturns 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
| Name | Type | Default | Description |
|---|---|---|---|
| category* | playtimepvpgatherersraiderspve-raidersfarmersbuilderscrafters | - | Which leaderboard to fetch. |
| scope | currentalltime | current | Current wipe vs. lifetime totals. |
| limit | number | 50 | Number of entries to return (1-100). |
| aggregate | boolean | false | Only with scope=alltime - combine monthly+weekly into one lifetime total. |
| serverId | weeklymonthly | weekly | Which 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
}
]
}/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
| Name | Type | Default | Description |
|---|---|---|---|
| serverId | weeklymonthly | weekly | Which 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
}
]
}/api/stats
120s with stale-while-revalidateAggregated 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
| Name | Type | Default | Description |
|---|---|---|---|
| serverId | weeklymonthly | weekly | Which 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
}
}/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
| Name | Type | Default | Description |
|---|---|---|---|
| number* | number | - | Wipe number (1-indexed) on the chosen server. |
| serverId | weeklymonthly | weekly | Which 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
}
]
}/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
| Name | Type | Default | Description |
|---|---|---|---|
| serverId | weeklymonthly | weekly | Which Rust server to query. Defaults to weekly. |
Sample response
{
"serverId": "monthly",
"total": 1,
"totalMilestones": 42,
"entries": [
{
"steamId": "76561198000000001",
"score": 320,
"earned": 18,
"rank": 1
}
]
}/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
| Name | Type | Default | Description |
|---|---|---|---|
| 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
}
]
}/api/player/{steamId}/alltime
Cross-wipe lifetime totals for a player. Returns `{ steamId, stats: null }` if the player has never been seen.
Path parameters
| Name | Type | Default | Description |
|---|---|---|---|
| steamId* | string | - | 17-digit SteamID64. |
Sample response
{
"steamId": "76561198000000001",
"stats": {
"displayName": "ExamplePlayer",
"totalPlaytime": 1480000,
"totalKills": 412,
"totalDeaths": 318,
"totalHeadshots": 84
}
}