Skip to content
Helix Docs

Limits and defaults

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

For developers Updated Oct 23, 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
Run duration15 minutes maximum per run of the target, not configurable
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.

Agents

ItemValue
Agents per project20 (files in functions/_agents/)
Agent instructions file (instructionsFile)256 KB
Model steps per call25 by default, set per agent with limits.maxIterations
Tool executions per call50 by default, set per agent with limits.maxToolCalls
Delegation depthThree levels. A deeper delegation returns delegation_depth_exceeded to the calling model
Messages sent to the model per turn200 by default, set per agent with memory.maxSessionMessages. Stored history is not capped
Session retention on the platform store30 days without activity, unless memory.ttl is set. The longest ttl is 90 days

These step and tool limits don’t apply to a loop you write yourself with ctx.ai. See the agent definition reference.

Schedules

ItemValue
Schedule files per project20 maximum; a deploy that declares more is rejected
Fastest cadenceOnce per minute
Run duration15 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, about a minute after it ends, 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