Skip to main content
Rollup limits how fast each device and each app can call its server, and how many model tokens each app can use in a month. Search and indexing on the iPhone are never limited by these.

Rate limits

Limits count in 5-minute windows. A request over a limit gets 429 rate_limited, which is retryable: the SDK throws RollupError with code rateLimited, and retryAfter when the server says how long to wait. Wait and try again.

Per device

A query or profile usually takes a few steps.

Per app

These are shared by every install of your app. Rollup sets these per app. Your app’s page in the dashboard shows its current limits. If your app needs more, ask Rollup to raise them.

Monthly token budget

Each app has a budget of model tokens per month: the input and output tokens of every query and profile step, across all installs. The default is 5,000,000 tokens per calendar month in UTC. Before each step, Rollup checks the tokens your app has used this month. Once they reach the budget, query and profile get 429 app_quota_exceeded, which is not retryable, with a message naming the date the budget resets: the first day of the next month, UTC. A step that is already running finishes, so the total can go slightly over the budget. Search, indexing, place data and everything else keep working. Your app’s page shows this month’s tokens against the budget, and Rollup can raise the budget.

Usage

Rollup counts your app’s usage per day in UTC and shows it on your app’s page:
  • devices registered,
  • place data and geography requests,
  • query steps and profile steps,
  • input tokens and output tokens,
  • searches, as reported in the SDK’s run reports.
Usage names no device and no person. There is no billing.

Run reports

After each indexing run, the SDK sends a report that your app’s page summarizes: the SDK and iOS versions, the device model, what started the run, how it ended, how long it took, how many photos it indexed and left, peak memory, bytes downloaded, the number of searches, and the time and outcome of each stage, with error codes when something failed. A run the app did not survive is reported the next time it launches. Reports contain no photos, labels, places, text or questions, and no device identifier. Rollup keeps them for 90 days.