Skip to content

Pre-GA Design Partner and Early Access only. Request access

Helix Docs

Limits and defaults

Product limits, API rate limits, and runtime defaults for Helix projects, schedules, and storage.

For developers Updated Sep 18, 2026
View as Markdown

Product limits, API rate limits, and runtime defaults currently enforced across Helix.

Product limits

These limits are currently enforced across Helix services.

Projects

ItemValue
Project title≤ 100 characters
Project description≤ 300 characters
Project alias≤ 30 characters
Max projects per workspace100
Max projects per org500
Deployment bundle size≤ 50 MB
Max authentications per deployment100

Key-value store

ItemValue
Max keys per project500
Max value size per key200 KB

See the key-value store guide for key naming rules and the ctx.kv() reference for the API.

Helix API rate limits

These limits apply to Helix API calls (create, update, deploy, and related management endpoints). They are not limits on project execution or function invocations.

ItemValue
Requests per second per org50 across all endpoints
Requests per minute per org1800 across all endpoints
Over-limit responseHTTP 429 with a Retry-After header
Rate-limiter outageFail-open (requests are allowed through)
Successful deployments per org200 per UTC calendar day

Runtime defaults and limits

Functions

ItemValue
Production runtimeNode.js 20+, one runtime per project with internal routing
CLI requirementNode.js 24.18.0 or later
Function timeout30 s default, configurable per function
Streamed response size20 MB maximum (first byte can arrive before the function finishes)
Buffered response size6 MB maximum
MemoryManaged by the platform, not configurable per function
ScalingScales with demand and to zero when idle; no configuration required

Return a Response with a ReadableStream body to stream; the runtime handles streaming setup. Note that the output schema is not applied to streaming responses. See the function definition reference.

Async function calls

ItemValue
Chaining depthTwo hops: a normal execution can call ctx.callFunctionAsync() once, the execution it starts can call it once more, a third hop is refused
Dispatch methodAlways POST; the target must accept POST regardless of the caller’s own method
DeliveryAt-least-once, with no idempotency key; write target handlers to be idempotent
ResultNone; the call resolves once accepted, with no return value, status, or execution ID from the target

See the async function calls guide.

Schedules

ItemValue
Schedule files per project20 maximum; a deploy that declares more is rejected
Fastest cadenceOnce per minute
Run duration3 minutes maximum per run, not configurable
Cron formatFive-field standard cron; day-of-month and day-of-week cannot both be constrained
TimezoneNamed IANA zones only; offset forms like '+05:00' are rejected at build time
DeliveryAt least once; a failed run is retried once, five minutes after it started, then dropped
OverlapRuns can still overlap. concurrent is accepted at deploy time but not enforced yet

See the scheduled functions guide.

Storage

ItemValue
Max keys per project500
Max value size per key200 KB

Data retention

ItemValue
Execution logs30 days
Previous deployments30 days from deploy; the live deployment and the one before it are always kept

See how long previous deployments are kept for what expiry removes.

Loading search…

Jump to a section

tab to move · esc to close