API information

Roblox API Sites

Github Repo:

Site Description
accountsettings.roblox.com All endpoints for account/user settings
ads.roblox.com Ads configuration endpoints
api.roblox.com Miscellaneous endpoints
assetdelivery.roblox.com Serves asset content
auth.roblox.com All endpoints that tamper with authentication sessions
avatar.roblox.com Endpoints relating to the customization of player avatars
badges.roblox.com Endpoints for badges and badge awards management
billing.roblox.com Real money transactions and interaction
catalog.roblox.com Catalog items browsing and searching. Content and user based catalog items recommendations
chat.roblox.com All chat and party related endpoints
clientsettings.roblox.com Used by various Roblox clients to retrieve configuration information
develop.roblox.com Game development configuration endpoints
followings.roblox.com Establishes follow relationship between subscriber entities (users, groups, etc) and source entities (games, groups, assets, etc.)
friends.roblox.com Friends, followers, and contacts management
gameinternationalization.roblox.com Manages internationalization of games such as translating in game content.
gamejoin.roblox.com All endpoints around launching a game
games.roblox.com All endpoints for game discovery, and details
gamepersistence.roblox.com Endpoints for the in-game datastore system for storing data for games
groups.roblox.com Groups and clans management
inventory.roblox.com All endpoints for viewing (but not granting) ownership of items
locale.roblox.com User locale management
notifications.roblox.com All notification stream endpoints
points.roblox.com The web Api for the in-game PointsService
presence.roblox.com All endpoints for managing presence
publish.roblox.com All endpoints handling file uploads
textfilter.roblox.com High volume text filtering
thumbnails.roblox.com Endpoints for requesting thumbnails

Deprecated APIs

Search APIs

http://www.roblox.com/games/list-json?sortFilter=1&MaxRows=5

Search for an audio asset with the search term “pendulum fasten”

https://search.roblox.com/catalog/json?Category=9&Keyword=pendulum%20fasten

Place APIs

Get a place’s game instances

startIndex must be a multiple of 10

Thumbnail APIs

Asset Thumbnails

Outfit Thumbnails

Avatar Thumbnails

Valid Thumbnail Sizes

48x48 60x62 75x75 100x100 110x110 160x100 250x250 352x352 420x230 420x420
/Game/Tools/ThumbnailAsset.ashx x x x x
/Thumbs/Pixelated.ashx x
/Asset-Thumbnail/Json x x x x x x x x x x
/Outfit-Thumbnail/Json x x x x x x x x x x
/Thumbs/Asset.ashx x x x x x x x x x x
/Thumbs/Avatar.ashx x x x x x x x x x x
/Thumbs/RawAsset.ashx x x x x x x x x x x

Group APIs

Get a group’s games

Get a group’s emblem asset id

Get a thumbnail for a group

Check a user’s role in a group

Get a group’s ranks

Get a user’s primary group

Friend APIs

Check if two users are friends

Get information about a developer product

  • https://api.roblox.com/Marketplace/ProductDetails?productId=18026036

    {
        "AssetId": 0,
        "ProductId": 18026036,
        "Name": "85 Candies Pack",
        "Description": null,
        "AssetTypeId": 0,
        "Creator": {
            "Id": 0,
            "Name": null
        },
        "IconImageAssetId": 0,
        "Created": "2013-10-16T00:37:38.517Z",
        "Updated": "2013-10-16T00:37:38.517Z",
        "PriceInRobux": 50,
        "PriceInTickets": 625,
        "Sales": 0,
        "IsNew": false,
        "IsForSale": true,
        "IsPublicDomain": false,
        "IsLimited": false,
        "IsLimitedUnique": false,
        "Remaining": null,
        "MinimumMembershipLevel": 0,
        "ContentRatingTypeId": 0
    }
    

User APIs

Get username from ID

Get ID from username

Get a list of places created by a user

  • https://www.roblox.com/users/profile/playergames-json?userId=261

    {
        "Title": "Games",
        "Games": [{
            "CreatorID": 0,
            "CreatorName": "Shedletsky",
            "CreatorAbsoluteUrl": "https://www.roblox.com/users/261/profile",
            "Plays": 65437,
            "Price": 0,
            "ProductID": 0,
            "IsOwned": false,
            "IsVotingEnabled": true,
            "TotalUpVotes": 79,
            "TotalDownVotes": 34,
            "TotalBought": 0,
            "UniverseID": 150387,
            "HasErrorOcurred": false,
            "Favorites": 1728,
            "Description": "In a dystopian future, Robloxia is overrun by killbots.",
            "GameDetailReferralUrl": "http://www.roblox.com/games/48891/Timmy-and-the-Killbots",
            "Thumbnail": {
                "Final": true,
                "Url": "http://t7.rbxcdn.com/db35c88f3bfe3e45898cf9a65b370dd9",
                "RetryUrl": null
            },
            "UseDataSrc": false,
            "Name": "Timmy and the Killbots",
            "PlaceID": 48891,
            "PlayerCount": 0,
            "ImageId": 0
        }]
    }
    

Check if a username has been taken

Asset APIs

Get parts of a package

####Check if a user owns an asset

#####Get information about an asset

  • http://api.roblox.com/Marketplace/ProductInfo?assetId=1818

    {
        "AssetId": 1818,
        "ProductId": 1305046,
        "Name": "Crossroads",
        "Description": "The classic ROBLOX level is back!",
        "AssetTypeId": 9,
        "Creator": {
            "Id": 1,
            "Name": "ROBLOX"
        },
        "IconImageAssetId": 0,
        "Created": "2007-05-01T01:07:04.78Z",
        "Updated": "2013-07-01T16:40:24.527Z",
        "PriceInRobux": null,
        "PriceInTickets": null,
        "Sales": 0,
        "IsNew": false,
        "IsForSale": false,
        "IsPublicDomain": false,
        "IsLimited": false,
        "IsLimitedUnique": false,
        "Remaining": null,
        "MinimumMembershipLevel": 0,
        "ContentRatingTypeId": 0
    }
    

Get an asset’s latest VersionId

Get serial number of a collectible asset

  • https://www.roblox.com/Trade/InventoryHandler.ashx?userId=%d&assetTypeId=%d&ItemsPerPage=25&page=%d"

    {
    	"sl_translate":"message",
    	"success":true,
    	"msg":"Inventory retreived!",
    	"data":{
    		"agentID":90115385,
    		"totalNumber":3,
    		"InventoryItems":[{
    			"Name":"Noob Attack: Artemis Annhilation",
    			"ImageLink":"https://t2.rbxcdn.com/b8807e8da2b996cff306a3da3c5b2f7c",
    			"ItemLink":"https://www.roblox.com/Noob-Attack-Artemis-Annhilation-item?id=553718984",
    			"SerialNumber":"1742",
    			"SerialNumberTotal":"5000",
    			"AveragePrice":"312",
    			"OriginalPrice":"75",
    			"UserAssetID":"646564564",
    			"MembershipLevel":null
    		}]
    	}
    }
    
Download various versions of an asset
Upload an asset
POST /Data/Upload.ashx?assetid=1818 HTTP/1.1
Host: data.roblox.com
Cookie: .ROBLOSECURITY=*
Content-Type: application/xml; charset=utf-8
Content-Length: 17

<roblox></roblox>

Returns an assetVersionId

Log in
POST https://www.roblox.com/NewLogin HTTP/1.1
Host: www.roblox.com
Content-Length: 29
Content-Type: application/json

{"username":"Shedletsky","password":"hunter2"}
  • User-Agent: ROBLOX iOS

Useful Hacks

Get the assetId of an assetVersionId:

$ curl -i http://www.roblox.com/--item?avid=1

HTTP/1.1 302 Found
Location: /ArrowCursor-png-item?id=1000000

Get the creator of an assetId, or see how many assetVersions it has

####Current User APIs

Login APIs

POST https://www.roblox.com/MobileAPI/Signup HTTP/1.1
Host: www.roblox.com
Content-Type: application/json
Content-Length: 72

{"username":"Shedletsky","password":"hunter2","gender":"Male","dateOfBirth":"6/18/87"}
HTTP/1.1 200 OK
Set-Cookie: .ROBLOSECURITY=*
Content-Length: 210
Content-Type: application/json

{"Status":"OK","UserInfo":{"UserID":261,"UserName":"Shedletsky","RobuxBalance":0,"TicketsBalance":0,"ThumbnailUrl":"http://t3.rbxcdn.com/1768c4f3c0d7c30d978c9dce68aa786c","IsAnyBuildersClubMember":false}}
POST https://www.roblox.com/MobileAPI/Login HTTP/1.1
Host: www.roblox.com
Content-Length: 29
Content-Type: application/json

{"username":"","password":""}
POST https://www.roblox.com/Services/Secure/LoginService.asmx/ValidateLogin HTTP/1.1
Host: www.roblox.com
Content-Length: 85
Content-Type: application/json

{"userName":"","password":"","isCaptchaOn":false,"challenge":"","captchaResponse":""}

This page clears the browser’s cookies. It doesn’t invalidate the session:

POST https://www.roblox.com/MobileAPI/Logout HTTP/1.1
Host: www.roblox.com
Cookie: .ROBLOSECURITY=*
Content-Length: 0

The equivalent on the website is https://www.roblox.com/Item.aspx?avid=1

There’s another parameter, serverPlaceId, which will deny the request if the owner of that place doesn’t own it and it’s not owned by roblox.

####Main Site


POST http://www.roblox.com/Services/GroupService.asmx/GetRoleSetsForGroup HTTP/1.1
Content-Type: application/json

{ "groupId": 1 }

thumbnail-sizes.js:

var request = require('request');
var async = require('async');

var sizes = [
  { width: 1, height: 1 }, // intentionally invalid
  { width: 48, height: 48 },
  {width: 60, height: 62 },
  { width: 75, height: 75 },
  { width: 100, height: 100 },
  { width: 110, height: 110 },
  { width: 160, height: 100 },
  { width: 250, height: 250 },
  { width: 352, height: 352 },
  { width: 420, height: 230 },
  { width: 420, height: 420 }
];

var apis = [{
	name: "/Game/Tools/ThumbnailAsset.ashx",
	url: "http://www.roblox.com/Game/Tools/ThumbnailAsset.ashx?aid=1818&fmt=png",
	width_param: "wd",
	height_param: "ht"
}, {
	name: "/Thumbs/Pixelated.ashx",
	url: "http://www.roblox.com/Thumbs/Pixelated.ashx?id=1818&format=Png&tfid=114",
	width_param: "x",
	height_param: "y"
}, {
	name: "/Asset-Thumbnail/Json",
	url: "http://www.roblox.com/Asset-Thumbnail/Json?assetId=1818&format=jpeg",
	width_param: "width",
	height_param: "height"
}, {
	name: "/Outfit-Thumbnail/Json",
	url: "http://www.roblox.com/Outfit-Thumbnail/Json?userOutfitId=2&format=png",
	width_param: "width",
	height_param: "height"
}, {
	name: "/Thumbs/Asset.ashx",
	url: "http://www.roblox.com/Thumbs/Asset.ashx?AssetID=1818",
	width_param: "width",
	height_param: "height"
}, {
	name: "/Thumbs/RawAsset.ashx",
	url: "http://www.roblox.com/Thumbs/Asset.ashx?assetId=1818&imageFormat=png",
	width_param: "width",
	height_param: "height"
}, {
		name: "Avatar.ashx",
		url: "http://www.roblox.com/Thumbs/Avatar.ashx?username=Shedletsky&format=png",
		width_param: "x",
		height_param: "y"
}];

var q = async.queue(function (task, callback) {
	var qs = {};
	qs[task.width_param] = task.width;
	qs[task.height_param] = task.height;

	var width = task.width;
	var height = task.height;
	request.get(task.url, { qs: qs }, function(err, res) {
		if (res.statusCode == 200) {
				console.log(task.name, width + 'x' +  height);
		}
		callback();
	});
}, 2);

apis.forEach(function(api) {
	sizes.forEach(function(size) {
		var task = {};
		task.name = api.name;
		task.url = api.url;
		task.width = size.width;
		task.height = size.height;
		task.width_param = api.width_param;
		task.height_param = api.height_param;
		q.push(task);
	});
});
7 Likes

#bulletin-board?

Not sure to be honest…

Why would it be on #bulletin-board?

Eh, nevermind, i didn’t knew about this:

https://users.roblox.com/ could also be added to this list.

1 Like

Original source:

3 Likes

Looks like this is not original. Bruh, I even gave a heart.

1 Like

Copied from another site.