Limits and quotas
What the platform caps, what your plan includes, what happens when a project reaches a limit, and how to stay within them.
Last updated
Every project has two kinds of limit. This page lists both, says what happens when a project reaches each one, and shows how to stay within them.
- Platform limits are fixed. They're the same for every project, whatever the plan, such as the 250-step cap on a workflow job or the 1,000-record maximum page size.
- Plan quotas are allowances that depend on your plan, such as database storage, file storage, monthly active users, workflow runs, daily emails and AI tokens. Each project has its own plan, so each has its own quotas.
This page doesn't quote plan allowances or prices, because they change. Your plan's numbers are always in the portal, and the tables below say which limits come from the plan.
See your usage#
In the Anythink dashboard
- Open My Anythink and select the project from Projects.
- Under the project's name, the progress bars show Database and Files (in GB), Monthly Active Users, Daily Emails (sent today), Workflow Runs (this month) and AI Token Usage (this month). A bar turns red when the project reaches the limit.
- For the whole billing account, open it and read Account Usage & Quotas on the Overview tab. It shows total spend, spend beyond your plans, and how many projects you have against your project limit.
Inside a project, the Anythink dashboard can also show quota gauges. Add a quota chart to a dashboard. See Dashboards and charts.
With the CLI
There's no usage command. anythink plans shows what each plan includes, so you can compare it with the bars in the portal.
With an AI assistant (MCP)
Usage is read in the portal. Your assistant can run plans to list what each plan includes. See Account, billing and projects.
How a limit shows up#
| Where you hit it | What you see |
|---|---|
| An API request | An HTTP status code and a message. The tables below give it for each limit. |
| A workflow | The job ends Failed, with a message in the job history. |
| An email or a push | Sending stops or is skipped. The table for the area says which. |
| AI chat | The reply stops with a message about your allowance. |
Read the status code first. A 429 means wait and retry. A 403 on a write usually means a quota. A 400 means the request itself was refused, and its message says why. See REST API reference for the full list of statuses.
API#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Requests | A per-minute cap for each project and client IP address. 2,000 per minute by default. | Per project and client IP, set per deployment | 429 with retry_after seconds. Read X-RateLimit-Limit for your value. |
| Page size | 1 to 1,000 records. Default 25. | Fixed | 400, with 'pageSize' must be between 1 and 1000. |
| Page number | 1 or more. | Fixed | 400, with 'page' must be greater than 0. |
| Relationship expansion | Four levels deep. | Fixed | Expansion stops at the fourth level. |
| Request body | 50 MB. | Fixed | The request is refused. |
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Don't hard-code the number. Read it from the header. See REST API reference.
Records and data#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Database storage | Your plan's database allowance, plus any bundles. | Per plan, per project | Writes (create, bulk create, import and update) return 403 with a message that says how much you're using. Reads still work. |
| Monthly active users | Your plan's allowance, plus any bundles. | Per plan, per project | Creating a user returns 400 with a message that the quota is reached. |
| Integer fields | Up to 2,147,483,647. Decimals take up to two places. | Fixed | Larger values aren't accepted. |
| Dashboard grid page | 25, 50, 100, 150, 200 or 250 records. | Fixed | Choose a smaller page size or go to the next page. |
| Kanban and calendar views | Load up to 1,000 records. | Fixed | Filter to the records you need. |
| CSV import file | 50 MB. | Fixed | The upload is refused. Split the file. |
| CSV import batches | 100 rows at a time. | Fixed | Not an error. The import runs in batches. |
See Records and views.
Files and storage#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| File storage | Your plan's file allowance, plus any bundles. | Per plan, per project | An upload that would take the project past its allowance returns 403 with a message that says how much you're using. |
| Size of one upload | 50 MB. | Fixed | 400, with File size exceeds maximum allowed size of 50MB. |
| File list page size | 1 to 1,000. Default 25. | Fixed | 400, with 'pageSize' must be between 1 and 1000. |
| File type and size on a field | Whatever you configure on the file field. | Per field | The upload is refused. |
Search#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Results per page | 1 to 100. Default 20. | Fixed | A message tells you the allowed range. |
| Reachable results | 1,000 per query for each entity. | Fixed | Later pages are empty. Narrow the query with q, e or fl. |
| Similar records | limit defaults to 10. |
Fixed | Not an error. |
| Index updates | Background. | Fixed | A change is searchable a moment after you save it. |
See Search.
Workflows#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Steps run per job | 250. | Fixed | The job ends Failed with a maximum-step-limit message. |
| Workflow runs | Your plan's monthly allowance, plus any bundles. | Per plan, per project | New jobs end Failed with a quota message. The run isn't counted. |
| Run Script | 30 seconds, 64 MB and 100,000 statements per run. | Fixed | The step fails. |
| Call An API | 30 seconds per request. Public http and https addresses only. |
Fixed | The step fails. |
| File downloads in a step | 50 MB and 30 seconds per file. | Fixed | The step fails. |
| Schedules | Five-field cron, UTC only, one-minute resolution. | Fixed | Not available below one minute. |
| Retries | None. | Fixed | A failed step stays failed. |
| Names | A workflow name is unique in the project and up to 255 characters. A step key is up to 255 characters. | Fixed | Choose a shorter value. |
A workflow API call returns 204 No Content because the job runs in the background. See Workflows, Step types and Test workflows and read job history.
Email#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Daily emails | Your plan's daily allowance, plus any bundles. Emails your workflows send count towards it. System emails don't. | Per plan, per project | The email isn't sent. Check the Daily Emails bar in the portal if emails stop arriving. |
| Attachments per email | 10. | Fixed | The step fails. |
| Attachment size | 25 MB in total for one email. | Fixed | The step fails. |
| Recipients per step | One address in to. |
Fixed | Use one step for each recipient. |
| Sender display name | 80 characters. | Fixed | Choose a shorter value. |
The daily allowance counts from the start of the day in UTC. See Email templates.
Push notifications#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Providers | FCM and web push. | Fixed | Not applicable. |
| Delivery volume | Devices are read in pages of 500. FCM sends up to 500 requests at once and web push 100. | Fixed | Large sends take longer. They aren't refused. |
| Retries | A failed FCM request that returned 429 or 5xx is retried up to three times with backoff. |
Fixed | The send is marked failed. |
| Step wait | Up to 30 seconds for delivery to finish. | Fixed | A slower send reports pending and carries on in the background. |
| Per-row sends | Ten at a time. | Fixed | Not an error. |
| Tap token | One hour from the send. | Fixed | After that, a tap can't start a workflow. |
data values |
Strings only. | Fixed | Not applicable. Send text values. |
| Provider limits | Set by Google and the browser push services. | Set by the provider | Payload size and rate limits follow the provider. |
See Push notifications.
AI#
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| AI token allowance | Your plan's monthly allowance, plus any bundles. Anythink AI mode only. | Per plan, per project | The chat stops with a message to buy a top-up bundle or switch to your own key. |
| Bring Your Own Key | Doesn't use the allowance. | Not applicable | Your provider's own limits apply. |
| Tool rounds per message | 10. | Fixed | The reply ends where it is. |
| Attachments | JPEG, PNG, GIF, WebP or PDF, up to 5 MB each and 5 per message. | Fixed | Use a smaller or supported file. |
See AI and MCP and MCP tool reference.
Payments#
AnythinkPay has no usage quota of its own. What it limits is how the model works.
| Limit | Value | Applies | When you reach it |
|---|---|---|---|
| Webhook delivery to your project | Retried up to five times, waiting 30 seconds, then 1, 2, 4 and 8 minutes. | Fixed | The delivery stops being retried. |
| Plan tier rank | A whole number from 1 to 100. | Fixed | Not applicable. |
| Billing | One payer for each subscription. No team or per-seat billing. | Fixed | Not applicable. |
| Apple in-app purchases | iOS only. Android and web use Stripe checkout. | Fixed | Not applicable. |
See How payments work and Plans and subscriptions.
Plan quotas#
These are the quotas that depend on your plan. Each applies to one project.
| Quota | Counted | Reset |
|---|---|---|
| Database storage (GB) | What the project stores now | Doesn't reset. Free space by deleting data. |
| File storage (GB) | What the project's files take now | Doesn't reset. Free space by deleting files. |
| Monthly active users | Active users in the billing month | Each billing month |
| Workflow runs | Billable jobs in the billing month | Each billing month |
| Emails per day | Workflow emails sent today | Daily, in UTC |
| AI tokens | Tokens used in Anythink AI mode in the billing month | Each billing month |
The size of each quota depends on the plan the project is on, so see your plan in the portal. Open the plan card for the allowance, or compare plans with anythink plans. A plan change takes effect immediately and updates the project's quotas.
Bundles add to a quota. They're one-off extras that don't expire, bought for the billing account. A project's allowance is its plan plus any bundles.
Stay within limits#
Page through data. Ask for a larger pageSize rather than many small pages, and use page to walk the rest. From the CLI, --all walks every page for you:
anythink data list tasks --json --all --limit 1000 > tasks.json
Batch writes. Use the bulk and import endpoints rather than one request per record. This keeps you under the request cap and is faster. See REST API reference and Records and views.
Read the headers. Check X-RateLimit-Remaining and slow down before it reaches zero. When you get a 429, wait retry_after seconds and retry.
Narrow queries. Filter instead of reading everything. For search, narrow with q, e or fl rather than paging past the first 1,000 results. See Filter operators.
Move heavy work into the background. A workflow runs as a background job, so a long task doesn't hold a request open. Keep steps short, split a long loop across workflows so no job runs more than 250 steps, and read more than one record in a single Read Data step. See Workflows.
Send fewer, better emails. Workflow emails count towards the daily allowance. Send one email to a person rather than one per event where you can, and keep attachments under 25 MB in total.
Keep an eye on usage. Check the project's bars in the portal before a big import or a campaign.
Add capacity without changing plan. Buy a bundle from the Bundles tab on the billing account, or Buy Capacity on a project. You need Admin or Owner access and a default payment method.
Cap extra spending. An Owner can set a Spend Cap under the account Overview. Choose Warn only to be notified and carry on, or Block charges to suspend service until the next cycle. The cap applies to usage on top of your plans.
Change plan. Move a project to a larger plan in the portal. The change is immediate. See Account, billing and projects.
Ask for higher limits#
If a project needs more than the plans offer, such as a higher request cap, more projects on a billing account or a custom arrangement, get in touch. Enterprise arrangements are agreed individually. Email support@anythink.uk with the project, the limit you're reaching and what you need.
Platform limits that are fixed, such as the 250-step cap on a workflow job, aren't changed per project.
Next steps#
- Account, billing and projects: plans, bundles and the spend cap
- REST API reference: rate-limit headers, paging and errors
- Workflows: steps, quotas and job history
- Search: paging and the 1,000-result limit
- Email templates: attachments and the daily allowance
- AI and MCP: the AI token allowance