Limits

The limits below are the ones the API enforces, and this page is generated from the same file. A dash (—) means there is no limit of that kind for that tier.

Every app starts on the sandbox tier. In the private beta Forgeling approves every app before it can run anything: until then, starting a run answers 403 approval_required. An approved app gets the larger quotas. The last column of the quotas table is what an approved app gets during the private beta, where that differs from the approved default: runs share worker machines, so approved apps have fewer concurrent and suspended runs than they will have later.

A value above your tier's maximum is refused with 422 tier_limit, and a quota that is used up with 409 quota_exceeded; see errors. Rate limits are in conventions.

The two event-stream quotas are upper bounds: the API counts open streams on each of its server processes, so a stream can be answered 429 rate_limited before the total is reached; see follow a run live.

A turn as a whole is capped at 1 MiB: its input, context, actor, output_schema, trigger and limits, encoded together as compact UTF-8 JSON, may take at most 1 MiB, less about 0.5 KiB the platform adds when it forwards the turn. A larger turn is refused when it is posted, with 422 validation_failed and param: "input" ("initial_turn.input" when you create a run).

Run sizes

Size vCPU Memory Disk Who
small 1 2 GiB 10 GB everyone (the only size in the sandbox tier)
standard 2 4 GiB 10 GB (20 GB from M2) approved apps
large 4 8 GiB 40 GB approved apps

Memory figures are pending Forgeling's week-1 measurement of the run image and may change.

Lifecycle

Field Default Max (sandbox) Max (approved)
limits.turn_timeout_s min(3600, tier max) 1800 14400
lifecycle.idle_suspend_s 1800 — —
lifecycle.expires_in_s min(86400, tier max) 7200 259200
lifecycle.queue_timeout_s 900 3600 3600
lifecycle.resume_timeout_s 900 3600 3600

Quotas

Quota Sandbox Approved Private beta (M1)
Live workspaces 3 500 500
Concurrent runs per app 1 10 2
Concurrent runs per workspace 1 3 2
Suspended runs per app 1 20 4
Queued runs per app 3 100 100
Run sizes small small, standard, large small, standard, large
Run hours per day per app 4 500 500
Turn timeout, maximum (seconds) 1800 14400 14400
Run lifetime, maximum (seconds) 7200 259200 259200
Run budget required, at most (USD) 10 — —
Output files retained (days) 1 7 7
Output file storage (GB) 1 100 100
Events retained (days) 7 30 30
Webhook endpoints 1 10 10
API requests per second per key 5 50 50
API burst per key (requests) 20 200 200
Active API keys 20 20 20
Event streams per run 5 5 5
Event streams per app 200 200 200

Other caps

Limit Value
Event size 64 KiB
Tool summary 16 KiB
Events per run 20,000
Event data per turn 2 MiB
Runtime response size 4 MiB
Event rate per run 50 events/s
Event burst per run 200 events
Protocol violations before a run ends 20
Inline input files per run 5 MB
Approval expiry 900 s
Signed download URL 5 minutes