uloggdDevelopers
Developer portaluloggd
Get startedResourcesArcade
Developer portaluloggdOverviewAuthenticationScopesRate limitsErrorsPaginationVersioning

Rate limits

Counted per key rather than per account, and reported on every response.

Allowances are counted per key, not per account. A noisy integration cannot spend the allowance its owner needs to use the website, and one runaway script cannot lock somebody out of their own account.

AllowancePer hourCovers
read600Every read outside the catalog.
write60Every create, change and removal.
catalog1000Catalog lookups, counted apart because they cost the catalog rather than the database.

Headers

Every response carries the numbers, including the ones that are allowed, so a client can slow down before it hits the wall rather than after.

X-RateLimit-Limit: 600
X-RateLimit-Remaining: 597
X-RateLimit-Reset: 1788568502

X-RateLimit-Reset is a Unix timestamp anchored to the oldest call in the window, not to now. It does not move away as you keep trying, so a client can wait for it once instead of backing off blindly.

Over the ceiling

{
  "error": {
    "code": "rate_limited",
    "message": "This key has used its allowance for now.",
    "retry_after": 118
  }
}

The other ceiling

Publishing a picture is counted twice: once against the key's write allowance, which counts requests, and once against twenty pictures an hour per account, which counts pictures. The second is the one that binds, because a picture costs processing and storage rather than a row.

Arcade's actions have limits of their own, per account and per app, in the Arcade limits table.

Scopes

What each permission covers, and the ones that are deliberately absent.

Errors

One shape, always, including on 500.

On this page

HeadersOver the ceilingThe other ceiling