Plans and limits
Understand current resource limits and managed versus customer-owned runtime quotas.
Workspace plans control resource counts and runtime quotas. The backend configuration is the source of truth, and the console reads the current subscription instead of relying on hard-coded marketing values.
Unlimited below means the configured value is -1.
Resource limits
| Resource | Free | Starter | Business |
|---|---|---|---|
| Workspaces | 1 | 1 | 1 |
| Projects | 1 | 1 | 3 |
| Data models | 3 | 5 | 20 |
| Ingest clients | 1 | 10 | 100 |
| Query clients | 1 | 10 | 100 |
| Runtime API keys | 1 | 10 | 100 |
| Analytics APIs per model | 5 | 10 | 45 |
| Fields per model | 15 | 35 | Unlimited |
| Analytics suggestions per model | 5 | 10 | 200 |
| Destinations | 1 | 1 | 3 |
| Shared datasets | 1 | 3 | 10 |
| Alert rules | 3 | 20 | 100 |
| Notification Channels | 1 | 5 | 25 |
Analytics creation governance is enforced per model through analytics_apis_per_schema. Product surfaces do not use a separate global analytics count as the active creation gate.
Shared dataset counts are workspace-scoped. Enterprise capacity remains sales-assisted and is set by agreement. Explicit Enterprise limit rows override the default; a dimension omitted from a custom-capacity plan is unmetered rather than treated as a broken plan configuration.
Monthly runtime quotas
Core enforces workspace-scoped Alert Rule and Notification Channel counts at create time. Notification delivery and Analytics Alert evaluation quotas are tracked independently from ingest and reset monthly in UTC.
| Alert runtime quota | Free | Starter | Business | Enterprise |
|---|---|---|---|---|
| Notification deliveries / month | 1,000 | 10,000 | 100,000 | Custom |
| Analytics Alert evaluations / month | 1,000 | 10,000 | 100,000 | Custom |
The Dashboard reports current Alert resource and monthly runtime consumption next to the effective allowance. Unlimited plans continue to show consumption without enforcing a finite ceiling. Explicit Enterprise limit rows override the default; a dimension omitted from a custom-capacity plan is unmetered.
| Plan | Managed ingest | Customer ingest | Managed queries | Customer queries |
|---|---|---|---|---|
| Free | 100,000 | 500,000 | 100,000 | 500,000 |
| Starter | 1,000,000 | 10,000,000 | 1,000,000 | 10,000,000 |
| Business | 10,000,000 | 100,000,000 | 10,000,000 | 100,000,000 |
The current seed sets the corresponding hourly and daily quotas to Unlimited for these plans. The runtime still supports hourly, daily, and monthly quota keys, so future plan configuration can activate them without changing the request contract.
Assistant monthly allowances
| Plan | Assistant runs | Tool actions |
|---|---|---|
| Free | 100 | 50 |
| Starter | 1,000 | 500 |
| Business | 10,000 | 5,000 |
| Enterprise | Custom | Custom |
An Assistant run is one accepted user message, not each internal model inference and not the generated reply. A tool action is a Core operation admitted through the Assistant, including an immediately executed read operation or a confirmed mutation. Deterministic field submission and Confirm/Cancel transport do not create another run or an additional tool charge by themselves.
These allowances are shared by the workspace and reset monthly in UTC. Core persists the current totals and restores fast quota enforcement after restart. Actions performed manually through other Console pages do not consume Assistant allowances, although the underlying resource and runtime limits still apply.
When a count limit is full
The console disables or blocks relevant creation actions in Launch Flow and resource pages. The backend performs the final enforcement and returns a limit error if a caller bypasses the UI.
When a runtime quota is full
Ingest or query requests are rejected according to the applicable workspace, project, warehouse mode, and time window. Applications should surface the error and avoid aggressive retries that cannot succeed until the quota window or plan changes.
When the Assistant run allowance is full, Core rejects a new Assistant turn before provider reasoning starts. When the tool allowance is full, the Assistant cannot execute another Core operation, but normal non-Assistant product surfaces remain governed by their own applicable limits.