How do the limits work — and what happens when they're reached?
Short answer
Section titled “Short answer”Notory has two hard limits: the asset limit per tenant (from the tenant’s plan,
capped by the product license) and the tenant limit per installation (from the
product license). When a limit is reached, only creating new objects is rejected with
403 and an upgrade hint — existing data stays untouched, nothing is deleted or locked.
The UI warns beforehand: utilization and …_limit_reached flags appear in the License
section and in the entitlements.
Prerequisites
Section titled “Prerequisites”How the limits are calculated
Section titled “How the limits are calculated”Effective asset limit of a tenant = the minimum of the tenant’s plan limit and the
product license’s max_assets (−1 = unlimited):
| Plan (tenant) | Asset limit |
|---|---|
| Community | 30 |
| Basic | 250 |
| Professional | 2,500 |
| Elite | 5,000 |
| Enterprise | Unlimited |
Example: a tenant on the Professional plan (2,500) under a license with max_assets: 1000 may effectively hold 1,000 assets. The tenant limit comes solely from the
product license (max_tenants; Community: 1, Enterprise: unlimited).
Checking your limits
Section titled “Checking your limits”-
View utilization. Administration → License shows “Assets used” (e.g., “1,873 / 5,000”) and Max Assets; with multi-tenant, also the tenant count.
-
Take upgrade hints seriously. Close to the limit, the UI displays hints; locked actions show the message “Not included in your plan - upgrade to unlock”.
-
Clean up or upgrade. When you hit the limit: permanently delete old assets (empty the recycle bin!) or extend your license.
curl -H "Authorization: Bearer inv_dein_token" \ https://demo.notory.io/api/v1/entitlements{ "tier": "professional", "features": ["core", "assets", "network", "software", "licenses", "certificates", "compliance", "operations", "sso", "multi_tenant", "discovery", "custom_fields"], "max_assets": 2500, "asset_count": 2499, "asset_limit_reached": false, "max_tenants": 50, "tenant_count": 12, "tenant_limit_reached": false}This is what the rejections look like once a limit is reached:
{ "detail": "Asset limit reached (2500) for the 'professional' plan. Please upgrade to add more assets." }{ "detail": "Tenant limit reached (50) for your 'elite' license. Please upgrade to add more tenants." }{ "detail": "The Webhooks module is not included in the 'professional' plan. Please upgrade to unlock it." }What happens behind the scenes?
Section titled “What happens behind the scenes?”- Checked before every creation. On
POST /api/v1/assets, Notory counts the tenant’s assets live and compares them to the effective limit; onPOST /api/v1/tenants, it does the same for the installation’s tenants. When the limit is reached, you get403with a plain-text reason — the action doesn’t happen. - Only new creations are affected. Reading, editing, assigning, exporting, and deleting all work without restriction at the limit. There’s no throttling and no data loss; even when falling back to Community (expired license), all data is retained — only new records above the limit and premium modules are locked.
- The recycle bin counts too. Soft-deleted assets remain in the asset table — so they occupy limit slots until the recycle bin is emptied or the retention period removes them permanently. Near the limit, emptying it is worthwhile.
- Tell the three families of
403apart. (1) Limit reached (“Asset/Tenant limit reached …”), (2) module not in plan (“The … module is not included …”), (3) missing permission (role/scope). Thedetailtext distinguishes them unambiguously — important for automation. - Display is cached, enforcement is live. The entitlements response is cached briefly (purely a display optimization); the limits themselves are checked live on every write. So a briefly stale display can never let a creation “sneak through”.
Related topics
Section titled “Related topics”- Install a license
- Show/hide modules
- Create a tenant — subject to the tenant limit
- Create an asset — subject to the asset limit