Quotas
Quotas cap resource usage. They are distinct from short-window rate limits. This page lists only limits enforced by current source.
Share links
| Platform tier | Share-link limit per entitlement period |
|---|---|
| Core | 5 |
| Growth | 25 |
| Scale | Unlimited (-1) |
| Enterprise | Unlimited (-1) |
| Practice | Unlimited (-1) |
The period comes from the entitlement’s PeriodStart and PeriodEnd; it is not calculated as a fixed 30-day or 365-day interval by quota enforcement.
CheckShareLinkQuota reserves capacity atomically. It prefers Redis and mirrors usage to PostgreSQL, with a PostgreSQL locking fallback when Redis is unavailable. If persistence fails after a reservation, the create path can call ReleaseShareLinkQuota to return the slot.
Seats
| Platform tier | Included seats | Additional seat price |
|---|---|---|
| Core | 1 | $15/month |
| Growth | 3 | $12/month |
| Scale | 5 | $10/month |
| Enterprise | 10 | $0 in the tier definition |
| Practice | 2 | $0 in the tier definition |
The effective seat capacity is included seats plus purchased seats. Seat enforcement counts active members and outstanding invitations. Invite and member-reactivation paths reserve capacity atomically and can return the platform’s seat-limit error when no seat remains.
Reporting limits
Reporting uses free, pro, team, and enterprise plan vocabulary:
| Limit | Free | Pro | Team | Enterprise |
|---|---|---|---|---|
| Maximum query rows | 500 | 2,000 | 5,000 | 10,000 |
| Maximum template rows | 1,000 | 3,000 | 7,500 | 15,000 |
| Scheduled reports | 3 | 12 | 40 | 100 |
| Custom dashboards | 6 | 20 | 40 | 100 |
| Custom report templates | 12 | 40 | 80 | 200 |
| Query timeout | 6s | 10s | 15s | 20s |
| Ask InBlack | No | Yes | Yes | Yes |
| DuckDB maximum rows | Disabled | 2,000 | 5,000 | 10,000 |
| Cross-organization queries | No | No | Yes | Yes |
These values mix resource-count caps, per-request row caps, timeouts, and feature gates. They do not all reset on a billing cycle.
Reporting plan resolution
The current resolver maps stored plan IDs exactly as follows:
Stored plan_id | Reporting plan |
|---|---|
pro | Pro |
team or business | Team |
enterprise | Enterprise |
| Any other value | Free |
This means platform tier slugs such as core, growth, scale, and practice resolve to Reporting Free if they are stored directly as the reporting service’s plan_id. This is a source-level vocabulary mismatch, not an implied mapping to Pro or Team.
Limits not published by current source
The repository does not define a customer-facing export-storage cap, export-retention matrix, monthly AI conversation quota, or monthly MCP tool-call quota. Do not build automation around values for those resources unless the relevant service publishes a contract.