Plan limits are in GET /v1/account and listed per plan in Billing and credits, and Run history explains how long results stay readable. Runs count against both plan limits; searches, builds and sign-ins against requests per minute.
| Limit | Value |
|---|---|
| Requests per minute, runs at once | Your plan's, in GET /v1/account (per plan). A run past your runs at once waits up to 10 s for one to end, then 429 rate_limited with Retry-After: 2. On Pro and Business, 5 more runs at once are a $25 a month add-on in Billing. |
| Saved logins | Your plan's, limits.logins in GET /v1/account, add-ons included (null: unlimited). A new website login past it is 403 plan_limit with limit.kind: "logins"; on Pro and Business, one more is a $25 a month add-on in Billing. API keys don't count. |
| Sites | Your plan's, limits.sites, add-ons included (null: unlimited): the websites your organization has methods on, any number on each. A build that would put a method on another website past it is 403 plan_limit with limit.kind: "sites"; on Pro and Business, one more is a $39 a month add-on in Billing. The methods you have keep running. |
| Builds and improvements | Starter 10 a month, Pro 30, Business 100, Enterprise as agreed; past them, a build that succeeds uses 50 credits. Repairs and failed builds never count. Free has 3 in all, started in Studio: past them 403 plan_limit with limit.kind: "builds", and on Free a key or MCP client cannot start one (limit.kind: "api"). |
| AI messages | Drafting or changing a workflow with AI, writing a transform's code, and Studio's assistant share one count per organization. Paid plans have no limit. On Free, a high limit only stops abuse: past it, 403 plan_limit with limit.kind: "chat_messages". A burst is 429 rate_limited with limit.kind: "chat_per_minute". |
| Seats | Your plan's: Free 1, Starter 3, Pro 10, Business and Enterprise unlimited. Members and open invitations each take one; an invitation past them is 403 seat_limit. |
| Run record | id, status, method, credits, duration_ms and created_at stay readable for 30 days on every plan; an older run is 404 not_found. A run stays visible while it runs. |
| Wait for a result | 60 s, then 202 while it keeps going. |
| Run input and result | input and data expire after your plan's limits.run_history_hours: 24 hours on Free, 7 days on Starter, 14 days on Pro, 30 days on Business and Enterprise. After that a run answers expired: true and data: null. |
| Result | 10 MB, then cut and marked truncated. |
| Request body | 4 MB. |
Workflows have their own: schedules and webhook triggers have per-trigger limits, and steps have their own.