Skip to content
Docs · Start here

Limits & scaling

Every plan number and technical limit in one place, what happens at each one, and how each service behaves as an app grows to millions of users.

View as Markdown
All topics
On this page

A plan is bought by one workspace, can cover several of its owner's workspaces (Pro 3, Team 10 and Scale 25), and limits how many things you create and the monthly allowances. Free limits are per person, across all your free workspaces. A paid plan's limits are shared across the workspaces it covers. A Pro subscription from before these plans keeps what Pro included then (100 GB of files, 10 GB of database storage, 5,000 emails a month, $10 of AI usage a month included and server apps with no hourly charge), shared across the workspaces it covers, until we move it to Pro as listed here; we email the owner first. The technical limits below apply on every plan. File storage, database storage and build minutes have an amount included per plan; bandwidth and function traffic have no plan quota yet — they are listed as not metered.

Plans

HobbyProTeamScale
Price (per subscription)Free$20 a month$100 a month$500 a month
Workspaces covered (limits shared)Per personUp to 3Up to 10Up to 25
Usage creditNoneNone$20 a monthNone
AI usagePay as you go from your balancePay as you go from your balancePay as you go from your balancePay as you go from your balance
Emails (rolling 30 days)1002,00010,000100,000
Custom sending domains1102550
Apps and sites (projects)320100500
Server appsPro and upIncludedIncludedIncluded
Functions550100100
Databases (10 GB each)11050100
Storage buckets220100500
Vector collections11025100
Memory stores220100500
Agents220100500
Auth pools11050100
Payment accounts11050100
Media assets (videos and live channels)Pro and up1005001,000
Repos550200500
Your own domains connected220100500
Team members31025100
Workspaces you can own2102050
AI requests a minute606002,0006,000
Agent runs at once151020

Past a count the create call answers 402 with code plan_limit, the limit and the current count. On Hobby the count is the total across every free workspace the owner owns (the answer carries shared_workspaces); on a paid plan it is the total across the workspaces its subscription covers (the answer says how many share it), except team members, which are counted per workspace. Upgrading a free workspace, or covering it with a plan you pay for, moves it to that plan's limits. Server apps are on Pro and up, and videos and live channels on Pro and up: on a plan without them the deploy or create answers 402 plan_limit with required_plan, before anything is built or created. Server apps that were already live on a free workspace when server apps moved to Pro keep running and can be redeployed. Nothing existing is deleted when a plan changes; only new creates are refused. Enterprise is arranged with us, from $2,000 a month, and is not bought online (POST /api/billing and checkout answer 409 contact_sales with contact_url); workspaces already on Enterprise keep it, at the price they pay.

Usage included per plan

Measured daily (sizes, and server-app awake time as the runner counts it) and per deploy (build minutes), and shown on Billing → Usage, workspace by workspace on Billing → Workspaces. On a plan that covers several workspaces their use adds up against one amount, and the paying workspace's owner is emailed at 80% and at 100%.

UsageHobbyProTeamScalePast it
File storage1 GB50 GB250 GB1,000 GBHobby: new uploads are refused (402 usage_limit). Pro, Team and Scale: $0.05 per GB a month, charged daily from the paying workspace's Balance (Team's $20 monthly usage credit pays first); new uploads paused (402 usage_paused) only while a charge cannot be paid: the Balance is empty or smaller than the charge, or the spending limit is reached.
Database storage0.5 GB5 GB25 GB100 GBHobby: database writes that add data (reads and deletes still work) are refused (402 usage_limit). Pro, Team and Scale: $1.00 per GB a month, charged daily from the paying workspace's Balance (Team's $20 monthly usage credit pays first); database writes that add data (reads and deletes still work) paused (402 usage_paused) only while a charge cannot be paid: the Balance is empty or smaller than the charge, or the spending limit is reached.
Build minutes (per calendar month, UTC)100 minutes1,000 minutes5,000 minutes10,000 minutesHobby: new deploys are refused (402 usage_limit). Pro, Team and Scale: $0.01 per minute, charged daily from the paying workspace's Balance (Team's $20 monthly usage credit pays first); new deploys paused (402 usage_paused) only while a charge cannot be paid: the Balance is empty or smaller than the charge, or the spending limit is reached.
Server-app awake time (per calendar month, UTC)not chargednone includednone includednone includedHobby: not charged. Pro, Team and Scale: $0.05 per awake hour, charged daily from the paying workspace's Balance (Team's $20 monthly usage credit pays first); new deploys paused (402 usage_paused) only while a charge cannot be paid: the Balance is empty or smaller than the charge, or the spending limit is reached.

Database storage past the limit holds only statements that add data (INSERT, UPDATE, REPLACE, UPSERT, CREATE, ALTER), and a batch that contains one is held whole: reads and DROP sent on their own always run, and so does DELETE unless the database has triggers (a trigger can add data when rows are deleted: drop it first), so you can clean up. Database sizes are measured again daily, so room you free counts from the next measurement. Each single database still stops at the engine's 10 GB.

Not metered or capped yet

  • Requests and bandwidth to sites and server apps, and traffic to function URLs.
  • Errors and latency are not measured.

Databases

LimitValue
Size of one database10 GB
One row or value2 MB
One SQL statement100 KB
Bound parameters per statement100
Time per query30 seconds
Columns per table100
Statements in one batch100
Query requests per workspace600 per 5 minutes (a batch counts once)

Deploys and server apps

LimitValue
One upload (folder, tar.gz or JSON files)25 MB compressed, 40 MB unpacked
One file10 MB
Files in one upload5,000
Files a static site serves500
Git repository download20 MB compressed, no file-count cap
Build timeabout 13 minutes
Server appone container per app (about a quarter of a CPU and 1 GB of memory), no extra copies
Server app sleepafter 15 idle minutes; disk wiped on sleep and on every deploy
Awake server apps40 across the whole platform today; sleeping apps do not count

Functions, storage and repos

LimitValue
Function codeone ES module, at most 200 KB, no npm install
CPU time per request (functions and worker.js programs)50 ms on Hobby, 1 second on Pro, 2 seconds on Team and 10 seconds on Scale; waiting on the network or a database does not count. A plan change applies on the next deploy
Function deploysone deploy, rollback or delete of a function at a time: another sent meanwhile answers 409 deploy_in_progress
Test invokefirst 16 KB of the response, 10-second timeout
One storage upload5 GB (one signed PUT); a link with size is at most 1 GB on Hobby, all the file storage it includes
Object key1,024 characters
Download link lifetime60 seconds to 7 days (default 15 minutes); viewers and read-only keys at most 15 minutes
Upload link lifetimeat most 15 minutes (a longer expiresIn is shortened); size, optional on every plan, locks the link to the file's exact length
Objects per listing page1,000 (default 100), with a cursor for the next page
Repo push over REST500 files, 10 MB per file, 25 MB per push

AI, vectors, memory and agents

LimitValue
Gateway input200,000 characters (system prompt plus messages), up to 500 messages
Gateway outputmax_tokens up to 8,192 (2,048 on the Llama edge models); default 1,024
AI requests a minute60 hobby, 600 pro, 2,000 team, 6,000 scale — chat and embeddings counted separately
What one AI request may reserve$2 hobby, $10 pro, $10 team, $10 scale (402 ai_request_too_large)
Embeddings per call100 inputs
Vector dimensions384, 768 (default), 1,024 or 1,536
Vectors per upsert1,000 (100 when sending text to embed)
Vector query topK100, or 50 with full metadata or values
Memory value / key1 MB / 512 characters
Conversation window1,000 most recent messages per scope
Memory quotashobby: 10,000 items per store, 25 MB in all per workspace; pro: 100,000 items per store, 250 MB in all shared by the workspaces it covers; team: 250,000 items per store, 500 MB in all shared by the workspaces it covers; scale: 1,000,000 items per store, 1 GB in all shared by the workspaces it covers; every kind of store counts, and a write past them gets 402 plan_limit
Agent steps1–24 per run (default 8)
Agent runs6 a minute per workspace; input up to 32,000 characters
Agent schedules and eventsa schedule runs at most every 10 minutes; a scheduled, event or background run starts within about 10 minutes and has 5 minutes to finish; a visitor's chat message has 60 seconds
Media uploadvideo only, up to 1 hour

Mail, payments and auth pools

LimitValue
Email per callone recipient; text and/or HTML
Email quota100 hobby, 2,000 pro, 10,000 team, 100,000 scale per rolling 30 days; a Pro subscription from before these plans keeps 5,000; optional daily cap of your own
Custom sending domains1 hobby, 10 pro, 25 team, 50 scale (pending and failed domains count until removed)
Checkout amount$0.50 to $1,000,000, USD, one-time
Checkout linksingle use, expires after 24 hours
Earnings hold7 days per payment before it can be withdrawn
End-user password8–256 characters; 10 wrong tries lock the account for 15 minutes
End-user tokenHS256 JWT, valid 7 days unless the pool sets a shorter tokenTtl (5 minutes to 7 days)
End-user refresh tokenends after 60 days without a refresh, and a year after sign-in; 20 signed-in devices per user
Browser sign-up10 per IP an hour (an IPv6 address counts by its /64), 600 per pool an hour
Sign-up from your server600 per pool an hour, counted apart from the browser's; with ip, that address is also held to the browser's 10 an hour
Push notifications100 users and 500 devices per send, 600 sends an hour per pool; 20 devices per user
Codes asked for from the browser50 an hour and 300 a day per pool; at most 20% of the email quota per workspace (20 / 400 / 2,000 / 20,000 per 30 days)

Rate limits

Every 429 carries code, a Retry-After header and retry_after seconds in the body. API quotas also send X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Back off for Retry-After seconds and try again.

WhatLimitCode
AI chat60 / 600 / 2,000 / 6,000 a minute (hobby / pro / team / scale)ai_rate_limited
Embeddings, memory search, text sent to vectorsa separate bucket of the same sizeai_rate_limited
Database queries, vector calls, memory calls, video status checks600 calls per 5 minutes per workspace, shared (a batch of statements is one call, and every memory call counts, key-value and conversation ones included). All workspaces together also share a platform ceiling lower than that on the calls that reach the edge, which can refuse calls firstrate_limited
Agent runs6 a minute per workspacerate_limited
Push sends600 an hour per sign-in poolrate_limited
Balance top-ups10 an hourrate_limited
New workspaces5 a day per personrate_limited
Emailyour optional daily capdaily_cap
Auth-pool codes asked for from the browser50 an hour and 300 a day per pool, and 20% of the email quota per workspacecode_limit

How it scales

ServiceAt millions of users today
Static sitesScale: served from the edge cache close to each visitor, the rest from object storage.
FunctionsScale: each request runs at the edge location nearest the caller, with no servers to size.
StorageScale: uploads and downloads go straight to object storage, never through Harakumo. Stored bytes count toward the plan's file storage (1 GB hobby, 50 GB pro, 250 GB team, 1,000 GB scale); past it Hobby stops and Pro, Team and Scale pay $0.05 per GB a month. Each signed link is one API call to Harakumo, so sign download links with a longer expiresIn and reuse them rather than signing one per page view.
Auth poolsVerify tokens in your app with the JWT secret (no call per request). Sign-ups and logins run on the shared platform and suit apps with thousands of active users.
DatabasesEach database has one writer and stops at 10 GB, and each query is an HTTPS call through Harakumo capped at 600 requests per 5 minutes per workspace. Good for development, internal tools and low-traffic apps; not yet for a high-traffic public app. Batch statements, cache reads and split data across databases.
Server appsOne small container per app with no extra copies, a cold start after it sleeps, and a platform-wide cap on awake apps. For large traffic, put the front end on a static site and the server logic in functions.
AIModel capacity scales with the vendors; your workspace is capped by the per-minute limits above.
MailUp to the plan's 30-day quota, one recipient per call.

Coming: databases reached directly from your functions and apps (no HTTPS hop, no shared limit), read replicas, a Postgres engine for datasets over 10 GB, extra copies and larger sizes for server apps, and metered traffic.