Lumio enforces per-account and per-extension limits to ensure fair resource usage across the platform. This page lists the defaults and the process for requesting an increase.
Per-account limits
| Resource | Default limit | Notes |
|---|
| Extensions per account | 25 | Across all visibility levels |
| Versions per extension | 100 | Oldest versions are archived after 100 |
| Team members | 10 | Includes owner |
| API keys | 20 | Active keys; revoked keys do not count |
| Secret keys per extension | 20 | Stored in Lumio Vault |
Per-extension storage limits
| Resource | Default limit | Notes |
|---|
| Global storage | 100 MB | Shared across all installs |
| Per-install storage | 10 MB | Per unique installId |
| Key count (global) | 10,000 keys | |
| Key count (per install) | 1,000 keys | |
| Value size | 64 KB | Per key |
| Key name length | 255 bytes | UTF-8 |
Server function limits
| Resource | Default limit | Notes |
|---|
| Actions per extension | 50 | Total defined actions |
| Invocations per minute | 300 | Across all users of this extension |
| Invocation timeout | 30 seconds | Applies to handler execution |
| External fetch calls per invocation | 10 | Via ctx.fetch() |
| Response payload size | 1 MB | Returned from an action |
| Egress hosts | 20 | Entries in allowHosts |
Real-time limits
| Resource | Default limit | Notes |
|---|
| Active WebSocket connections per install | 5 | Overlay + popout windows |
| Pub/sub messages per second (push) | 100 | Via ctx.realtime.push() |
| Message payload size | 64 KB | Per pub/sub message |
Build limits
| Resource | Default limit | Notes |
|---|
| Compiled bundle size (layer) | 5 MB | Gzipped |
| Compiled bundle size (editor) | 5 MB | Gzipped |
| Compiled bundle size (interactive) | 5 MB | Gzipped |
| Static assets (images, fonts) | 20 MB | Per extension version |
| Build time | 5 minutes | Per lumio deploy run |
Rate limits on the Developer API
| Endpoint | Limit |
|---|
GET endpoints | 120 requests/minute |
POST /extensions | 10 requests/hour |
POST /extensions/:id/versions | 30 requests/hour |
DELETE endpoints | 30 requests/minute |
Limits are applied per authenticated developer account. Exceeding a limit returns HTTP 429 Too Many Requests with a Retry-After header.
Requesting a limit increase
To request a limit increase, open a support ticket via the extension dashboard under Account → Support → Limit Increase Request. Include:
- The limit you need increased and the new value requested
- Which extension(s) are affected
- A brief description of the use case driving the need
Limit increases are reviewed within 5 business days. Approved increases apply immediately. Increases for storage, invocation rate, and bundle size are granted on a case-by-case basis and may require a Pro or Enterprise plan.
Hard limits
The following limits cannot be increased regardless of plan:
| Resource | Hard limit |
|---|
| Value size | 1 MB |
| Action invocation timeout | 120 seconds |
| Response payload | 10 MB |
| Egress request timeout | 30 seconds |
| Versions per extension | 500 |