Limits and usage
Each run gets 512 MB of memory, 2 CPUs, 16 processes and up to 30 seconds, with no network. Your account has a monthly allowance and per-minute, pending and running limits set by its plan, and GET /api/usage/ shows where you stand.
Code and stdin must be UTF-8 strings without NUL characters; each is limited to 100,000 encoded bytes. Output floods exceeding 8 MB across both streams are stopped with exit code 153 (signal 25), while retained output stays capped at 64 KB per stream. HTTP 429 indicates account limits or execution capacity; retry with backoff. Timing and memory figures are informational and may be unavailable after a forced stop.
| Memory | 512 MB per execution |
| CPU | 2 cores |
| Timeout | 30 seconds |
| Max Processes | 16 running at once; more stops the run with exit code 71 |
| Writable Storage | 256 MB workspace + 128 MB temporary files, within the memory limit |
| Submission Rate | 30 per minute per account across API keys and widgets; higher on paid plans |
| Pending Submissions | 8 per account, queued or running; higher on paid plans |
| Runs at Once | 2 per account in a sandbox at the same moment; later runs wait their turn, and a synchronous request that finds them all busy gets 429; higher on paid plans |
| Monthly Submissions | 100,000 per account on Free, up to 4,000,000 on paid plans (see pricing), per calendar month in UTC; runs we could not start are not counted |
| Per-Key Monthly Limit | Optional, set by you on each API key or widget key in the dashboard; stops that key only |
| Network | Disabled (no outbound access) |
| Code Size | 100 KB max |
| Input Size | 100 KB max |
| Output | Up to 64 KB per stream; longer output is cut and truncated is true |
| Sync Concurrency | Limited per server; returns 429 when at capacity |
| WebSocket Rate | 1 execution per second per connection |
Check limits and usage
/api/limits/ the limits above as JSON; no key needed/api/usage/ your account's runs this month, its limits, and the calling key's own count and limit; send your API key{
"month": "2026-10",
"submissions": 1520,
"monthly_limit": 100000,
"remaining": 98480,
"resets_at": "2026-11-01T00:00:00Z",
"submissions_per_minute": 30,
"pending_submissions": 8,
"running_submissions": 2,
"key": {
"submissions": 1200,
"monthly_limit": 5000,
"remaining": 3800
}
}Over the monthly limit, runs answer HTTP 429 until the allowance resets at the start of the next month (UTC). Requests rejected for a limit or a bad payload are not counted. The dashboard shows the same count.
Per-key limits and usage emails
- Give any API key or widget key its own monthly limit on the API keys or Widgets page of the dashboard. Once the key reaches it, runs through that key answer HTTP 429 (or a
codeoutputerror in the widget) until the next month; your other keys keep running. Use it to cap an AI agent, a public widget or a customer's integration. - A key's limit works inside your account's allowance, never above it. Leave it empty for no limit of its own.
- We email the account's address the first time in a month that usage reaches 80% and 100% of the account's allowance, and of each key's own limit.
- In
GET /api/usage/,keycounts runs through the key you called with this month; itsmonthly_limitandremainingarenullwhen the key has no limit. Calls through RapidAPI don't includekey.
Questions
- What happens when I reach a limit?
- Requests over a limit get HTTP 429 and nothing runs, so nothing is billed. The monthly allowance resets at the start of the next month (UTC).
- Can I limit a single API key?
- Yes. Give any API key or widget key its own monthly limit in the dashboard. Once it's reached, that key gets 429 until the next month, and your other keys keep running.
- Do paid plans raise the limits per run?
- No. Every plan has the same 512 MB and 30-second limits per run; paid plans raise the runs a month, submissions a minute, runs at once and tests per request.