Reseller Limits is a new feature introduced in MultiPortal version 1.1.1, designed to give Service Providers greater control over what Resellers can create and manage within the platform.
This functionality allows Service Providers to define clear quotas and boundaries, while enabling Resellers to self-manage their customers within those assigned limits.
Reseller Limits allow Service Providers to:
Once configured, Resellers can independently manage their customers without exceeding the limits assigned to them.
Reseller quotas are enforced per Reseller, and apply globally across all entities created under that Reseller.
This means limits are shared across all Tenants and customers belonging to the Reseller, rather than being applied per individual customer.

When creating or editing a Reseller, Service Providers can configure the following quotas:
These limits are cumulative and shared across the entire Reseller environment.
Service Providers can specify which data centers a Reseller is permitted to use. Resellers can only deploy resources within the assigned locations.
Compute limits define how Resellers can create VDCs and how much compute capacity can be consumed across all of their customers.
The Creation Policy controls the types of VDCs a Reseller is allowed to create:
PAYG and Allocation
Allows the creation of both PAYG and Allocation type VDCs.
Allocation Only
Allows only the creation of Allocation type VDCs.

Resource limits apply globally across all VDCs and Tenants under the Reseller, regardless of how those resources are distributed.
CPU Cores
Memory
Resellers can divide these resources across their Tenants and VDCs as required, but cannot exceed the total limits defined by the Service Provider.

Storage controls define what storage capabilities a Reseller can assign to their customers, and how those resources can be distributed.

Service Providers assign which storage policies a Reseller can use (for example, Gold, Silver, or other tiers).
Each storage policy can be configured with:
Storage quotas are shared globally across the Reseller, regardless of how they are divided among Tenants or customers.
Backup quotas are configured independently of storage quotas and can be set as:
This allows flexible combinations, such as unlimited storage with limited backups, or limited storage with unlimited backups.

Quota usage is visible in real time to both Service Providers and Resellers.
The dashboard displays:
All usage data is updated in real time, providing immediate feedback as resources are created or removed.
All endpoints are under /api/v1/reseller/{resellerId} and require Bearer token authentication.
| Method | Path | Description |
|---|---|---|
GET |
/reseller/{resellerId}/quota |
Get current quotas, usage statistics, and data center allocations |
PUT |
/reseller/{resellerId}/quota |
Update entity quotas (supports partial updates) |
DELETE |
/reseller/{resellerId}/quota |
Reset all quotas to unlimited and remove all data center allocations |
/reseller/{resellerId}/quotaReturns current entity quota usage and data center allocations.
Response:
{
"status": "success",
"message": "Entity quotas retrieved successfully",
"data": {
"tenants": {
"current": 3,
"max": 10,
"unlimited": false,
"disabled": false
},
"vdcs": {
"current": 5,
"max": null,
"unlimited": true,
"disabled": false
},
"vms": {
"current": 12,
"max": 0,
"unlimited": false,
"disabled": true
},
"data_centers": [
{
"data_center_uuid": "dc-uuid-1",
"data_center_name": "Sydney"
}
]
}
}
/reseller/{resellerId}/quotaUpdates entity quotas. Supports partial updates — only fields included in the request are modified.
Request:
{
"max_tenants": 10,
"max_vdcs": null,
"max_vms": 50,
"data_centers": [
"dc-uuid-1",
{ "data_center_uuid": "dc-uuid-2", "remove": true }
]
}
Quota values:
| Value | Meaning |
|---|---|
null |
Unlimited (no restriction) |
0 |
Disabled (creation is blocked) |
> 0 |
Limited to that number |
Validation rules:
data_center_uuid key"remove": true to remove a data center allocation/reseller/{resellerId}/quotaResets all entity quotas (max_tenants, max_vdcs, max_vms) to unlimited (null) and removes all data center allocations.
| Method | Path | Description |
|---|---|---|
GET |
/reseller/{resellerId}/resource-allocation |
Get CPU, memory, storage, and backup allocation with usage |
PUT |
/reseller/{resellerId}/resource-allocation |
Update resource allocation (supports partial updates) |
DELETE |
/reseller/{resellerId}/resource-allocation |
Delete all resource allocation settings |
/reseller/{resellerId}/resource-allocationReturns full resource allocation details including current usage, available capacity, and usage percentages.
Response:
{
"status": "success",
"message": "Resource allocation retrieved successfully",
"data": {
"allow_payg": true,
"cpu": {
"max": 100,
"used": 42,
"available": 58,
"percentage": 42,
"unlimited": false
},
"memory_gb": {
"max": 256,
"used": 64,
"available": 192,
"percentage": 25,
"unlimited": false
},
"storage": [
{
"storage_policy_uuid": "sp-uuid-1",
"storage_policy_name": "Gold",
"max_capacity_gb": 1024,
"used_capacity_gb": 500,
"available_capacity_gb": 524,
"percentage": 48.8,
"unlimited": false
}
],
"backup_storage": [
{
"backup_storage_uuid": "bs-uuid-1",
"backup_storage_name": "PBS-01",
"max_capacity_gb": null,
"used_capacity_gb": 200,
"available_capacity_gb": null,
"percentage": null,
"unlimited": true
}
]
}
}
/reseller/{resellerId}/resource-allocationUpdates resource allocation. Supports partial updates — only fields included in the request are modified.
Request:
{
"allow_payg": false,
"max_cpu": 200,
"max_memory_gb": null,
"storage": [
{ "storage_policy_uuid": "sp-uuid-1", "max_capacity_gb": 2048 },
{ "storage_policy_uuid": "sp-uuid-2", "remove": true }
],
"backup_storage": [
{ "backup_storage_uuid": "bs-uuid-1", "max_capacity_gb": null }
]
}
Resource allocation values:
| Value | Meaning |
|---|---|
null |
Unlimited (no restriction) |
> 0 |
Limited to that capacity |
Validation rules:
"remove": true on storage or backup storage items to remove that allocationallow_payg to false restricts VDC creation to Allocation type only/reseller/{resellerId}/resource-allocationRemoves all resource allocation settings (CPU, memory, storage, and backup storage). This operation is blocked if any allocated storage policies or backup storages are currently in use by VDCs. Returns a 422 error with details of which resources are in use.