Limits
Every limit in one place, and who can change it.
The Change it column says how to go past a limit:
- You — a setting you change yourself (the link shows where).
- Upgrade — a higher plan has a higher limit (plans and prices).
- Ask us — Totalum can raise it for your account or project: write to support with what you need and why.
- No — fixed for everyone.
Plans are named Free, Starter, Builder, Professional and Enterprise. All amounts are per calendar month (UTC) unless the row says otherwise.
The plan belongs to the account: one plan covers every project on it. Most limits below are counted per project; the ones counted for the whole account say so.
#Limits and safeguards
What stops runaway spending or traffic, in one list. The details and every number are in the sections below.
- Site requests: each published site answers up to about 3,000 requests per 10 seconds on Free, 30,000 on Starter, Builder and Professional and 60,000 on Enterprise; above it that site answers
429for a few seconds (Site requests). - Built-in features per minute: on Free, Starter and Builder the per-minute amounts are shared by all the account's projects; on Professional and Enterprise each project has its own (Built-in features).
- Emergency stop, per project: a project that spends more credits in one hour than its plan allows (40 on Free up to 4,000 on Enterprise), or passes a 5-minute ceiling of site requests or database rows read or written, is paused on its own — the account's other projects keep running (Emergency stop).
- Account spending caps: everything the account spends in one hour and in 24 hours is capped on every plan (Enterprise also per calendar month); past a cap every project of the account pauses until the spend is back under it (Account spending caps).
- Project monthly budgets: each project has a monthly development budget and a monthly infrastructure budget that you set. At the development budget new prompts and paid builder actions are refused (
403 PROJECT_CREDIT_LIMIT_REACHED) and a running prompt stops after at most 5 more credits; at the infrastructure budget the app's built-in features (AI, e-mail, file uploads, web scraping…) are refused while the site and its database keep running, and at the budget plus a reserve (10 % of it, at least 5 credits) only that project is paused: its site and preview show a paused page and its API keys answer429 PROJECT_CREDIT_LIMIT_REACHED. Both reset on the 1st at 00:00 UTC (Monthly budgets). - Unusual database usage: a sudden jump in a project's database usage is charged as usual and alerts you once a day (e-mail, chat,
project.usage_spikewebhook); it is not paused on its own, so set an infrastructure budget on every project (Unusual database usage). - Negative balance: at a balance of 0 or below the built-in features stop while the sites keep serving; the sites pause at −30 on Free and, on paid plans, at once at −400 to −2,000 depending on the plan; on every plan, at −300 you get an e-mail and the sites pause 48 hours later unless you add credits. They come back at a balance of 0 or more (Balance and suspension).
- Monthly fees: 3 credits a month for each project on a paid plan that was published and online in the month, and 3 credits a month for each active custom domain (adding the domain costs 4 credits once) — the handbook has every charge.
#Account
#Plan limits
| Limit | Free | Starter | Builder | Professional | Enterprise | Change it |
|---|---|---|---|---|---|---|
| Projects at once | 2 | 10 | 50 | 300 | Unlimited | Upgrade · Ask us |
| New projects | 1 a minute | 5 a minute | 10 a minute | 30 a minute | 100 a minute | Ask us |
| Prompts, all projects together (a new project counts as one) | 1 a minute | 5 a minute | 10 a minute | 30 a minute | 100 a minute | Ask us |
| Prompts running at once, all projects together | 2 | 10 | 20 | 60 | 200 | Ask us |
| API and MCP requests per API key | 10 a second | 100 a second | 100 a second | 100 a second | 1,000 a second | Upgrade |
| People on the account (you included) | 1 | 3 | 5 | 10 | 500 | Upgrade |
| Domains bought on Totalum, held at once | – | 3 | 10 | 50 | Unlimited | Upgrade |
- A deleted project frees its slot at once. Creating too fast answers
429 RATE_LIMIT_EXCEEDED; wait a moment and retry. - New projects and prompts share one per-minute allowance: a prompt over it, or over the prompts running at once, answers
429 RATE_LIMITEDwithRetry-After; nothing is started, so send it again after that many seconds. A prompt stops counting as running as soon as it finishes, fails or is stopped. If your account has a higher new-project rate from us, its prompt limits rise with it (running at once = twice the per-minute figure). - A key over its requests per second answers
429 RATE_LIMITEDwithRetry-After(counted each second, Enterprise over 10 seconds: spread a burst over a few seconds). - A pending invitation holds a seat until it is accepted, revoked or expires.
- Code editing, source download, GitHub, custom domains and mobile apps need a paid plan; reading your code and connecting Figma work on every plan.
- The API and MCP work on every plan. Any paid action needs a balance of at least 1 credit (reads and deleting a project always work).
- The API key the platform gives an app-builder project (handbook): 600 requests a minute and 300 prompts an hour (Ask us); its project creates count against the account's per-minute rate above.
#Account spending caps
To protect your balance from a runaway app or script, the whole account pauses when everything it spends — prompts, publishes and every project's running app — passes a cap:
| Window | Free | Starter | Builder | Professional | Enterprise | Change it |
|---|---|---|---|---|---|---|
| One hour (UTC) | 120 credits | 360 credits | 1,200 credits | 3,600 credits | 10,000 credits | Ask us |
| Last 24 hours | 300 credits | 900 credits | 3,000 credits | 9,000 credits | 50,000 credits | Ask us |
| Calendar month (UTC) | – | – | – | – | 500,000 credits | Ask us |
While your balance is 0 or below, the caps are at most 100 credits an hour and 500 a day. The pause lifts by itself once the spend is back under the cap and the balance is above 0. Your caps are in Get Account Usage (account.accountCaps).
#Balance and suspension
Hosting, the database and other infrastructure keep running when the balance reaches 0, so a balance can go below 0. Then:
| When | What happens | Change it |
|---|---|---|
| Balance 0 or below | The built-in features (AI, e-mail, files, scraping…) of every project are refused until you add credits; sites keep serving | No |
| Free plan, balance −30 or below | Every site of the account is paused until the balance is back to 0 | Upgrade |
| Balance −300 or below | You get an e-mail; 48 hours later every site is paused unless you add credits | Ask us |
| Paid plan, balance −400 (Starter), −600 (Builder), −900 (Professional) or −2,000 (Enterprise) | Every site is paused at once until the balance is back to 0 | No |
| Balance below 0 for 90 days in a row | Every site is paused; you are warned by e-mail 7 days before | Ask us |
Nothing is deleted. Add credits (or turn on auto-recharge) and the sites come back by themselves within a minute.
#Project
#Monthly budgets
Every project has two monthly caps, in credits: development (prompts, publishes and project actions) and infrastructure (what the running app spends). New projects get:
| Created from | Development | Infrastructure | Change it |
|---|---|---|---|
| The platform | 50,000 credits | 10,000 credits | You |
| The API or MCP | 5,000 credits | 300 credits | You |
Set them at creation (creditLimits in Create Project) or later in the project's Usage & limits or with Update Credit Limits. You can also switch any built-in feature off or give it its own budget (Feature Limits).
What counts: development = the AI agent's prompts and the project's paid builder actions (publishes, rebuilds, restores, exports, code edits…); infrastructure = what the running app uses (hosting, database and every built-in feature). Get Credit Limits shows both for this month; List Projects at Their Limit lists the projects that reached one.
Reset: the 1st of each month, 00:00 UTC.
At the development budget: a new prompt or paid builder action answers
403 PROJECT_CREDIT_LIMIT_REACHEDand costs nothing. A prompt already running when it crosses the budget is stopped: it finishes the step in progress and wraps up so that what it built works; it can go past the budget by that step plus at most 5 credits, all charged.At the infrastructure budget, two steps (the budget counts hosting, the database, files, AI, e-mail and every other built-in feature):
- When this month's infrastructure spend reaches the budget, the app's built-in features answer
429 FEATURE_LIMIT_REACHED: AI, e-mail, file uploads, web scraping and search, browser sessions, document scanning, PDFs and screenshots, speech, real-time rooms, vectors, connected accounts, and creating or changing scheduled jobs. The site, its database, hosting and stored files keep running. - Hosting and the database still use credits. When the spend reaches the budget plus a reserve of 10 % of the budget (at least 5 credits: a budget of 300 pauses at 330, one of 20 at 25), only that project is paused: its site and preview show a paused page and its API keys answer
429 PROJECT_CREDIT_LIMIT_REACHED.
Raising the budget re-checks both steps at once: the pause lifts when the new budget plus its reserve is above this month's spend, and the built-in features come back when the new budget is above it. Removing the budget (
null) lifts both, and both end at the start of next month (UTC). The reserve is fixed.- When this month's infrastructure spend reaches the budget, the app's built-in features answer
Changing a budget applies from the next prompt (a running prompt keeps the one it started with).
Values: a budget is a number above 0, or
nullfor none;0is refused. Infrastructure budgets (the app's and the development environment's) are applied as the whole number at or above the value, at least 1 (0.4→ 1,12.5→ 13); the development budget exactly as set.Notice: the first time a project reaches a budget in a month you get the
project.credit_limit.reachedwebhook and an e-mail, once per project, budget and month; the infrastructure budget sends one at each step (stage:builtins_stopped, thenproject_paused, withpauseAt).
#Development environment budget
Every project's development environment — the preview, the development database, the preview's scheduled jobs and the built-in calls made from the preview — has its own monthly budget: 100 credits unless you change it (maxDevInfrastructureCreditsPerMonth in Update Credit Limits or the project's Usage & limits; null = none). It is part of the infrastructure spend, and protects you from a preview job that keeps rewriting data.
| Limit | Value | Change it |
|---|---|---|
| Development environment, per project | 100 credits a month | You |
When it is reached, only the development environment stops: the preview shows a paused page, its scheduled jobs are skipped and its built-in calls answer 429 DEV_INFRASTRUCTURE_LIMIT_REACHED. The published site, its database and its scheduled jobs keep running. You get a line in the project's chat, and once a month the project.credit_limit.reached webhook (category: "development_infrastructure", stage: "dev_stopped") and an e-mail. Your next prompt resumes it with one more full budget; raising the budget above this month's spend, removing it, or the next month (UTC) resumes it too.
#Built-in features
What each project's app may use. Each cell is per month · per minute.
| Feature (unit) | Free | Starter | Builder | Professional | Enterprise |
|---|---|---|---|---|---|
| AI text, chat, vision (calls) | 300 · 10 | 250,000 · 300 | 250,000 · 300 | 250,000 · 300 | No limit · 600 |
| AI embeddings and reranking (calls) | 1,000 · 10 | 1,000,000 · 600 | 1,000,000 · 600 | 1,000,000 · 600 | No limit · 1,200 |
| AI images (calls) | 20 · 3 | 10,000 · 60 | 10,000 · 60 | 10,000 · 60 | No limit · 120 |
| AI video (calls) | 5 · 2 | 500 · 10 | 500 · 10 | 500 · 10 | No limit · 30 |
| Speech to text, text to speech (calls) | No limit · 5 | No limit · 120 | No limit · 120 | No limit · 120 | No limit · 300 |
| E-mail (recipients) | 100 · 20 | 5,000 · 60 | 50,000 · 120 | 500,000 · 300 | No limit · 600 |
| Web scraping (calls) | 100 · 10 | 5,000 · 60 | 25,000 · 120 | 100,000 · 300 | No limit · 600 |
| Web search (calls) | 100 · 10 | 2,000 · 60 | 10,000 · 120 | 50,000 · 300 | No limit · 600 |
| Cloud browser (session minutes · actions) | 60 · 30 | 600 · 60 | 3,000 · 120 | 15,000 · 300 | No limit · 600 |
| Document scan (pages) | 35 · 10 | 1,000 · 30 | 5,000 · 60 | 25,000 · 120 | No limit · 300 |
| PDF (calls) | 200 · 20 | 5,000 · 60 | 20,000 · 120 | 100,000 · 300 | No limit · 600 |
| Screenshots (calls) | 100 · 10 | 2,000 · 60 | 10,000 · 120 | 50,000 · 300 | No limit · 600 |
| Vector search (calls) | 10,000 · 60 | 200,000 · 300 | 1,000,000 · 600 | 5,000,000 · 1,200 | No limit · 3,000 |
| Connected accounts: links, reads and actions on your users' Google, Microsoft, Slack… accounts (calls) | 2,000 · 30 | 20,000 · 60 | 100,000 · 120 | 500,000 · 300 | No limit · 600 |
| Real-time (room minutes · new connections) | 1,000 · 30 | 20,000 · 120 | 100,000 · 300 | 500,000 · 600 | No limit · 1,200 |
| File uploads (files) | 2,000 · 30 | No limit · 1,200 | No limit · 1,200 | No limit · 1,200 | No limit · 1,200 |
| Payments calls | No limit · 60 | No limit · 300 | No limit · 600 | No limit · 1,200 | No limit · 3,000 |
- Change it: Upgrade. Monthly amounts are per project. On Free, Starter and Builder the per-minute amounts are shared by all the account's projects (except file uploads); on Professional and Enterprise each project has its own.
- Over a limit, the app's call answers
429withRetry-After(per minute) orerrorDetails.resetsAt(per month). Every call also costs credits, so the budgets above usually stop spending first. - AI text answer length: up to 4,096 tokens per call on Free, 32,768 on Starter, Builder and Professional; no ceiling on Enterprise (32,768 when the call does not ask for one). A call that names no length gets that amount or the model's own maximum, whichever is lower. Upgrade.
- Cloud browser: 1 session open at a time on Free, 3 on paid plans (Ask us); a session lasts up to 15 minutes on Free, 60 on Starter, 180 on Builder and 360 on Professional and Enterprise (Upgrade).
- Web scraping: 1 call at a time per project; a call waits in a queue for its turn (Ask us).
- All built-in calls together: 100 a second per project (Ask us).
- Per visitor of the published site: 20 paid built-in calls a minute (AI, web, browser, screenshots), so nobody can spend your credits by calling a public AI page in a loop — ask the agent to change it (You); and 5,000 requests a minute, adjustable from 10 to 60,000 on paid plans with Update Rate Limit (You).
#Site requests
Each published site answers up to about this many requests, counted over 10 seconds; above it the site answers 429 Too many requests with Retry-After: 10, and nothing else of the project is affected:
| Free | Starter | Builder | Professional | Enterprise | Change it |
|---|---|---|---|---|---|
| 3,000 per 10 s (300 a second) | 30,000 per 10 s (3,000 a second) | 30,000 per 10 s | 30,000 per 10 s | 60,000 per 10 s (6,000 a second) | Upgrade |
#Emergency stop
A project whose app suddenly uses far more than normal is paused: its site shows a paused page, its built-in calls answer 429 PROJECT_PAUSED_RUNAWAY, and you get an e-mail and the project.kill_switch.fired webhook. It trips on any of:
| Measured | Free | Starter | Builder | Professional | Enterprise |
|---|---|---|---|---|---|
| Credits spent by the app in one hour (UTC) | 40 | 120 | 400 | 1,200 | 4,000 |
| Requests to the site in 5 minutes | 10,000 | 400,000 | 400,000 | 1,200,000 | 3,000,000 |
| Database rows written in 5 minutes | 200,000 | 5 million | 5 million | 15 million | 60 million |
| Database rows read in 5 minutes | 50 million | 1 billion | 1 billion | 3 billion | 15 billion |
It also trips on unusually costly use of built-in features within one hour. Prompts never count, nor does the hour's single largest call (one long video paid up front).
- Halfway: once the app has spent half of its hourly credits above, its image, video and speech AI calls answer
429 AI_MEDIA_PAUSED_THIS_HOURuntil the hour ends; text AI and everything else keep working. - Lifting it: the pause lifts by itself after 24 hours. Fix the cause, then lift it at once with Bring it back online in the project's workspace or with Release Runaway Pause (free, also clears the halfway pause).
- Change it: Upgrade. The thresholds are not raised per project; releasing the pause is in your hands.
#Unusual database usage
When a project's database suddenly uses far more than normal — its credits for the UTC day so far reach 3 × its usual day (the average of its last 7 days, once it has 3 days of history), or one hour reaches 10 × its usual hourly rate, and at least 5 credits above normal — you are alerted, once per project and UTC day:
- an e-mail, a line in the project's chat, and the
project.usage_spikewebhook ({ projectId, metric, value, normal, window, usedThisMonth, limit }).
The usage is charged as usual and nothing is paused by it: it continues until the project reaches its monthly infrastructure budget (then its built-in features stop, and at the budget plus its reserve the project is paused, see Monthly budgets) or your account runs out of credits. The usual cause is a scheduled job or a sync that rewrites whole tables on every run: ask the agent to update only what changed and to run it less often.
We recommend setting a monthly infrastructure budget on every project (in the project's Usage & limits, or with Update Credit Limits): it is what stops runaway usage.
#Database
Each project has a development and a live database (SQL, SQLite on Cloudflare D1).
| Limit | Value | Change it |
|---|---|---|
| Size, per database | 10 GB | Move to Turso (Builder and above) |
| Queries a minute | Free 300 · Starter 20,000 · Builder and above no limit | Upgrade |
| Writes a minute | Free 120 · Starter 6,000 · Builder and above no limit | Upgrade |
| One row, string or value | 2 MB (keep files in file storage) | No |
| Columns per table | 100 | No |
| Bound parameters per query | 100 | No |
| SQL statement | 100 KB | No |
| Query duration | 30 s | No |
| Queries per request | 1,000 | No |
| Throughput | About 300 queries a second per database copy (reads are spread over copies near visitors) | Move to Turso |
| Point-in-time restore | Any minute of the last 30 days, every plan | No |
| Nightly backups of the live database | Paid plans: 7 daily, 4 weekly, and 3 (Builder), 6 (Professional) or 12 (Enterprise) monthly | Upgrade |
How to write code that fits them: Design for the Limits.
#Files and storage
| Limit | Free | Starter | Builder | Professional | Enterprise | Change it |
|---|---|---|---|---|---|---|
| Largest file the app can upload | 50 MB | 500 MB | 500 MB | 500 MB | 1 GB | Upgrade |
| Storage per project (the project's uploaded files) | 1 GB | 100 GB | 100 GB | 100 GB | 10 TB | Upgrade |
Over the storage limit an upload answers 429 STORAGE_LIMIT_EXCEEDED. The scheduled database backups are billed as file storage (rates) but do not count against this limit. Files uploaded through the API: 20 MB each and 300 a minute.
#Real-time
| Limit | Free | Starter | Builder | Professional | Enterprise |
|---|---|---|---|---|---|
| Live rooms per project | 5 | 1,000 | 1,000 | 1,000 | No limit |
| Connections at once per project | 20 | 5,000 | 5,000 | 5,000 | No limit |
| Messages a minute per connection | 120 | 600 | 1,200 | 1,800 | 3,600 |
| Message size | 32 KB | 128 KB | 256 KB | 1 MB | 4 MB |
Change it: Upgrade. One room handles about 1,000 messages a second in total.
#Scheduled jobs
| Limit | Free | Starter | Builder and above | Change it |
|---|---|---|---|---|
| Jobs per project and environment | 2 | 10 | 20 | Ask us (past 20) |
| Shortest interval | 1 hour | 1 minute | 1 minute | Upgrade |
A job pauses after 3 failed runs in a row, unless it sets its own number.
#Domains
| Limit | Value | Change it |
|---|---|---|
| Custom domains per project | 1 (any paid plan, on every project) | No |
| Buying domains | Starter and above; at most 5 purchases a day | Upgrade |
| Domains held at once | Starter 3 · Builder 10 · Professional 50 · Enterprise unlimited | Upgrade |
| Very expensive (premium) domains | Not offered | No |
| Renewal | Charged to your card 30 days before expiry (retried 21 and 15 days before). Not paid 14 days before expiry → automatic renewal is switched off; you can still renew by hand until the expiry | You |
A domain's first year can cost less than its yearly renewal: both prices are shown before you buy.
#Agent, prompts and code
| Limit | Value | Change it |
|---|---|---|
| Prompt | 40,000 characters, up to 10 attachments | No |
| Multi-prompt batch | 50 prompts | No |
| One prompt's run | Up to about 40 minutes, then the agent wraps up and saves its work | Ask us |
| At the same time, per project | One prompt, one publish, one restore or import | No |
| Custom MCP servers for the agent | 10 per project | No |
| Secrets | 500 per project, each value up to 10,000 characters | No |
| Files read / written through the API | 1 MB read, 512 KB written; 300 writes a minute | No |
| Export / import | 5 exports an hour per project; imports 1 a minute and 5 an hour | No |
| Mobile app builds | Paid plans; 1 build per project per hour, queued when others are running (up to 60 minutes) | No |
| Project groups | 3,000 per account, 100,000 projects per group | No |
All API request limits: Errors & Limits.
#Idle projects
| Plan | What happens | Change it |
|---|---|---|
| Free | After 60 days without use the project sleeps and its site goes offline until a prompt or a server restart wakes it (e-mails 7 days and 1 day before). After 180 days it is deleted (e-mails 30, 7 and 1 days before, with a download link). | Upgrade |
| Paid plans | Never put to sleep or deleted for inactivity | — |
Any project wakes from a short idle period by itself on its next prompt.
