There are some caveats with group-owned API keys that we’re aware of that we still need to resolve – this update doesn’t affect anything about that.
The permissions of the key are based on the last user who (re)generated that API key at the moment, and certain endpoints have specific constraints for group-owned API keys. We understand that is not very friendly for usability and we’re planning out improvements.
I definitely agree with this one! right now you have to use datastores to save every time someone was banned, then use GetBanHistoryAsync. It would also be great if there was a method to get ban history for the universe instead of a player
Let’s goooooo! I’ve been waiting for this for so long!
I’m still waiting for the eventual modules and whatnot to simplify some of this, but I’m so glad to finally see the official launch of this. Thank you all who have worked and discussed with developers about this!
Great update! Unfortunately, none of the endpoints I’m currently using are supported yet.
I use https://catalog.roblox.com/v1/assets/{assetId}/bundles to get a list of bundles that an asset is included in.
I use https://catalog.roblox.com/v1/bundles/{bundleId}/details to get a list of Universe IDs that a bundle can be sold in. (not related to the previous endpoint)
I use https://games.roblox.com/v1/games?universeIds={universeIds} to get a list of Start Place IDs from said the previous list of Universe IDs so that the user can teleport to the place where the bundle is being sold.
Honestly, all of these feel like they should be available under engine APIs. None of the existing methods under MarketplaceService, AvatarEditorService, or AssetService provide this info.
Are there any plans to simplify some of these in-engine calls into services?
Having to set up an API key, secret, local Studio secret overrides, then various fetching logic in lieu of a GroupService:GetRank(userId) and GroupService:SetRank(userId, rankId/String) has a fair bit of friction + testing difficulties.
It’s a possibility that based on the usage patterns we’ll see and based on impact we might decide to turn some of these calls into engine APIs, but for now this is the only planned offering in this regard.
Snapshot Data Stores and Flush Memory Store and Restart Universe Servers could be useful. Although snapshot would be moreso useful in studio plugins, it could still be used on a cyclic basis within servers. Flush would be useful from the context of memoryStore memory management, resolving issues where the data limit for memoryStore is hit. Restart server would be primarily useful in studio plugins, but could be slightly useful in servers if Publish Universe Message is supported. I saw some replies mentioning Publish Universe Message already, but to add another use case, it could be used in plugins to notify developers of suspicious activity within the game.
so is it available to use right now? I have tried various group apis and they all say “HttpService is not allowed to access that Roblox resource”. I didn’t see anything addressing it in the beta settings in studio.
Hey there, can you share a Lua snippet (please mask any sensitive values) with the code you’re trying to run? Note that only the specific group endpoints linked in the announcement are supported at this time.
GetGroup (api key has been removed but is used in the script)
local HttpService = game:GetService("HttpService")
local firsturl = "https://apis.roblox.com/cloud/v2/groups"
local HEADERS = {
["x-api-key"] = "",
["Content-Type"] = "application/json",
}
local groupId = 33088619
local function rank()
local url = firsturl ..groupId
local body = HttpService:JSONEncode(requestBody)
local success, response = pcall(function()
return HttpService:RequestAsync({
Url = url,
Method = "GET",
Headers = HEADERS,
})
end)
print(response)
end
thank you for that, I feel very stupid
it says that header “x-api-key” has unallowed character though. here’s my secret format and my header code: {"api-key": ["api key here", "apis.roblox.com"]}