Rate Limits & Errors

Platform-wide rate limits, throttling behavior, and the error response shapes returned by the ROLLER Platform API.

Rate limits

SurfaceLimitKeyed byCooldown when exceeded
REST API600 requests / minuteIP address60 seconds
Data API (/data/*, /reporting/*)120 requests / minuteVenue60 seconds
POST /token60 requests / minuteIP address5 minutes
POST /reporting/bulk1 request per data setVenue + export type~6 hours
POST /reporting/bulk/revenue-activityBurst-limitedVenue24 hours

When a limit is exceeded the API returns:

HTTP 429 Too Many Requests
Retry-After: 60

Too many requests

Honor the Retry-After header before retrying. Because token requests are tightly limited, cache your access token (valid up to 24 hours) rather than requesting one per call.

📘

During maintenance windows the Data API may return 503 Service Unavailable with the message "We're currently doing some maintenance, please try again later." Build retry-with-backoff into reporting jobs.

Error responses

StatusWhenBody shape
400 Bad RequestInvalid parameters, dates, or model validation{ "Message": "<detail>" } or ASP.NET model-state dictionary
403 ForbiddenMissing/invalid scope, disabled key, decommissioned venue, staff API not enabled{ "Message": "Invalid scope" } or empty/plain-text body
404 Not FoundEntity doesn't exist for your authorised venueEmpty body
409 ConflictBusiness-rule validation failed{ "errors": [ { "name": "...", "message": "..." } ] }
429 Too Many RequestsRate limit exceededPlain text Too many requests + Retry-After header
503 Service UnavailableReporting maintenancePlain text message

Practical guidance

  • Treat 403 with Invalid scope as a configuration problem — verify your key's scoped permissions, don't retry.
  • Treat 409 payloads as user-correctable validation results; surface the message values.
  • Retry 429/503 with exponential backoff starting from the Retry-After value.
  • All endpoints operate on the venue resolved from your bearer token — there is no venue ID parameter. Use one token per venue.

Did this page help you?