Survivors APIsurvivors.gg ↗
Get live player counts, team limits, wipe schedules, and connection details for all Survivors.gg Rust servers via a single API endpoint.
What is the Survivors API?
The Survivors.gg API exposes one endpoint, get_servers, that returns live data for all ~13 Survivors.gg Rust servers in a single request. Each server object includes player counts, team limits, map details, next and last wipe timestamps, upcoming wipe schedules, and connection info. Aggregate fields like total_players_online, total_servers_live, and total_max_players are returned alongside the server array.
curl -X GET 'https://api.parse.bot/scraper/496f7d9e-716e-4e5c-bf8a-5035af5f3d5d/get_servers?team_limit=4' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace survivors-gg-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Survivors.gg API — browse Rust servers, check status, inspect wipes."""
from parse_apis.survivors_gg_api import SurvivorsGG, ParseError
client = SurvivorsGG()
# Get aggregate status across all servers
try:
status = client.servers.status()
except ParseError as e:
print(f"Upstream extraction failed: {e.code}")
raise
print(f"{status.total_servers_live} servers live, "
f"{status.total_players_online}/{status.total_max_players} players online, "
f"updated {status.updated}")
# List all servers, capped at 15 items
for server in client.servers.list(limit=15):
print(f"{server.name} — {server.players_online}/{server.max_players} "
f"(queue {server.queue}) status={server.status}")
# Filter to quad servers and inspect upcoming wipe schedule
quad_server = client.servers.list(team_limit=4, limit=1).first()
if quad_server is not None:
print(f"\n{quad_server.full_name}")
print(f" Map: size={quad_server.map_size} seed={quad_server.map_seed}")
print(f" Last wipe: {quad_server.last_wipe} Next: {quad_server.next_wipe} ({quad_server.next_wipe_type})")
for wipe in quad_server.upcoming_wipes:
print(f" Upcoming: {wipe.title} at {wipe.iso} ({wipe.type})")
print("\nexercised: servers.status / servers.list / servers.list(team_limit=) / Wipe fields")
Returns all Survivors.gg Rust servers with live player counts, team limits, map info, wipe schedules (next wipe, last wipe, upcoming wipes), and connection details. Optionally filter by team limit. A single request fetches all servers (currently ~13); no pagination needed.
| Param | Type | Description |
|---|---|---|
| team_limit | integer | Filter servers by team limit. 2=Duo, 3=Trio, 4=Quad, 5=Max 5, 8=Max 8, 10=Max 10, 0=No Limit. Omitting returns all servers. |
{
"type": "object",
"fields": {
"servers": "array of server objects with id, name, team_limit, players, wipe times, connection info",
"updated": "ISO 8601 timestamp of last data refresh",
"total_max_players": "integer total max capacity across all servers",
"total_servers_live": "integer count of live servers",
"total_players_online": "integer total players across all servers"
},
"sample": {
"servers": [
{
"id": "14702632",
"ip": "194.54.88.58",
"name": "Survivors.gg Solo/Duo",
"port": 28014,
"queue": 0,
"status": "online",
"map_url": "https://rustmaps.com/map/dd4c28111ec64685a000abea213a310e",
"map_seed": 33983,
"map_size": 3850,
"full_name": "Survivors.gg [ 2x Solo/Duo ] FULLWIPED 15.08",
"last_wipe": "2026-08-15T16:03:27.873Z",
"next_wipe": "2026-08-18T12:00:00+00:00",
"team_limit": 2,
"max_players": 200,
"next_wipe_type": "Map Wipe",
"players_online": 112,
"upcoming_wipes": [
{
"ts": 1787054400,
"iso": "2026-08-18T12:00:00+00:00",
"type": "Map Wipe",
"title": "Duo Map Wipe"
}
],
"battlemetrics_url": "https://www.battlemetrics.com/servers/rust/14702632"
}
],
"updated": "2026-08-17T18:22:37+00:00",
"total_max_players": 3750,
"total_servers_live": 13,
"total_players_online": 2382
}
}About the Survivors API
What the API Returns
The get_servers endpoint returns an array of server objects plus network-wide aggregate stats. Each server object carries an id, name, team_limit, current players count, and connection details so clients can display join information directly. Wipe data includes next_wipe, last_wipe, and an upcoming_wipes list, which lets you build calendars or alerts around wipe events. The response also includes an updated field (ISO 8601 timestamp) indicating when the data was last refreshed.
Filtering by Team Limit
The optional team_limit integer parameter filters results to servers matching a specific play style. Accepted values map to common Rust server configurations: 2 for Duo, 3 for Trio, 4 for Quad, 5 for Max 5, 8 for Max 8, 10 for Max 10, and 0 for No Limit servers. Omitting the parameter returns all servers across every team configuration.
Scope and Coverage
The API covers all live servers hosted on the Survivors.gg network — currently around 13 servers. Because all servers fit in a single response, no pagination is required. The total_servers_live, total_max_players, and total_players_online aggregates are computed across every server returned, making it straightforward to display network-wide population metrics without client-side summation.
The Survivors API is a managed, monitored endpoint for survivors.gg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when survivors.gg changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official survivors.gg API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a live server browser showing current player counts and team limits for all Survivors.gg servers
- Send automated alerts when a server's next_wipe time is within a configurable window
- Filter servers by team_limit to surface only Duo or Trio servers for a specific player group
- Track historical population trends by polling total_players_online over time
- Build a wipe-day calendar by consuming the upcoming_wipes list from each server object
- Show connection details in a Discord bot so players can copy the join address without leaving chat
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Survivors.gg have an official developer API?+
What wipe data does get_servers return for each server?+
last_wipe (when the most recent wipe occurred), next_wipe (the scheduled next wipe), and upcoming_wipes (an ordered list of future wipe timestamps). All times are returned as ISO 8601 strings.Does the API cover individual player or team statistics per server?+
How fresh is the data returned by get_servers?+
updated ISO 8601 timestamp that reflects when the server data was last refreshed. Polling frequency is determined by how often you call the endpoint; the updated field lets you detect whether the underlying data has changed between calls.Can I retrieve data for a single server by ID rather than fetching all servers?+
team_limit. Per-server lookup by ID is not a supported parameter. You can fork this API on Parse and revise it to add a server-ID filter endpoint.