Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

Roblox Proxies: 0 Words, 1,802-Byte Games API

What Roblox returns to a proxied client, measured on 28 September 2026: the home page over plain HTTP is 101,528 bytes and zero words, the rendered home page is 4,440,448 bytes and 128 words, and the public games endpoint is 1,802 bytes carrying 226,518 live players, 64.7 billion visits and the rate limit in a header
What Roblox returns to a proxied client, measured on 28 September 2026: the home page over plain HTTP is 101,528 bytes and zero words, the rendered home page is 4,440,448 bytes and 128 words, and the public games endpoint is 1,802 bytes carrying 226,518 live players, 64.7 billion visits and the rate limit in a header

Roblox tells you its rate limit on every response, and the number is different for the page and for the data behind it. On 28 September 2026 we fetched roblox.com through residential exits: the home page answered a plain HTTP client with 200, 101,528 bytes and zero words, and a headless browser spent 4,440,448 bytes and 19.9 seconds to return 128. The public games endpoint answered 1,802 bytes with 226,518 players online, 64.7 billion visits and 19,996,280 favourites for one experience, under a header that reads x-ratelimit-limit: 300;w=60. Roblox proxies are for reading that JSON at scale and for seeing the localised page a player sees; this article gives the exact setting.

The page is empty without JavaScript, and thin with it

The Roblox website is a shell. A logged-out request for the home returns the title, the meta description, a canonical, an Organization JSON-LD block and no words at all, because every list on the page is fetched by scripts after load. Rendering fixes less than you would expect: the audit's rendered pass returned 128 words and the heading One platform. Millions of games., a signed-out landing page whose content is a sign-up form.

FetchExitStatusWordsBytesx-ratelimit-limit
Home, plain HTTPUnited States2000101,528100;w=60
Home, renderedUnited States2001284,440,448n/a
Game page, plain HTTP (Blox Fruits)United States20021390,823100;w=60
Game page, plain HTTP (same URL)Germany200212114,063100;w=60
games.roblox.com/v1/games?universeIds=994732206United States200n/a1,802300;w=60
catalog.roblox.com/v1/search/items/detailsUnited States400n/a8112;w=60, plus a deprecation header

The rendered fetch is the expensive row: 44 times the bytes of the plain fetch and 19.9 seconds of browser time for a page that a logged-out visitor is not meant to read. In a second rendered pass the same home settled at 609 words after the recommendation grid loaded, and every one of those words was a game title you can get from the endpoint in a fraction of the bytes. Do not render Roblox for data.

A game page over plain HTTP is a different story: 213 words, the title, the description, the creator and the canonical, in 90,823 bytes. That is enough to confirm an experience exists and to read its public description. The live numbers, players, visits, favourites, are not on it; they are in the JSON.

The games endpoint carries the numbers and prints its own limit

The endpoint that the game page itself calls is public, keyless and answered a plain HTTP client through a residential exit in 1.5 seconds:

GET https://games.roblox.com/v1/games?universeIds=994732206
{"data":[{"id":994732206,"rootPlaceId":2753915549,"name":"Blox Fruits",
  "creator":{"id":4372130,"name":"Gamer Robot Inc","type":"Group","hasVerifiedBadge":true},
  "playing":226518,"visits":64715626937,"maxPlayers":12,
  "created":"2019-01-16T03:29:19.433Z","updated":"2026-09-27T04:42:04.424Z",
  "genre_l1":"RPG","genre_l2":"Action RPG","favoritedCount":19996280, ...}]}

x-ratelimit-limit: 300, 300;w=60
x-ratelimit-remaining: 299
x-ratelimit-reset: 24
x-terms-message: Terms apply https://rblx.co/TOU.

Three things to build on. First, the rate limit is per window and per IP and it is printed: 100 requests per 60 seconds on www pages, 300 per 60 seconds on the games endpoint, 12 per 60 seconds on the deprecated catalog search. A poller that reads x-ratelimit-remaining and sleeps until x-ratelimit-reset never meets a 429 and never needs a second IP for the first 300 experiences a minute. Second, the games endpoint takes a comma-separated list of universe ids, so one request can carry many experiences; the cost per experience falls well below the 1,802 bytes of a single-id call. Third, the catalog endpoint we tried answered 400 with a deprecation header, This endpoint will be deprecated soon; do not build a catalogue pipeline on it, the documented replacement is in Open Cloud.

The response also settles the identifier question that costs newcomers hours: the URL carries a place id (2753915549), the endpoint wants a universe id (994732206), and the response gives you both, plus canonicalUrlPath, so one lookup maps the two for good.

What the exit country changes

Roblox localises by IP before any cookie exists. The same game URL fetched from a German residential exit redirected to /de/games/2753915549/Blox-Fruits, came back titled Blox Früchte | Auf Roblox spielen with a German description and a German canonical, and weighed 114,063 bytes against 90,823 from the United States. The JSON did not change. So the rule is the same as on Kick: for numbers, the exit country is irrelevant and one US exit is fine; for what a player in a market sees, the localised title, description, the maturity label and the regional restrictions, you need an exit in that market, and the 30 sitemaps in robots.txt (one per language, games and pages) tell you which markets Roblox itself considers separate.

Roblox also prints Terms apply https://rblx.co/TOU. on every response, page or JSON, and it means it. The Community Standards prohibit using bots or other automation that is programmed to run disruptive tasks and using or sharing exploits to help yourself or others gain an unfair advantage. The Terms of Use bind every account holder to those standards. Reading public experience metadata at 300 requests a minute, as the header allows, is not disruptive; account farming, item sniping bots, alt accounts to dodge a ban and the free-robux schemes the search results are full of are, and no proxy makes them anything else. We do not help with them.

Cost math with real prices, 1 GB counted as 1,000,000,000 bytes

Prices from our pricing page: residential Basic $0.80/GB, residential Premium $2.20/GB, datacenter $0.50/GB, and the web scraping API from $0.0002 per page ($0.001 with rendering), billed only on success.

ApproachBytes per unitUnits per GBCost per 1,000 units, residential Basic
games endpoint, one universe id per call1,802about 555,000$0.0014
Game page, plain HTTP90,823about 11,000$0.073
Home, plain HTTP (0 words)101,528about 9,850$0.081
Home, rendered4,440,448225$3.55
Web scraping API, one game page, no rendern/an/a$0.20
Web scraping API, one page, renderedn/an/a$1.00

Byte figures are decoded page size and overstate compressed transfer; the ordering holds. Reading the live player count for 1,000 experiences costs about a seventh of a cent over the endpoint and $3.55 by rendering the home, which does not even contain it. The binding constraint on Roblox is never bandwidth; it is the 300-per-minute window per IP, which is where a rotating pool turns 300 experiences a minute into 300 per exit.

Which proxy type, by job

JobProxy typeWhy
Reading public experience metadata at volumeResidential, rotatingEvery exit gets its own 300-per-minute window on the games endpoint; nothing we sent from a residential exit was challenged
Checking the localised page from a marketResidential, country-targetedRoblox redirects to /de/ and translates the title from a German exit; only a real exit there shows it
Relaying Roblox APIs from inside an experienceNot a per-GB proxy jobHttpService calls go server to server; the community relays in the search results exist because Roblox blocks its own domains from HttpService, not because of IP reputation
Trading, sniping, alt accounts, ban evasionNoneProhibited by the Community Standards; a new IP does not restore a banned account

Mobile proxies are not justified anywhere on this list. Nothing we measured behaved differently for a carrier IP, and the web surface did not challenge residential traffic at all. For the general choice between rotating and sticky exits, see the rotating proxies page; for how much a gigabyte buys across sites, see how much proxy data you need.

The setting that works on Roblox

  • Network: residential, Basic at $0.80/GB, rotating so each exit carries its own 300-per-minute window.
  • Fetch mode: engine: tls. The games endpoint returns the full object in 1,802 bytes and a game page returns 213 words; rendering the home costs 4,440,448 bytes for 128 words that a logged-out visitor is not meant to read.
  • Country: pin us for data, pin the market for the page. From Germany the same game URL becomes /de/games/..., Blox Früchte | Auf Roblox spielen, 114,063 bytes instead of 90,823; the JSON is identical everywhere.
  • When the proxy is not enough: there is no Roblox collector in our catalogue. For typed rows from a game or catalogue page use the web scraping API without rendering ($0.0002 per page) with a CSS or AI extraction schema; for the numbers, call the games endpoint directly through the proxy and honour x-ratelimit-reset.
  • Every account gets $2 of free API usage per month, which is 2.5 GB of residential bandwidth or about 1,387,000 games-endpoint calls before anything is billed.

Sources & further reading

FAQ

Quick answers on roblox proxies.

Something else? Ask us →

Do I need a proxy to read Roblox game data?

Not for the first 300 requests a minute. The games endpoint answered a plain HTTP client through a residential exit with 200, 1,802 bytes and a header reading x-ratelimit-limit: 300;w=60. Past that window per IP you need more exits, which is what a rotating residential pool provides.

Why does the Roblox home page return 0 words?

Because it is a JavaScript shell. Over plain HTTP the home returned 200, 101,528 bytes, a title, a description and an Organization JSON-LD block, and no body text. Rendering it returned 128 words and a sign-up heading in the audit, and at most 609 words of game titles in a second pass, for 4,440,448 bytes. The data is in the endpoints, not the page.

What is the Roblox rate limit for scraping?

Roblox prints it per response: 100 requests per 60 seconds on www.roblox.com pages, 300 per 60 seconds on games.roblox.com, and 12 per 60 seconds on the deprecated catalog search. Read x-ratelimit-remaining and x-ratelimit-reset and you never see a 429.

Does the exit country change what Roblox returns?

For pages, yes: the same game URL from a German exit redirected to /de/games/..., was titled Blox Früchte | Auf Roblox spielen and weighed 114,063 bytes against 90,823 from the United States. For the games endpoint, no: the JSON was identical. Pin the country only when the job is what a player in that market sees.

Is scraping Roblox against its rules?

The Community Standards prohibit bots or other automation programmed to run disruptive tasks and any exploit that gives an unfair advantage, and every response carries a Terms apply header. Reading public metadata within the printed rate limit is not disruptive. Alt accounts, trading bots, ban evasion and free-robux schemes are prohibited and we do not help with them.

What do the community RoProxy relays have to do with proxies?

Little. They exist because Roblox blocks its own domains from HttpService inside experiences, so developers relay API calls through a third-party host. That is a server-to-server relay, not an IP-reputation problem, and it is not what a residential proxy is for. For data collection outside a game, call the endpoints directly through the proxy.

Read the endpoint, honour the header

One residential exit and a plain HTTP fetch gave us every number in this article, including the rate limit Roblox prints on each response. Every account gets $2 of free API usage per month, and failed requests are never billed.

Related reading