[IMPORTANT] Introducing Rate Limits to PlayCanvas

Quick update: To keep things running smoothly for everyone, we’re enforcing some rate limits. Most of you won’t notice a thing. But if you’re hitting us with a ton of requests in a short time, you might bump into these limits.

There is a new endpoint to check limits: https://playcanvas.com/api/ratelimits. It returns a JSON with the next values:

  • normal - API rate limit, 120-240 RPM
  • strict - heavy operations, project import, creating a project etc. 5-10 RPM
  • assets - asset upload/update, 60-120 RPM
  • post - some post/put requests, e.g. user thumbnail upload etc, 30-60 RPM
  • download - asset download, 5000-10000 RPM

playcanvas-sync is already updated to follow rate limits, so please update it.

This will kick off today, 28th September.

Got questions or thoughts? Drop them below or shoot us a message!

3 Likes

Hi @yak32,

That’s great to hear! May I ask if these limits affect editor → database calls?

For example we have a GLB parser that can scan glTF custom properties and automatically set up a game level with components, scripts and all custom properties required. It may iterate through a big list of entities (~100-1000) and do several .set() calls per entity.

Are these rate limits / is there a chance we have trouble importing our levels from now and on?

hi @Leonidas,

I’ve updated original post with sample rate limits and you potentially may hit the limit of asset creation (30-60 RPM). Please try to execute your stuff now and if you hit the limits please inform us. Also you may check how upload limiter is implemented in playcanvas-sync - https://github.com/playcanvas/playcanvas-sync/blob/main/src/api-client.js.

Thanks @yak32!

I’ve just re-run our script and it does execute with no trouble.

May I ask running something like entity.set('name', 'New Name') as an editor request, in which category limit does it fit to?

My process at the moment is to drop a folder full of glb and json files into playcanvas and let it unpack them. This was fine earlier (28 files in total), but now the rate limits have started I am unable to drop them all in at once and have to iterate through them hoping that they upload correctly. When they don’t upload there isn’t an error message shown, only an empty glb folder that is created.

Not ideal for us as we’re MVP on Monday

hm, 28 files should be fine, let me have a look

I’ve just tried to drag and drop 23 items - a mix of json files and glb files - and of the 11 glb files 4 are now just empty folders.

These upload correctly if added individually.

These requests don’t hit an API. They are updating data over OT server via WebSockets.

1 Like

Any update on this?

still testing, hopefully will have something today. btw, could you share your set of data to reproduce the issue?

we deployed an update, please check your issue again

Thanks. I’ll test this when I can.

Yep - this issue is still happening. How can I share my files with you securly?

strange, I just tried to upload 28 glb files and it successfully uploaded and converted. I’ve sent you a message, please check it there