Skip to main content

Limits & Quotas

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

ResourceDefault limitNotes
Extensions per account25Across all visibility levels
Versions per extension100Oldest versions are archived after 100
Team members10Includes owner
API keys20Active keys; revoked keys do not count
Secret keys per extension20Stored in Lumio Vault

Per-extension storage limits

ResourceDefault limitNotes
Global storage100 MBShared across all installs
Per-install storage10 MBPer unique installId
Key count (global)10,000 keys
Key count (per install)1,000 keys
Value size64 KBPer key
Key name length255 bytesUTF-8

Server function limits

ResourceDefault limitNotes
Actions per extension50Total defined actions
Invocations per minute300Across all users of this extension
Invocation timeout30 secondsApplies to handler execution
External fetch calls per invocation10Via ctx.fetch()
Response payload size1 MBReturned from an action
Egress hosts20Entries in allowHosts

Real-time limits

ResourceDefault limitNotes
Active WebSocket connections per install5Overlay + popout windows
Pub/sub messages per second (push)100Via ctx.realtime.push()
Message payload size64 KBPer pub/sub message

Bundled sound limits

ResourceDefault limitNotes
Sounds per extension manifest200Maximum entries in sounds array
Resolved sound limit50Per-extension deploy cap (see below)
Sound file size10 MBPer individual sound file
Sound file warning5 MBCLI warns above this threshold
Total bundle size50 MBAll files combined per deploy

The resolved sound limit follows a 3-tier priority chain:

  1. Per-extension override — admin-set via extensions.max_sounds column
  2. Per-developer override — admin-set via developer limit overrides (max_sounds_per_extension key)
  3. Platform default — 50

The CLI checks this limit before deploying (GET /v1/developer/extensions/{id}/limits). The server validates again at upload and install time.

Supported audio formats: MP3, WAV, OGG, WebM, M4A, AAC, FLAC.

To request a limit increase, visit the Developer Limits page at /account/developer/limits. Select the scope (team/developer default or a specific extension), choose which limits to increase, enter your desired values with a reason, and submit. An admin reviews and approves or rejects the request. You can track request status on the same page under the Requests tab.

Build limits

ResourceDefault limitNotes
Compiled bundle size (layer)5 MBGzipped
Compiled bundle size (editor)5 MBGzipped
Compiled bundle size (interactive)5 MBGzipped
Static assets (images, fonts)20 MBPer extension version
Build time5 minutesPer lumio deploy run

Rate limits on the Developer API

EndpointLimit
GET endpoints120 requests/minute
POST /extensions10 requests/hour
POST /extensions/:id/versions30 requests/hour
DELETE endpoints30 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, visit the Developer Limits page at /account/developer/limits:

  1. Click Request increase next to a configurable limit
  2. Select the scope: Team / Developer account (applies to all extensions) or a Specific extension
  3. Check the limits you want to increase and enter your desired values
  4. Provide a reason (minimum 20 characters) explaining your use case
  5. Review the summary and submit

Requests are reviewed by Lumio admins. Approved increases apply immediately. You can track request status on the same page under the Requests tab. 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:

ResourceHard limit
Value size1 MB
Action invocation timeout120 seconds
Response payload10 MB
Egress request timeout30 seconds
Versions per extension500