Skip to content

Plans and limits

PlanZones
free4
plus10
pro50
enterprise1000

The CE core knows nothing about plans — before adopting a zone it asks a limits port, which the Cloud layer fills with the plan logic. When the limit is reached, the adoption is rejected with a message naming the current plan and its limit.

The advantage of this separation: CE code never needs touching for plans, and a self-hosted installation simply has no limits.

The plan is a property of the organisation, not of the individual person. Users are seats included within it — nobody needs their own subscription. All limits (users, teams, domains, projects) are organisation limits.

In the operator panel in the tenant detail, or via the API:

Terminal window
curl -X POST -H "X-Operator-Token: $DNSE_OPERATOR_TOKEN" \
-H "Content-Type: application/json" -d '{"plan":"pro"}' \
https://cloud.example.com/api/v1/operator/tenants/<id>/set-plan

A downgrade below the number of zones already in use removes nothing — existing zones remain, only further adoptions are blocked until the count is back below the limit.

Invoicing happens externally. The platform delivers the data (organisation, plan, usage, lifecycle events) to separate billing software; there is deliberately no built-in billing.