Open Cloud API Keys Now Support Groups!

Thank you for this! This really helps us. I’m not sure if you’re aware of this, but the API is currently returning 500 errors after successful uploads. I’m happy to message Bug-Support about it (still not able to post in Bug Reports), but it might be something related to this work?

Here’s an example of using the API using curl. As you can see, the upload succeeds but the API returns
HTTP/2 500.

> curl  --verbose --location --request POST 'https://apis.roblox.com/universes/v1/$redact/places/$redact/versions?versionType=Published' --header 'x-api-key: $api_key' --header 'Content-Type: application/octet-stream' --data-binary @file.rbxl


*   Trying 128.116.117.4:443...
* Connected to apis.roblox.com (128.116.117.4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=*.roblox.com
*  start date: Aug 13 22:53:34 2021 GMT
*  expire date: Aug 13 22:53:34 2022 GMT
*  subjectAltName: host "apis.roblox.com" matched cert's "*.roblox.com"
*  issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x12780b600)
> POST /universes/v1/$redact/places/$redact/versions?versionType=Published HTTP/2
> Host: apis.roblox.com
> user-agent: curl/7.77.0
> accept: */*
> x-api-key: $redact
> content-type: application/octet-stream
> content-length: 26719633
>


* We are completely uploaded and fine
< HTTP/2 500
< date: Wed, 02 Feb 2022 02:05:29 GMT
< server: Kestrel
< content-length: 0
< report-to: {"group":"network-errors","max_age":604800,"endpoints":[{"url":"https://ncs.roblox.com/upload"}]}
< nel: {"report_to":"network-errors","max_age":604800,"success_fraction":0.001,"failure_fraction":1}
<
* Connection #0 to host apis.roblox.com left intact
1 Like

@lexandstuff are you still seeing this or can you provide a timeline on when you saw this? We can investigate on our end.

2 Likes

Hi aksooggywall,

It appears to be still happening to us. I have only started testing the API yesterday and it was returning 500s each time I tried.

Again, it’s returning a 500 but it appears to be publishing the game successfully.

2 Likes

I have a question regarding future APIs and the Open Cloud concept. For a huge while now, I have been using the Roblox Web APIs (found on the GitHub post here) and was passing the cookie whenever needed. That being said, the API is rich of functions and endpoints to which we are able to utilize to basically manage the entire account. Considering that in the future Open Cloud will be replacing the Web APIs (or at least that is what I assume), do you plan to update the Web APIs for us to continue to utilize them but with the ability to pass an API key, or do you plan on using a brand new URL (for instance, the place publication one uses apis.roblox.com)? I do like the fact that the URLs are separated between different types of endpoints (chat, group, authentication, catalog, etc), so I am wondering if you are planning on porting the API to the already existing URLs and simply add the ability to pass in a header with the API key. That is all. Nevertheless, amazing update and I can’t wait for more API types to be released!

1 Like

Thanks for the feedback. Datastore APIs are WIP. Stay tuned!

3 Likes

Can you elaborate how you do it today? Using Discord bots?

1 Like

Hey Batimius, we want to enforce the same API standard for Open Cloud so it’s easier for you to learn and maintain. Therefore, the plan is to always use the same domain: apis.roblox.com and append each service afterwards.

3 Likes

That is understandable. Thank you for clarifying. If I may ask, do you plan on porting (almost) every already-existing API over to the Open Cloud, or only a limited selection? I am just wondering on whether Open Cloud will be a replacement of the web APIs or just another way to make (more secure) requests to the Roblox servers. Thank you!

2 Likes

Discord bots & Cookies, which is a pain as it’s obviously undocumented and ever-changing.


Another example of the pains is with studio CI/CI the new endpoints that haven’t been announced meant that we’re adding RBXID, and you bet we don’t know about what it does other than that it expires every 7 days…

2 Likes

On the topic of discord bots and previous APIs, as previously the biggest problem was people abusing the webhooks and spamming them with a lot of useless stuff, what measurements are you going to prevent this problem? A ratelimit on roblox side of things would slow things down, but people found a way to try and bypass it.

1 Like

@lexandstuff could you check again if you are running into the error and post time (including time zone) you hit the error. We’re trying to see if the issue is transitive or not and hoping. Thank you reporting and helping us understand the issue.

1 Like

I’m absolutely loving this update!
I do have some questions however…


1.) What limitations would this update include? (meaning request limits, etc.)
2.) How would developers create analytics with these new features?


…and just a suggestion but I would LOVE to be able to access in game datastores with the Open Cloud API!

Cheers to the team behind this update! :partying_face:

1 Like

Seems to be still happening. Timestamp included in the response in GMT (my time zone is +10 if it helps).

No one else is having the problem it seems, so maybe I’m doing something wrong? I’ll see if I can experiment a bit further today.

curl -i  'https://apis.roblox.com/universes/v1/$universe_id/places/$place_id/versions?versionType=Published' --header 'x-api-key: $api_key' --header 'Content-Type: application/octet-stream' --data-binary @file.rbxl
HTTP/2 500
date: Thu, 03 Feb 2022 00:25:10 GMT
server: Kestrel
content-length: 0
report-to: {"group":"network-errors","max_age":604800,"endpoints":[{"url":"https://ncs.roblox.com/upload"}]}
nel: {"report_to":"network-errors","max_age":604800,"success_fraction":0.001,"failure_fraction":1}

For group management, does it mean your players will go to your Discord server and interact with the bot to get accepted into your group? How do you change the ranks of your players today? Why is it important for you?

Can you elaborate more about your use case here? I guess you mean CI/CD right? What’s your workflow today?

1 Like

It’s the latter, though it’ll likely take a while. The current web APIs are not officially supported so we don’t recommend relying on them.

2 Likes

Can you talk more about the abusing scenario? Is it related to group management or other use cases?

1 Like

Hi, this update is just about permission control. If you meant throttle limit, it’ll be defined by each endpoint, e.g. place publishing API limits 10 requests per min.

Can you elaborate your use case for analytics?

1 Like

People would send multple requests to the platform “Discord” and basically “doss” discord’s servers, so they blocked it and now everybody is using proxys to get to Discord platform.

Will this be an issue with Open Cloud API because I can see that happening whenever people send multiple requests to datastore GET, POST, for data in their game? I’d would assume you would block the IP of that if they were spamming, but I’m not sure.

1 Like

We’ll have throttle limit based on the scale of the game so bad actors won’t be able to abuse the APIs. The bad actors’ account could potentially be moderated as well.

1 Like

It depends, as sometimes I want to use API keys to accept people into the group (IE, you join the game to prove you are a real person and then you get accepted), or I might want to use a bot to rank poeple like I actually do (/setrank username rank). The API is important, as for me and so many people we just use .ROBLOSECURITY, and they’re a pain…

Yep, I meant CI/CD. For a lot of developers include the big OSS rpojects, CI/CD is used to test the game/library. In a windows github actions, we’d use Roblox Studio Windows Installer to install, and then run-in-roblox. But in reality it’s not as simple as that, as because we can’t use your internal CLI (:pensive:), we then have to set .ROBLOSECURITY, .RBXID and juggle with the FFlags now due to the new auth endpoints.

1 Like