Skip to content
BloxScout

Command palette

Search for an experience or jump to a page

Tools

Public API

Read-only JSON over HTTPS. No key, CORS enabled, cached at the edge. Please link back if you use it publicly.

Basics

  • Base URL: https://bloxscout.net/api/v1
  • Rate limit: 60 requests per 60 seconds per IP. Limits are returned in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (unix seconds) headers; exceeding them returns 429.
  • Need more? Pro members get an API key on the settings page. Send it as X-Api-Key: bp_… (or Authorization: Bearer) for 600 requests per 60 seconds, counted per key instead of per IP. Invalid keys return 401.
  • Every response is JSON with the same envelope. Successful responses carry Cache-Control so you can safely put a CDN or client cache in front.
  • Ids are universe ids. The number in a roblox.com/games/… URL is a place id; convert it with /api/v1/places/{placeId} or the converter.
  • Data comes from public Roblox endpoints and our own snapshots. Growth fields are null until enough history exists. See how the data works.

Response envelope

// 200 OK
{
  "data": { ... },
  "meta": {
    "generatedAt": "2026-09-03T11:00:00.000Z",
    "cacheSeconds": 60,
    "attribution": "Data by BloxScout (https://bloxscout.net) from public Roblox APIs",
    "docs": "https://bloxscout.net/tools/api"
  }
}

// 4xx / 5xx
{
  "error": {
    "code": "not_found",            // bad_request | not_found | rate_limited | upstream_error | internal_error
    "message": "No experience with that universe id.",
    "details": { "size": "..." }    // optional, only for bad_request
  }
}

Endpoints

GET/api/v1/games/{universeId}cache 60s

Current stats, trends and a 24h sparkline for one experience. Unknown ids are looked up on Roblox once and added to tracking.

universeId (path)
Universe id (not place id). Use the place lookup below to convert.
https://bloxscout.net/api/v1/games/1537690962
GET/api/v1/games/{universeId}/historycache 60s

Time series of players online, visits and favorites, downsampled to at most a few hundred points.

universeId (path)
Universe id.
range (query)
One of 1h, 24h, 7d, 30d, 90d, 1y, all. Default 24h.
https://bloxscout.net/api/v1/games/1537690962/history?range=7d
GET/api/v1/rankings/{metric}cache 120s

Paginated ranking by any metric the site supports, with the same filters as the rankings pages.

metric (path)
One of playing, peak24h, visits, visitsPerDay, favorites, likeRatio, growth1h, growth24h, growth7d, rising, newest, recentlyUpdated, maxPlayers, visitsDelta24h, favoritesDelta24h, estRevenue, engagementHours, estDau, upvotesDelta24h, favoritesPerVisit, volatility7d, momentum7d, passCount.
page (query)
1 to 200. Default 1.
size (query)
10 to 100. Default 50.
dir (query)
asc or desc. Default desc.
genre (query)
Genre slug, e.g. obby or roleplay.
creator (query)
user or group.
age (query)
7d, 30d, 90d, 1y or all (experience age). Default all.
min (query)
Minimum players online. Default 0.
https://bloxscout.net/api/v1/rankings/growth24h?min=100&size=25
GET/api/v1/chartscache 60s

All Roblox discovery sorts we follow, with game counts and links.

https://bloxscout.net/api/v1/charts
GET/api/v1/charts/{sortId}cache 60s

Current order of one discovery chart, including 24h rank change and new entries.

sortId (path)
Sort id from /api/v1/charts.
https://bloxscout.net/api/v1/charts/top-trending
GET/api/v1/places/{placeId}cache 24h

Resolve a place id (the number in a roblox.com/games/... URL) to its universe id.

placeId (path)
Place id.
https://bloxscout.net/api/v1/places/4924922222
GET/api/v1/badge/{universeId}.svgcache 30s

Embeddable SVG badge. See the badge builder for options.

metric (query)
playing, visits, favorites, likeRatio or rank. Default playing.
style (query)
flat, flat-square or for-the-badge.
label (query)
Custom left-hand text, up to 40 characters.
color (query)
Named colour or hex without #.
https://bloxscout.net/api/v1/badge/1537690962.svg?metric=playing

Ranking metrics

Valid values for /api/v1/rankings/{metric}.

metricLabelDescription
playingMost played right nowExperiences with the highest live concurrent player count.
peak24hHighest 24h peakHighest concurrent players observed in the last 24 hours.
visitsMost visited of all timeTotal lifetime visits.
visitsPerDayMost visits per dayAverage daily visits since release.
favoritesMost favoritedTotal favorites.
likeRatioBest ratedHighest thumbs-up ratio (minimum 1,000 votes).
growth1hFastest growing (1h)Largest percentage increase in players over the last hour (minimum 100 players).
growth24hFastest growing (24h)Largest percentage increase in players over the last 24 hours (minimum 100 players).
growth7dFastest growing (7d)Largest percentage increase in players over the last 7 days (minimum 100 players).
risingWhat's poppingComposite score of short-term momentum vs. the trailing baseline.
newestNewest releasesRecently created experiences with live players.
recentlyUpdatedRecently updatedExperiences that shipped an update most recently.
maxPlayersLargest serversHighest server size.
visitsDelta24hMost visits gained (24h)Most new visits in the last 24 hours.
favoritesDelta24hMost favorites gained (24h)Most new favorites in the last 24 hours.
estRevenueHighest estimated revenueEstimated developer earnings per day, modelled from player-hours and monetisation signals. An estimate, not reported income.
engagementHoursMost player-hours (24h)Hours of play delivered in the last 24 hours (average concurrency × 24).
estDauMost daily active users (est.)Estimated daily active users: player-hours divided by the average hours a Roblox user plays per day.
upvotesDelta24hMost upvotes gained (24h)Most new thumbs-up votes in the last 24 hours.
favoritesPerVisitMost favorited per visitFavorites divided by lifetime visits: how often a visit turns into a favorite (minimum 100k visits).
volatility7dMost volatile (7d)How much the daily average player count swings over the last week (standard deviation ÷ mean).
momentum7dStrongest 7-day momentumTrend of the daily average player count over the last week, as growth per day.
passCountMost game passesNumber of game passes for sale (refreshed weekly for popular experiences).

Examples

curl

curl -s "https://bloxscout.net/api/v1/games/1537690962" | jq '.data.stats'

JavaScript

const res = await fetch("https://bloxscout.net/api/v1/rankings/rising?size=10");
const body = await res.json();
if (!res.ok) throw new Error(body.error.message);
for (const g of body.data.items) console.log(g.rank, g.name, g.playing);

Luau (from inside your experience)

-- Server Script. Enable "Allow HTTP Requests" in Game Settings > Security.
local HttpService = game:GetService("HttpService")
local url = "https://bloxscout.net/api/v1/games/" .. game.GameId
local ok, body = pcall(HttpService.GetAsync, HttpService, url)
if ok then
	local payload = HttpService:JSONDecode(body)
	if payload.data then
		print("Players online:", payload.data.stats.playing)
	end
end

Fair use

The API is free for personal projects, portfolios, Discord bots and in-experience displays. Cache responses on your side for at least as long as our Cache-Control suggests, identify your client with a User-Agent header, and do not resell the data. Heavy or commercial use: get in touch first. The full terms are on the terms page.