[Update] May 8, 2023
Hi developers,
In order to increase the reliability of our platform and improve scalability, we are migrating endpoints away from the monolithic api.roblox.com
web API.
Beginning on July 15, 2022, we will start removing individual API endpoints from api.roblox.com
. All endpoints are scheduled to be removed by the end of the year.
We recommend switching to newer endpoints on the apis.roblox.com
or individual APIs (avatar.roblox.com, games.roblox.com, etc).
Please update any tools, browser plugins, or third-party sites that rely on api.roblox.com
over to the newer endpoints listed below.
If you are having any issues with the new endpoints, reply to this post and we will be happy to provide answers.
FAQs
What is the exact date each API endpoint will be removed?
- Individual endpoints will be removed one-by-one at some point between now and the end of the year. We don’t have an exact date for each one.
I am not a web developer, how can I tell if this impacts me?
- This change only impacts developers who are making requests from third-party servers, browser plugins, or tools to
api.roblox.com
. - If you only develop inside of the Roblox game engine, you don’t need to make any changes.
- Currently HttpService does not allow direct requests to *.roblox.com. Some developers use proxy web servers to get around this limitation. If you use one of these proxy servers, you may be affected.
The new recommended endpoint doesn’t solve my use case, what can I do?
- Please reply to this post and we will do our best to assist you.
The new recommended endpoint is rate limiting me with a 429 Status Code (Too Many Requests)
- Different endpoints may have different rate limits applied. Reply with information about your use case and how frequently you are hitting the endpoint, and we will try to help you.
Is there a better way to notify people who are still using API endpoints?
- As part of the Open Cloud initiative, we are allowing consumers to identify themselves using API keys. In the future, this will allow us to notify impacted developers before we sunset any API endpoints.
What is apis.roblox.com
and how is it different from api.roblox.com
?
-
apis.roblox.com
is Roblox’s API Gateway and is responsible for routing traffic to services containing our API endpoints. Long-term we plan to move most of our endpoints toapis.roblox.com
. -
api.roblox.com
is a single monolithic site that handles traffic directly. The lack of routing has lead to an increasing number of scalability and reliability issues over time.
How can I view the documentation for endpoints on apis.roblox.com
?
- As part of the Open Cloud initiative, we plan to create a unified documentation system for our web API endpoints. For now, you can visit Open Cloud to view some of the endpoints.
Endpoints
This section is a list of all the public api.roblox.com
endpoints, and the replacement endpoints that we recommend switching over to. The new endpoints have different request and response formats, so we recommend reading the documentation.
Users
GET /users/account-info
→ https://users.roblox.com/docs#!/Users/get_v1_users_authenticated for user info
→ https://accountsettings.roblox.com/docs#!/Email/get_v1_email for email info
→ https://economy.roblox.com/docs#!/Currency/get_v1_user_currency for Robux balance
→ https://locale.roblox.com/docs#!/Locale/get_v1_locales_user_locale for locale info
GET /users/{userId}
→ https://users.roblox.com/docs#!/Users/get_v1_users_userId for user info
→ https://thumbnails.roblox.com/docs#!/Avatar/get_v1_users_avatar for thumbnail
GET /users/get-by-username
→ https://users.roblox.com/docs#!/Users/post_v1_usernames_users
Blocking
GET /userblock/getblockedusers
→ https://accountsettings.roblox.com/docs#!/BlockUser/get_v1_users_get_blocked_users
POST /userblock/block
→ https://accountsettings.roblox.com/docs#!/BlockUser/post_v1_users_userId_block
POST /userblock/unblock
→ https://accountsettings.roblox.com/docs#!/BlockUser/post_v1_users_userId_unblock
Marketplace
GET /marketplace/productinfo
→ https://economy.roblox.com/v2/developer-products/{assetID}/info
GET /marketplace/game-pass-product-info
→ https://apis.roblox.com/game-passes/v1/game-passes/{passId}/product-info
GET /marketplace/productdetails
→ https://economy.roblox.com/v2/developer-products/{productId}/details
GET /developerproducts/list
→ https://develop.roblox.com/docs#!/DeveloperProducts/get_v1_universes_universeId_developerproducts
GET /currency/balance
→ https://economy.roblox.com/docs#!/Currency/get_v1_user_currency
GET /my/balance
→ https://economy.roblox.com/docs#!/Currency/get_v1_user_currency
Universes
GET /universes/get-info
→ https://games.roblox.com/docs#!/Games/get_v1_games
GET /universes/get-universe-containing-place
→ ~~https://games.roblox.com/docs#!/Games/get_v1_games_multiget_place_details~~
→ https://apis.roblox.com/universes/v1/places/{placeId}/universe
POST /universes/create
→ POST https://apis.roblox.com/universes/v1/universes/create
Details
- Creates a new universe with a base place built from a template.
- Query string parameters:
- (Optional) groupId: If specified, the created universe will belong to the specified group. This assumes there are correct permissions to act for the specified group.
- JSON Body:
- (Required) templatePlaceIdToUse: The place id of the template place to be used as the root place of the created universe.
GET /universes/{universeId}/listcloudeditors
→ https://develop.roblox.com/docs#!/TeamCreate/get_v1_universes_universeId_teamcreate_memberships
GET /universes/get-universe-places
→ https://develop.roblox.com/docs#!/Universes/get_v1_universes_universeId_places
Assets
GET /ownership/hasasset
GET /users/{userId}/canmanage/{assetId}
→ https://develop.roblox.com/docs#!/User/get_v1_user_userId_canmanage_assetId
GET /assets/{id}/versions
→ https://develop.roblox.com/docs#!/Assets/get_v2_assets_id_versions
GET /v2/assets/{id}/versions
→ https://develop.roblox.com/docs#!/Assets/get_v2_assets_id_versions
Miscellaneous
GET /users/{userId}/onlinestatus - (EOL 1/31/23)
→ https://presence.roblox.com/docs#!/Presence/post_v1_presence_users
→ Use https://presence.roblox.com/v1/presence/last-online for getting the last online date. See the docs page for more details.
GET /users/{userId}/friends - (EOL 11/17)
→ https://friends.roblox.com/docs#!/Friends/get_v1_users_userId_friends
GET /groups/{groupId}
→ https://groups.roblox.com/docs#!/Groups/get_v1_groups_groupId
GET /incoming-items/counts
→ https://friends.roblox.com/docs#!/Friends/get_v1_user_friend_requests_count for friend request count
→ https://privatemessages.roblox.com/docs#!/Messages/get_v1_messages_unread_count for unread message count
GET /user/get-vote-count