RealmCharts Analytics for the MMORPG Realm of the Mad God (RotMG).

API Reference


Welcome! This page describes the API for accessing all data in the RealmCharts dashboard. Data is delivered as JSON. You do not need to sign up for an API key.

Base URL: https://realmcharts.swrlly.com/api

Player Data


All/specific player counts

GET /players?time={time}
Updated every minute

Returns historical player count data at minute-level granularity in an array. Row entries read left to right:

players = 0 represents maintenance times, players = null represents missing data, bugged data collection, or counts withheld due to less than 60 minutes of observed data.

Parameters

time string
Time of requested playercount in form of a string. Not required.
Example now or last-week

Examples

GET /api/players

Response

[
 [ 1756653746, 2824 ],
 [ 1756653806, 2829 ],
 [ 1756653866, 2841 ],
 ...
]
GET /api/players?time=now

Response

[ 1759840620, 2151 ]
GET /api/players?time=last-week

Response

[ 1759236840, null ]

Steam Review Data


All Review Statistics

GET /reviews
Updated hourly

Returns all Steam review statistics grouped by day in an array. Each row represents statistics for reviews created within that day. Row entries read left to right:

Example

GET /api/reviews

Response

[
 [ 1329696000, 15, 1.0, 0, 15, 4041, 4927 ],
 [ 1329782400, 100, 0.95652, 1654, 95, 152492, 543095 ],
 [ 1329868800, 73, 0.95745, 72, 70, 80706, 311193 ],
 ...
]

Reviews Last Updated

GET /reviews/last-scraped
Updated hourly

Returns time when Steam reviews were last scraped in Unix time.

Example

GET /api/reviews/last-scraped

Response

1759838606

Forecast Data


24-hour Forecast

GET /forecast
Updated every 5 minutes

Returns a 24-hour forecast of player counts based on the current time at five minute-level granularity in an array. Row entries read left to right:

In general, 68% of observed player counts will lie between one_sd_lower and one_sd_upper while 95% of observed player counts will lie between two_sd_lower and two_sd_upper.

Example

GET /api/forecast

Response

[
 [ 1759847700, 2682.4899, 2658.9638, 2706.016, 2644.5153, 2720.4644 ],
 [ 1759848000, 2659.9841, 2636.458, 2683.5102, 2622.0095, 2697.9587 ],
 [ 1759848300, 2681.8786, 2641.1273, 2722.6299, 2616.0999, 2747.6572 ],
 ...
]

Historical Forecast Performance

GET /forecast/performance
Updated every five minutes

Returns the 1-, 6-, 12- and 24-hour forecast performance statistics over the last 48 hours in an array. For example, 24-hour forecasts are saved and compared with real player counts 24 hours later. Row entries read left to right:

Example

GET /api/forecast/performance

Response

[
 [ "1hr", 78, 97.6, 235 ],
 [ "6hr", 191, 93.9, 235 ],
 [ "12hr", 186, 92.7, 235 ],
 [ "24hr", 215, 91.8, 234 ]
]

Game Data


Check if RotMG is Online

GET /game/online
Updated every minute

Checks whether RotMG is currently undergoing maintenance.

Fields

last_checked float
Seconds since checking RotMG maintenance status
online int
1 if RotMG is online, 0 if RotMG undergoing maintenance

Example

GET /api/game/online

Response

{
"last_checked": 41.514,
"online": 1
}

Ratelimiting


A rate limit of 50 requests per second is enforced on the realmcharts.swrlly.com subdomain as well as the root domain swrlly.com. Each API request counts against a per-second rate limit, as well as any requests on realmcharts.swrlly.com and swrlly.com. If a request hits the Cloudflare cache, it will not count towards the rate limit. You can check if a request was a cache hit by looking for the response header CF-Cache-Status: HIT. See the Cloudflare documentation for more details.

If the rate limit is surpassed, Cloudflare will prevent you from accessing the site for 15 minutes.