Roblox Scraper: Games, Catalog, Users & Communities avatar

Roblox Scraper: Games, Catalog, Users & Communities

Pricing

from $1.00 / 1,000 records

Go to Apify Store
Roblox Scraper: Games, Catalog, Users & Communities

Roblox Scraper: Games, Catalog, Users & Communities

Scrape Roblox experiences, marketplace items, users and communities. Player counts, visits, likes, genre, creator, resale prices and price history, limited status, follower counts, community members and roles. Search, ids or pasted links, with incremental change tracking for scheduled runs.

Pricing

from $1.00 / 1,000 records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Roblox Scraper

Pull structured data out of Roblox (roblox.com) in one place: experiences with their live player counts, visits, likes and creator, marketplace items with resale prices and price history, player profiles with follower and connection counts, and communities with their roles and full member rosters. Give it a keyword, an id, or just paste links, and it returns clean, flat JSON rows you can load straight into a sheet, a warehouse, or a dashboard. Built-in incremental mode makes it a monitoring tool as well as a one-off extractor: schedule it daily and get back only what actually changed.

Why This Scraper?

  • Five sources in one actor, not five separate tools: experiences, marketplace catalog, game passes, users and communities all return through the same dataset with a kind column.
  • Up to 40 fields per record, including the numbers people actually track: live players, total visits, likes and dislikes with a derived like ratio, favourites, lowest resale price, recent average price, 30 points of price history, total quantity for limited items, follower and connection counts, and community member counts by role.
  • Six link shapes accepted verbatim. Paste an experience page, a marketplace item, a bundle, a game pass, a profile or a community and the actor works out what each one is. A listing link returns the whole result set, not just the first screen.
  • Incremental change tracking built in. Every record is classified NEW, UPDATED, REAPPEARED, UNCHANGED or EXPIRED against the previous run of the same search, with the exact list of fields that moved.
  • Resume a large pull from a previous run id without paying for rows you already have.
  • Honest limits. A run that gets refused fails loudly instead of quietly reporting an empty result, so a scheduled job never silently returns nothing.
  • Costs scale with what you keep. The base record set carries no surcharge; only the optional extra detail data does, and only for the records that actually received it.

Data You Get

Sample shape, values are illustrative placeholders, not from a live record.

Experiences (kind: "game")

FieldExample
recordIdgame-00000001
id / universeId00000001
rootPlaceId00000002
urlhttps://www.roblox.com/games/00000002/Sample-Experience
nameSample Experience
descriptionFull experience description text.
creatorName / creatorTypeSample Studio / Group
genre / genreL1 / genreL2All / RPG / Action RPG
playing1000
visits10000000
maxPlayers20
favoritedCount500000
upVotes / downVotes / likeRatio900000 / 100000 / 0.9
createdAt / updatedAt2020-01-01T00:00:00.000Z
iconUrlhttps://tr.rbxcdn.com/00000000/512/512/Image/Png
sampledServerCount100
sampledServerPlayers1200
avgServerFps / avgServerPing59.5 / 150.0
mediaImageCount / mediaVideoCount5 / 1
badges[{ "id": 0, "name": "Sample Badge", "awardedCount": 1000 }]

Marketplace items (kind: "catalogItem") and game passes (kind: "gamePass")

FieldExample
recordIdcatalog-Asset-00000001
itemTypeAsset (or Bundle)
urlhttps://www.roblox.com/catalog/00000001/Sample-Item
name / descriptionSample Item / Item description text.
categoryName / categoryGroupHead Accessories / accessories
creatorName / creatorTypeSample Creator / User
price / lowestPrice / lowestResalePrice0 / 100000 / 100000
recentAveragePrice110000
salesCount / totalQuantity / numberRemaining1000 / 10000 / 0
favoriteCount100000
itemRestrictions["Limited"]
isLimited / isLimitedUnique / isCollectibletrue / false / true
hasResellers / isOffSaletrue / true
priceHistory[{ "date": "2026-01-01T00:00:00Z", "value": 110000 }]
thumbnailUrlhttps://tr.rbxcdn.com/00000000/420/420/Hat/Png

Users (kind: "user")

FieldExample
recordIduser-00000001
urlhttps://www.roblox.com/users/00000001/profile
name / displayNameSampleUser / Sample User
descriptionProfile description text.
createdAt2010-01-01T00:00:00.000Z
hasVerifiedBadge / isBannedfalse / false
friendsCount / followersCount / followingCount50 / 100000 / 25
robloxBadges["Veteran", "Bricksmith"]
createdExperiencesCount / createdExperiences2 / [{ "name": "Sample Experience", "placeVisits": 10000 }]
avatarHeadshotUrlhttps://tr.rbxcdn.com/00000000/150/150/AvatarHeadshot/Png

Communities (kind: "group") and their members (kind: "groupMember")

FieldExample
recordIdgroup-00000001 / groupmember-00000001-00000002
urlhttps://www.roblox.com/groups/00000001/Sample-Community
name / descriptionSample Community / Community description text.
memberCount1000000
ownerUsername / ownerDisplayNameSampleOwner / Sample Owner
publicEntryAllowedtrue
shoutBody / shoutPosterSample announcement. / SampleOwner
roleCount / roles5 / [{ "name": "Member", "rank": 1, "memberCount": 999000 }]
groupExperiencesCount / groupExperiences3 / [{ "name": "Sample Experience", "placeVisits": 10000 }]
groupName / roleName / roleRank (member rows)Sample Community / Member / 1

Every record also carries kind, scrapedAt, and, in incremental mode, changeType, changedFields, firstSeenAt and lastSeenAt.

How to Use

Search experiences by keyword

{
"mode": "games",
"gameQueries": ["tycoon", "obby"],
"minPlaying": 500,
"maxItems": 100,
"fetchDetails": true
}

Look up specific experiences by id or link

{
"mode": "games",
"gameQueries": [
"994732206",
"https://www.roblox.com/games/2753915549/Blox-Fruits"
],
"maxItems": 0
}

Track limited items and their resale prices

{
"mode": "catalog",
"catalogCategory": "accessories",
"catalogSalesType": "collectibles",
"catalogSortType": "priceHighToLow",
"minPrice": 1000,
"fetchDetails": true,
"maxItems": 200
}

Pull a community and its member roster

{
"mode": "groups",
"groupQueries": ["7", "https://www.roblox.com/communities/4199740/Example"],
"fetchGroupMembers": true,
"maxItems": 5000
}

Paste any mix of links

{
"mode": "url",
"urls": [
"https://www.roblox.com/games/2753915549/Blox-Fruits",
"https://www.roblox.com/catalog/1365767/Valkyrie-Helm",
"https://www.roblox.com/users/156/profile",
"https://www.roblox.com/discover?Keyword=simulator"
],
"maxItems": 50
}

Monitor the same search daily and get only the changes

{
"mode": "catalog",
"catalogSalesType": "collectibles",
"incrementalMode": true,
"stateKey": "limiteds-watch",
"emitExpired": true,
"maxItems": 0
}

Input Parameters

ParameterTypeDefaultDescription
modeselectgamesgames, catalog, users, groups or url. The search fields of the other modes are ignored; the filter and sort fields below apply whichever mode you run.
gameQueriesarrayKeywords, experience ids, place ids or experience links. One search per entry.
catalogKeywordstringFree-text marketplace search. Superseded by a pasted marketplace listing link, which carries its own keyword.
catalogCategoryselectallall, accessories, clothing or avatarAnimations. Superseded by a pasted marketplace listing link, which carries its own category.
userQueriesarrayUsernames, user ids or profile links.
userKeywordstringReturn every profile in the player directory matching this text.
groupQueriesarrayCommunity ids or community links.
fetchGroupMembersbooleanfalseAlso return one row per community member with their role and rank.
urlsarrayRoblox links for URL mode, including the discover and catalog listing pages.
minPlayingintegerKeep only experiences with at least this many players in game right now. Applies to every experience row, including one returned by a pasted link.
catalogSalesTypeselectanyany, collectibles (limited and resellable) or premium. Applies to every marketplace search, including one built from a pasted marketplace listing link.
catalogSortTypeselectrelevancerelevance, favorited, priceLowToHigh or priceHighToLow. Applies to every marketplace search, including one built from a pasted marketplace listing link.
minPrice / maxPriceintegerRobux price floor and ceiling for marketplace items. Applies to every marketplace search, including one built from a pasted marketplace listing link.
fetchDetailsbooleantrueAdd the extra per record data. Billed as a detail enrichment surcharge.
maxPagesinteger0Result pages per search target. 0 means read until the source runs out.
maxItemsinteger20Total records across all searches. 0 means unlimited.
resumeFromRunIdstringContinue a previous run or dataset without repeating rows already collected.
incrementalModebooleanfalseReturn only what changed since the last run of the same search.
stateKeystringName an incremental monitoring campaign.
emitUnchangedbooleanfalseAlso return, and bill, records that did not change.
emitExpiredbooleanfalseAlso return, and bill, records that are no longer found.
proxyobjectApify proxyConnection settings. The default works on every Apify plan.
mcpConnectorsarrayOptional MCP connectors to also receive the results.
notionParentPageUrlstringNotion page under which item pages are created.
maxNotifyListingsinteger50Cap on items sent to each connector. Does not affect the dataset.

A note on incremental mode and live numbers

Two kinds of number behave very differently between two runs. Counters that grow, such as visits, favourites, member counts, follower counts and resale prices, are treated as real changes: if one of them moves, the record comes back as UPDATED with that field named in changedFields. Instantaneous gauges, specifically the live player count (playing) and the sampled live server statistics, are excluded from change detection, because they move every minute and would otherwise mark every record as changed on every run. Those fields are still returned with their current value on every row.

Output Example

Sample shape, values are illustrative placeholders, not from a live record.

{
"kind": "game",
"recordId": "game-00000001",
"id": 1,
"universeId": 1,
"rootPlaceId": 2,
"url": "https://www.roblox.com/games/00000002/Sample-Experience",
"name": "Sample Experience",
"description": "Full experience description text.",
"creatorId": 3,
"creatorName": "Sample Studio",
"creatorType": "Group",
"creatorHasVerifiedBadge": true,
"genre": "All",
"genreL1": "RPG",
"genreL2": "Action RPG",
"price": null,
"playing": 1000,
"visits": 10000000,
"maxPlayers": 20,
"favoritedCount": 500000,
"upVotes": 900000,
"downVotes": 100000,
"likeRatio": 0.9,
"createdAt": "2020-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"copyingAllowed": false,
"createVipServersAllowed": true,
"universeAvatarType": "MorphToR15",
"isContentRestricted": false,
"iconUrl": "https://tr.rbxcdn.com/00000000/512/512/Image/Png",
"sampledServerCount": 100,
"sampledServerPlayers": 1200,
"avgServerFps": 59.5,
"avgServerPing": 150.0,
"mediaImageCount": 5,
"mediaVideoCount": 1,
"badges": [
{ "id": 0, "name": "Sample Badge", "awardedCount": 1000, "winRatePercentage": 0.1 }
],
"changeType": "UPDATED",
"changedFields": ["visits", "favoritedCount"],
"firstSeenAt": "2026-01-01T00:00:00.000Z",
"lastSeenAt": "2026-01-02T00:00:00.000Z",
"scrapedAt": "2026-01-02T00:00:00.000Z"
}

Send results into your apps (MCP connectors)

Results can optionally be piped into the apps you already use through Model Context Protocol connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in mcpConnectors. For Notion, also set notionParentPageUrl and each item becomes a page under it. Other connectors receive a best effort write.

The connector receives a condensed, human readable summary per item: a title plus the key fields flattened to plain text, with nested objects collapsed to their main value and arrays trimmed to a few names. The complete record always stays in the Apify dataset, and selecting a connector never changes the dataset output.

Plan Requirement

The actor needs an Apify account and uses the standard Apify proxy settings shown in the input. No additional credential or subscription is required.

Known Limits

  • Roblox does not publish the list of game passes for an experience to a signed out request. Individual game passes are still returned when you paste their link or id in URL mode.
  • The marketplace serves four categories to a signed out request: all, accessories, clothing and avatar animations. Other category names are rejected by the source.
  • sampledServerCount, sampledServerPlayers, avgServerFps and avgServerPing describe a sample of up to 100 currently running public servers, not every server of the experience.
  • Community member rosters can run into the millions of rows. Keep maxItems set unless you intend to pull the whole roster.