Download OpenAPI specification:
This API is used to provision and manage customer accounts, products and credentials on the Webpros Cloud platform.
All calls to the API test are authenticated by credentials presented by the caller in two HTTP headers, both of which must be presented with every call:
X-WPC-API-TOKENID - must contain the ID of a valid API token. This value is a UUID and it
is not considered to be a secret.X-WPC-API-TOKENSECRET - contains the secret associated with the token. This is a
64-character string consisting entirely of characters from the RFC 4648 base64 repertoire
and the value is considered to be a secret.API tokens may be created, listed, modified and deleted using the endpoints under the /token
path. Note that the secret associated with a token is only returned to the caller in the
response of the POST call that creates the token. It is not possible to retrieve the secret
string later. Secret strings and token IDs are generated by the system; the caller may not
specify their own IDs or secrets.
The token presented by the API caller determine the endpoints, and the level of access, available to the caller. Each token is associated with a set of privileges, specified when the token is created. These privileges define the actions that may be performed using the token.
Tokens with the "api_token:create" privilege may be used to create other tokens. Any token created in this way may have any (or all) of the privileges of the token used to create it; it is not possible to assign additional permissions to a new token.
The access requirements are noted in the documentation for each endpoint.
The API uses a flat permission string format: {resource}:{action}:{scope}.
Resources correspond to specific product or entity types, for example:
premium_shared_package — Premium Shared hosting packageswhmcs_package — WHMCS packageswpsquared_package — WP Squared packagescpanel_nova_package — cPanel Nova packagesentitlement, api_token, user, region, zone, etc.Actions and scopes:
list:own / list:all — list own or all resourcesread:own / read:all — read a specific own or any resourcecreate:own / create:all — create for own user or for any user (admin)write:own / write:all — update own or any resourcedelete:own / delete:all — delete own or any resourceImplied permissions: higher-privilege permissions automatically grant lower ones.
For example, write:all also grants write:own, list:all, list:own and read:own;
delete:own also grants list:own and read:own.
Prior to this permission system, tokens used a grouped format where a single package group
covered all package types (WHMCS, WP Squared, cPanel Nova, Premium Shared, Email), with
actions such as:
package:create — create a package (own entitlement)package:create:all — create a package for any userpackage:view:own / package:view:all — view own or any packagepackage:view_list:own / package:view_list:all — list own or all packagespackage:update:own / package:update:all — update own or any packagepackage:delete:own / package:delete:all — delete own or any packageTokens created with legacy permissions are automatically converted to the new flat format at authentication time. The mapping is:
| Legacy permission | New permission (per package resource) |
|---|---|
package:create |
{resource}:create:own |
package:create:all |
{resource}:create:all |
package:view:own |
{resource}:read:own |
package:view:all |
{resource}:read:all |
package:view_list:own |
{resource}:list:own |
package:view_list:all |
{resource}:list:all |
package:update:own |
{resource}:write:own |
package:update:all |
{resource}:write:all |
package:delete:own |
{resource}:delete:own |
package:delete:all |
{resource}:delete:all |
Where {resource} is each of: premium_shared_package, whmcs_package, wpsquared_package,
cpanel_nova_package, email_package.
API endpoints which return multiple objects use a common 'envelope' format. This is a JSON object containing:
data member containing an array of objectsnext member containing the ID of the first object in the next 'page' of results, or null
if there are no more results to retrieve.To support pagination, objects are always returned in the order of their id field. Two
optional query arguments, start and count, enable pages of results to be retrieved. To
obtain the first page of results, the start argument may be omitted or given as null.
Subsequent pages may be retrieved by taking the value of the next member in the result
envelope and passing it as the value of the start argument. The optional count argument
specifies the maximum number of records to be returned. The server may return up to this
number of records.
A user is a direct customer of Webpros Cloud, or an internal (system) user. Users interact with Webpros Cloud through the API. Most users are direct customers who have at some point bought at least one Webpros Cloud product.
An entitlement is an instance of a product, bought by a customer. For example, when Webpros sells a customer a WP Squared product consisting of 1,000 sites and 1,000GB of storage space, that customer receives an entitlement to create up to 1,000 sites and consume up to 1,000GB of storage space. When the customer resells web sites and storage space, they consume resources against an entitlement. The customer has a user account in Webpros Cloud, through which they manage their entitlements.
A WP Squared package is a defined quantity of resources taken from a WP Squared entitlement. Webpros customers buy entitlements and then divide them up into packages to resell to their own customers. A package would typically be created by a Webpros customer whenever they complete a sale, e.g. of a hosting package, to one of their own customers.
Returns a mapping of all validation error codes to their human-readable messages. This endpoint can be used to understand the meaning of error codes returned in validation error responses. Error codes are in the range 10000-19999.
{- "10001": "The selected entitlement is not owned by current User",
- "10002": "The selected entitlement is not valid for the specified service type.",
- "10003": "The data is required.",
- "10059": "The zone is required."
}Get information about the entitlements (blocks of resources, like web sites) paid for by the
user who owns the API credentials used to make the request. Entitlement objects are
returned in order of entitlementId.
Required permissions: entitlement:list:own or entitlement:list:all (admin)
| start | string or null (EntitlementIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: an |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "productId": "cpanel-server-small",
- "suspended": false,
- "serviceId": "wpsquared",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "allocatedSites": 1000,
- "allocatedDiskKb": 1000,
- "allocatedCPUCores": 0.5,
- "allocatedMemory": 2
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Create a new entitlement for a user. An entitlement is a block of resources paid for by a user, and is normally completed following a successful purchase.
Required permissions: entitlement:create:own or entitlement:create:all (admin)
Create a new entitlement, specifying resource limits
| userId | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... User ID (defaults to authenticated user if not provided) |
| productId required | string (ProductIdType) [ 1 .. 255 ] characters A unique identifier for a product |
| suspended | boolean Default: false Whether the entitlement, and all resources within it, is suspended |
{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "suspended": false
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "productId": "cpanel-server-small",
- "suspended": false,
- "serviceId": "wpsquared",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "allocatedSites": 1000,
- "allocatedDiskKb": 1000,
- "allocatedCPUCores": 0.5,
- "allocatedMemory": 2
}
}Get information about the entitlements (blocks of resources, like web sites) paid for by a
specific user. Note: this endpoint is only available to callers authorised as
administrators. Entitlement objects are returned in order of entitlementId.
Required permissions: entitlement:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| start | string or null (EntitlementIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: an |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "productId": "cpanel-server-small",
- "suspended": false,
- "serviceId": "wpsquared",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "allocatedSites": 1000,
- "allocatedDiskKb": 1000,
- "allocatedCPUCores": 0.5,
- "allocatedMemory": 2
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Get information about the specified entitlement, including resource limits and current resource usage. Callers authorised as administrators may request information about any existing entitlement; other callers may only request information about entitlements they own.
Required permissions: entitlement:read:own or entitlement:read:all (admin)
| id required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of an entitlement |
{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "productId": "cpanel-server-small",
- "suspended": false,
- "serviceId": "wpsquared",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "allocatedSites": 1000,
- "allocatedDiskKb": 1000,
- "allocatedCPUCores": 0.5,
- "allocatedMemory": 2
}
}Change elements of an entitlement, e.g. resource limits and suspension status. Only administrators may use this endpoint. Note that resource limits cannot be reduced below the current level of resource usage.
Required permissions: entitlement:write:own or entitlement:write:all (admin)
| id required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the entitlement to modify |
Modify an entitlement. Resource limits may be altered, but cannot be reduced below the current level of resource usage - i.e. the entitlement cannot be "overdrawn". The entitlement may be suspended; this operation will take all of its resources (e.g. web sites) offline. Note that the userId and productId fields are optional, and any values supplied in these fields will be ignored. It is therefore not possible to change the product associated with an entitlement, or to reassign an entitlement to a different user.
| suspended | boolean Default: false Whether the entitlement, and all resources within it, is suspended |
{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "suspended": false
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "productId": "cpanel-server-small",
- "suspended": false,
- "serviceId": "wpsquared",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "allocatedSites": 1000,
- "allocatedDiskKb": 1000,
- "allocatedCPUCores": 0.5,
- "allocatedMemory": 2
}
}Delete an entitlement, and delete all associated resources (e.g. web sites). Only callers with administrator authorisation may delete entitlements.
Required permissions: entitlement:delete:own or entitlement:delete:all (admin)
| id required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of an entitlement |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef"
}Get information about the entitlements (blocks of resources, like web sites) paid for by the
user who owns the API credentials used to make the request. Entitlement objects are
returned in order of entitlementId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: entitlement:list:own or entitlement:list:all (admin)
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "e1234567-e89b-12d3-a456-426614174001",
- "userId": "d08439d0-e641-d825-4d2d-851a1d51c198",
- "presetId": "whmcs-basic",
- "serviceId": "whmcs",
- "externalId": "ext-12345",
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": null
}, - "meta": {
- "resourceType": {
- "current": "entitlement",
- "parents": [
- "user",
- "product"
], - "children": [
- "packages"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": {
- "user__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "product__id": {
- "type": "string",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}, - "cdate": {
- "type": "datetime",
- "operators": [
- "eq",
- "gt",
- "gte",
- "lt",
- "lte",
- "null",
- "not_null"
]
}, - "mdate": {
- "type": "datetime",
- "operators": [
- "eq",
- "gt",
- "gte",
- "lt",
- "lte",
- "null",
- "not_null"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 10,
- "perPage": 15,
- "to": 15,
- "total": 150
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Given a user ID, return all entitlements associated with that user. If the caller does not
have administrative permissions, they may only supply their own user ID as the userId
argument. Entitlement objects are returned in order of entitlementId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: entitlement:list:own or entitlement:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "e1234567-e89b-12d3-a456-426614174001",
- "userId": "d08439d0-e641-d825-4d2d-851a1d51c198",
- "presetId": "whmcs-basic",
- "serviceId": "whmcs",
- "externalId": "ext-12345",
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": null
}, - "meta": {
- "resourceType": {
- "current": "entitlement",
- "parents": [
- "user",
- "product"
], - "children": [
- "packages"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": {
- "product__id": {
- "type": "string",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}, - "cdate": {
- "type": "datetime",
- "operators": [
- "eq",
- "gt",
- "gte",
- "lt",
- "lte",
- "null",
- "not_null"
]
}, - "mdate": {
- "type": "datetime",
- "operators": [
- "eq",
- "gt",
- "gte",
- "lt",
- "lte",
- "null",
- "not_null"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 3,
- "perPage": 15,
- "to": 15,
- "total": 40
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Operations relating to packages of WP Squared sites and resources created by a customer
Get information about all WP Squared packages created by the current user. If the user's
credentials have administrator access, return information about all WP Squared packages.
Package objects are returned in order of packageId.
Required permissions: wpsquared_package:list:own or wpsquared_package:list:all (admin)
| start | string or null (PackageIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "domain": "example.com",
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "username": "wp2user1",
- "password": "randomPassword123"
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Create a WP Squared package using resources from a specific entitlement.
Required permissions: wpsquared_package:create:own or wpsquared_package:create:all (admin)
Create a new WP Squared package, consuming resources from the specified entitlement. The maximum number of sites and the limit on disk space within the package must also be specified. If no region is specified, the package will be created in the user's default region.
| entitlementId required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for an entitlement |
| zoneId required | string (ZoneIdType) [ 1 .. 64 ] characters The unique name of a zone |
| locale required | string = 5 characters Default: "en-US" Locale for the WP Squared package (defaults to en-US if not provided) |
| variant | string (ServiceVariantNameType) [ 1 .. 64 ] characters Service variant for the WP Squared package |
| suspended | boolean Default: false Whether the package is suspended, e.g. inaccessible to the end-user |
required | object |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "zoneId": "eu-central-de1",
- "locale": "en-US",
- "variant": "default",
- "suspended": false,
- "data": {
- "domain": null,
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "domain": "example.com",
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "username": "wp2user1",
- "password": "randomPassword123"
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}Get information about all WP Squared packages created by the specified user. If the caller
does not have administrative privilege, they may only retrieve details about their own
packages. Package objects are returned in order of packageId.
Required permissions: wpsquared_package:list:own or wpsquared_package:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| start | string or null (PackageIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "domain": "example.com",
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "username": "wp2user1",
- "password": "randomPassword123"
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Get detailed information about a specific WP Squared package by its ID.
Required permissions: wpsquared_package:read:own or wpsquared_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WP Squared package to retrieve |
{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "domain": "example.com",
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "username": "wp2user1",
- "password": "randomPassword123"
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}Modify the resource allocations or suspended status of a WP Squared package.
Required permissions: wpsquared_package:write:own or wpsquared_package:write:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WP Squared package to modify |
Modify a WP Squared package, e.g. to suspend or unsuspend it or to modify the limits on the number of sites or amount of disk space allocated. Note that the limits cannot be reduced below the amount of resource currently consumed by the package.
| entitlementId required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for an entitlement |
| locale | string = 5 characters Default: "en-US" Locale for the WP Squared package |
| username | string Username for WPSquared account |
| password | string Password for WPSquared account (required with username) |
| suspended | boolean Default: false Whether the package is suspended, e.g. inaccessible to the end-user |
object |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "locale": "en-US",
- "username": "wpuser1",
- "password": "newPassword123",
- "suspended": false,
- "data": {
- "domain": "example.com",
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "maxSites": 1000,
- "maxMemory": 2,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5,
- "domain": "example.com",
- "usedSites": 0,
- "usedDiskKb": 0,
- "usedBandwidthKbps": 0,
- "username": "wp2user1",
- "password": "randomPassword123"
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}Delete a WP Squared package, and all associated web sites and resources.
Required permissions: wpsquared_package:delete:own or wpsquared_package:delete:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WP Squared package to be deleted |
{- "packageId": "01234567-89ab-cdef-0123-456789abcdef"
}Get the complete state change history for a specific WP Squared package.
Required permissions: wpsquared_package:read:own or wpsquared_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WP Squared package to retrieve state history for |
{- "data": [
- {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
]
}Check whether a domain is already in use by any WP2 package in any WPC zone. A domain is considered used if it is associated with an existing WP2 package, including suspended ones (but not deleted or cancelled).
| domain required | string The domain name to check (e.g. example.com) |
{- "creationDate": null,
- "modificationDate": null,
- "used": false
}Get information about all WP Squared packages created by the current user. If the user's
credentials have administrator access, return information about all WP Squared packages.
Package objects are returned in order of packageId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: wpsquared_package:list:own or wpsquared_package:list:all (admin)
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "fedcba98-7654-3210-fedc-ba9876543210",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "locale": "en-US",
- "variant": "default",
- "suspended": false,
- "creationDate": "2025-01-01T00:00:00Z",
- "modificationDate": null,
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "running",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-01-01T00:00:00Z"
}
}, - "meta": {
- "resourceType": {
- "current": "wpsquaredPackage",
- "parents": [
- "entitlement",
- "zone"
], - "children": [
- "stateHistory"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate",
- "domain"
]
}, - "filters": {
- "user__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "zone__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "entitlement__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 15,
- "perPage": 20,
- "to": 20,
- "total": 300
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Given a user ID, return all WP Squared packages associated with that user. If the caller does not
have administrative permissions, they may only supply their own user ID as the userId
argument. Package objects are returned in order of packageId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: wpsquared_package:list:own or wpsquared_package:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "fedcba98-7654-3210-fedc-ba9876543210",
- "serviceId": "wpsquared",
- "zoneId": "eu-central-de1",
- "locale": "en-US",
- "variant": "default",
- "suspended": false,
- "creationDate": "2025-01-01T00:00:00Z",
- "modificationDate": null,
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "running",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-01-01T00:00:00Z"
}
}, - "meta": {
- "resourceType": {
- "current": "wpsquaredPackage",
- "parents": [
- "entitlement",
- "zone"
], - "children": [
- "stateHistory"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate",
- "domain"
]
}, - "filters": {
- "zone__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "entitlement__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 3,
- "perPage": 20,
- "to": 20,
- "total": 50
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Get information about all WHMCS packages created by the current user. If the user's
credentials have administrator access, return information about all WHMCS packages.
Package objects are returned in order of packageId.
Required permissions: whmcs_package:list:own or whmcs_package:list:all (admin)
| start | string or null (PackageIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "plus"
}, - "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Create a WHMCS package using resources from a specific entitlement.
Required permissions: whmcs_package:create:own or whmcs_package:create:all (admin)
Create a new WHMCS package, consuming resources from the specified entitlement. The adminUsername, and adminPassword within the package must also be specified. If no zone is specified, the package will be created in the user's default zone.
| entitlementId required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for an entitlement |
| zoneId required | string (ZoneIdType) [ 1 .. 64 ] characters The unique name of a zone |
| locale required | string = 5 characters Default: "en-US" Locale for the WHMCS package (defaults to en-US if not provided) |
| variant | string (ServiceVariantNameType) [ 1 .. 64 ] characters Service variant for the WHMCS package |
| suspended | boolean Default: false Whether the package is suspended, e.g. inaccessible to the end-user |
required | object |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "zoneId": "eu-central-de1",
- "locale": "en-US",
- "variant": "default",
- "suspended": false,
- "data": {
- "domain": "example.com",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "cloud"
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "plus"
}, - "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}, - "adminUsername": "adminNNNN",
- "adminPassword": "ZMbbvV0539kB"
}Get information about all WHMCS packages created by the specified user. If the caller
does not have administrative privilege, they may only retrieve details about their own
packages. Package objects are returned in order of packageId.
Required permissions: whmcs_package:list:own or whmcs_package:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| start | string or null (PackageIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "plus"
}, - "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Get detailed information about a specific WHMCS package by its ID.
Required permissions: whmcs_package:read:own or whmcs_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package to retrieve |
{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "version": "9.0.1-release.1",
- "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}, - "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- {
- "name": "addons/bulkpricingupdater",
- "version": "9.0.1"
}, - {
- "name": "addons/google_analytics",
- "version": null
}
], - "licenses": [
- {
- "name": "addons/project_management",
- "version": "9.0.1-release.1"
}, - {
- "name": "addons/licensing",
- "version": "9.0.1-release.1"
}
], - "licenseType": "plus"
}
}Modify the resource allocations or suspended status of a WHMCS package.
Required permissions: whmcs_package:write:own or whmcs_package:write:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package to modify |
Modify a WHMCS package, e.g. to suspend or unsuspend it or to modify the limits on CPU, disk space, RAM, or network speed allocated. Note that the limits cannot be reduced below the amount of resource currently consumed by the package.
| entitlementId required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for an entitlement |
| suspended | boolean Default: false Whether the package is suspended, e.g. inaccessible to the end-user |
object |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "suspended": false,
- "data": {
- "domain": "example.com",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "cloud"
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "plus"
}, - "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}
}Delete a WHMCS package, and all associated resources.
Required permissions: whmcs_package:delete:own or whmcs_package:delete:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package to be deleted |
{- "packageId": "01234567-89ab-cdef-0123-456789abcdef"
}Get the complete state change history for a specific WHMCS package.
Required permissions: whmcs_package:read:own or whmcs_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package to retrieve state history for |
{- "data": [
- {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
]
}Update the domain of a WHMCS package synchronously. This endpoint updates the domain, reconfigures Apache and Postfix on the WHMCS VM, and generates a new SSL certificate synchronously (blocking until complete). Only the domain can be updated via this endpoint.
Required permissions: whmcs_package:write:own or whmcs_package:write:all (admin)
| packageId required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package to update |
Domain update data for the WHMCS package
required | object |
{- "data": {
- "domain": "newdomain.com"
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- "addons/bulkpricingupdater",
- "addons/google_analytics"
], - "licenses": [
- "addons/project_management",
- "addons/licensing"
], - "licenseType": "plus"
}, - "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}
}Reset the administrator password for a WHMCS package. The endpoint supports both user-provided passwords and auto-generated passwords. If adminPassword is not provided, a secure password will be automatically generated.
Required permissions: whmcs_package:write:own or whmcs_package:write:all (admin)
| packageId required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package |
Admin credentials for password reset
| adminUsername required | string The admin username for which to reset the password |
| adminPassword | string Optional new password. If not provided, a secure password will be auto-generated |
{- "adminUsername": "admin",
- "adminPassword": "NewSecurePassword123!"
}{- "success": true,
- "message": "WHMCS admin password has been reset successfully",
- "packageId": "10cee09c-b98f-4aad-9e7b-c7e4f46b0dab",
- "adminUsername": "admin",
- "adminPassword": "NewSecurePassword123!"
}Get information about all WHMCS packages created by the current user. If the user's
credentials have administrator access, return information about all WHMCS packages.
Package objects are returned in order of packageId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: whmcs_package:list:own or whmcs_package:list:all (admin)
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "whmcs-package-001",
- "entitlementId": "e1234567-e89b-12d3-a456-426614174001",
- "serviceId": "whmcs",
- "zoneId": "zone-001",
- "locale": "en-US",
- "variant": "full",
- "suspended": false,
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": "2024-01-01T10:00:00+00:00",
- "host": "whmcs-package-001.package.webpros.cloud",
- "cname": "whmcs-package-001.package.webpros.cloud",
- "currentState": {
- "state": "running",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2024-01-01T10:00:00+00:00"
}
}, - "meta": {
- "resourceType": {
- "current": "whmcsPackage",
- "parents": [
- "entitlement",
- "zone"
], - "children": [
- "modules",
- "licenses",
- "stateHistory"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate",
- "domain"
]
}, - "filters": {
- "user__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "zone__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "entitlement__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 1,
- "perPage": 15,
- "to": 1,
- "total": 1
}, - "links": {
- "pagination": {
- "prev": null,
- "next": null
}
}
}
}Given a user ID, return all WHMCS packages associated with that user. If the caller does not
have administrative permissions, they may only supply their own user ID as the userId
argument. Package objects are returned in order of packageId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: whmcs_package:list:own or whmcs_package:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "whmcs-package-001",
- "entitlementId": "e1234567-e89b-12d3-a456-426614174001",
- "serviceId": "whmcs",
- "zoneId": "zone-001",
- "locale": "en-US",
- "variant": "full",
- "suspended": false,
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": "2024-01-01T10:00:00+00:00",
- "host": "whmcs-package-001.package.webpros.cloud",
- "cname": "whmcs-package-001.package.webpros.cloud",
- "currentState": {
- "state": "running",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2024-01-01T10:00:00+00:00"
}
}, - "meta": {
- "resourceType": {
- "current": "whmcsPackage",
- "parents": [
- "entitlement",
- "zone"
], - "children": [
- "modules",
- "licenses",
- "stateHistory"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate",
- "domain"
]
}, - "filters": {
- "zone__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "entitlement__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 1,
- "perPage": 15,
- "to": 1,
- "total": 1
}, - "links": {
- "pagination": {
- "prev": null,
- "next": null
}
}
}
}Get detailed information about a specific WHMCS package by its ID, including installed version data for WHMCS and its modules.
Required permissions: whmcs_package:read:own or whmcs_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of WHMCS package to retrieve |
{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "whmcs",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "version": "9.0.1-release.1",
- "host": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}, - "statistics": {
- "clients": 0,
- "date": "2024-01-15T10:30:00Z"
}, - "data": {
- "domain": "test.org",
- "licenseId": "WHMCS-1234567890ab",
- "modules": [
- {
- "name": "addons/bulkpricingupdater",
- "version": "9.0.1"
}, - {
- "name": "addons/google_analytics",
- "version": null
}
], - "licenses": [
- {
- "name": "addons/project_management",
- "version": "9.0.1-release.1"
}, - {
- "name": "addons/licensing",
- "version": "9.0.1-release.1"
}
], - "licenseType": "plus"
}
}Operations relating to packages of cPanel Nova and resources created by a customer
Get information about cPanel Nova packages belonging to the authenticated user.
To retrieve packages for a specific user (administrator access required), use the
/v1/package/cpanelnova/user/{userId} endpoint.
Package objects are returned in order of packageId.
Required permissions: cpanel_nova_package:list:own or cpanel_nova_package:list:all (admin)
| start | string or null (PackageIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "cpanelnova",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "example.com",
- "username": "cpn54303550",
- "password": "randomPassword123",
- "licenseType": "build",
- "addonDomains": [
- "addon1.example.com",
- "addon2.example.com"
]
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Create a cPanel Nova package using resources from a specific entitlement. If no region is specified, the package will be created in the user's default region.
Required permissions: cpanel_nova_package:create:own or cpanel_nova_package:create:all (admin)
Create a new cPanel Nova package, consuming resources from the specified entitlement. If no region is specified, the package will be created in the user's default region.
| entitlementId required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for an entitlement |
| zoneId required | string (ZoneIdType) [ 1 .. 64 ] characters The unique name of a zone |
| locale required | string = 5 characters Default: "en-US" Locale for the cPanel Nova package (defaults to en-US if not provided) |
| variant | string (ServiceVariantNameType) [ 1 .. 64 ] characters Service variant for the cPanel Nova package |
| suspended | boolean Default: false Whether the package is suspended, e.g. inaccessible to the end-user |
required | object |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "zoneId": "eu-central-de1",
- "locale": "en-US",
- "variant": "default",
- "suspended": false,
- "data": {
- "domain": null,
- "licenseType": "build"
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "cpanelnova",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "example.com",
- "username": "cpn54303550",
- "password": "randomPassword123",
- "licenseType": "build",
- "addonDomains": [
- "addon1.example.com",
- "addon2.example.com"
]
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}Get detailed information about a specific cPanel Nova package by its ID.
Required permissions: cpanel_nova_package:read:own or cpanel_nova_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of cPanel Nova package to retrieve |
{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "cpanelnova",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "example.com",
- "username": "cpn54303550",
- "password": "randomPassword123",
- "licenseType": "build",
- "addonDomains": [
- "addon1.example.com",
- "addon2.example.com"
]
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}Modify the resource allocations or suspended status of a cPanel Nova package.
Required permissions: cpanel_nova_package:write:own or cpanel_nova_package:write:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of cPanel Nova package to modify |
Modify a cPanel Nova package, e.g. to suspend or unsuspend it, update the domain, or change credentials.
| entitlementId required | string (EntitlementIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for an entitlement |
| locale | string = 5 characters Default: "en-US" Locale for the cPanel Nova package |
| username | string Username for cPanel Nova account |
| password | string Password for cPanel Nova account (required with username) |
| suspended | boolean Default: false Whether the package is suspended, e.g. inaccessible to the end-user |
object |
{- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "locale": "en-US",
- "username": "cpn54303550",
- "password": "newPassword123",
- "suspended": false,
- "data": {
- "domain": "example.com",
- "licenseType": "build"
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "01234567-89ab-cdef-0123-456789abcdef",
- "serviceId": "cpanelnova",
- "zoneId": "eu-central-de1",
- "suspended": false,
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "locale": "en-US",
- "variant": "default",
- "data": {
- "domain": "example.com",
- "username": "cpn54303550",
- "password": "randomPassword123",
- "licenseType": "build",
- "addonDomains": [
- "addon1.example.com",
- "addon2.example.com"
]
}, - "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
}Delete a cPanel Nova package, and all associated web sites and resources.
Required permissions: cpanel_nova_package:delete:own or cpanel_nova_package:delete:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of cPanel Nova package to be deleted |
{- "packageId": "01234567-89ab-cdef-0123-456789abcdef"
}Get the complete state change history for a specific cPanel Nova package.
Required permissions: cpanel_nova_package:read:own or cpanel_nova_package:read:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of cPanel Nova package to retrieve state history for |
{- "data": [
- {
- "state": "new",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-04-15T12:57:34Z"
}
]
}Check whether domain creation is allowed for a specific cPanel Nova package based on its license type. Returns a boolean result indicating if the package is permitted to create additional domains. Requires cpanel_nova_package:read:own or cpanel_nova_package:read:all permission.
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the cPanel Nova package to check |
{- "result": true
}Returns all domains (main domain and addon domains) associated with a specific cPanel Nova package. Requires cpanel_nova_package:read:own or cpanel_nova_package:read:all permission.
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the cPanel Nova package |
{- "data": [
- "string"
]
}Generate a single-use, time-limited SSO token that can be used to log in to a cPanel Nova package without providing credentials. The token is valid for a configured period of time (default 15 minutes) and can only be used once.
Required permissions: cpanel_nova_package:read:own or cpanel_nova_package:read:all (admin)
| X-PACKAGE-ID | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Package ID. Has precedence over request body packageId. |
Create a new SSO token for a specific package
| promptToken | string Prompt token for request authorization |
{- "packageId": "01234567-89ab-cdef-0123-456789abcdef",
- "promptToken": "string"
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "packageId": "01234567-89ab-cdef-0123-456789abcdef",
- "expiresAt": "2025-04-15T12:57:34Z"
}Check whether a domain is already in use by any cPanel Nova package in any WPC zone. A domain is considered used if it is associated with an existing cPanel Nova package, including suspended ones (but not deleted or cancelled).
| domain required | string The domain name to check (e.g. example.com) |
{- "creationDate": null,
- "modificationDate": null,
- "used": false
}Add an addon domain to an existing cPanel Nova package.
The operation is idempotent: if the specified domain is already registered as an addon domain on this package the call succeeds immediately with no further action.
Required permissions: cpanel_nova_package:write:own or cpanel_nova_package:write:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the cPanel Nova package |
| addonDomain required | string (DomainType) The addon domain name to add (e.g. |
{- "addonDomain": "example.com"
}{- "addonDomain": "example.com"
}Remove an addon domain from an existing cPanel Nova package.
The domain to remove must be supplied in the request body as addonDomain.
Required permissions: cpanel_nova_package:delete:own or cpanel_nova_package:delete:all (admin)
| id required | string (PackageIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the cPanel Nova package |
| addonDomain required | string (DomainType) The addon domain name to remove (e.g. |
{- "addonDomain": "example.com"
}{- "addonDomain": "example.com"
}Get information about all cPanel Nova packages created by the current user. If the user's
credentials have administrator access, return information about all cPanel Nova packages.
Package objects are returned in order of packageId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: cpanel_nova_package:list:own or cpanel_nova_package:list:all (admin)
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "entitlementId": "fedcba98-7654-3210-fedc-ba9876543210",
- "serviceId": "cpanelnova",
- "zoneId": "eu-central-de1",
- "locale": "en-US",
- "variant": "default",
- "suspended": false,
- "creationDate": "2025-01-01T00:00:00Z",
- "modificationDate": null,
- "cname": "01234567-89ab-cdef-0123-456789abcdef.package.webpros.cloud",
- "currentState": {
- "state": "running",
- "errorCode": "0",
- "errorMessage": null,
- "date": "2025-01-01T00:00:00Z"
}
}, - "meta": {
- "resourceType": {
- "current": "cpanelnovaPackage",
- "parents": [
- "entitlement",
- "zone"
], - "children": [
- "stateHistory"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": {
- "user__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "zone__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "entitlement__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}, - "suspended": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 1,
- "perPage": 15,
- "to": 1,
- "total": 1
}, - "links": {
- "pagination": {
- "prev": null,
- "next": null
}
}
}
}Get a list of Webpros Cloud regions.
Required permissions: region:list:all
{- "data": [
- {
- "id": "eu-central",
- "regionId": "eu-central",
- "countryCode": "DE",
- "available": true,
- "services": [
- "wpsquared"
]
}
], - "next": null
}Get information about the specified region.
Required permissions: region:read:all
| id required | string (RegionIdType) Examples: eu-central sa-central us-south ID of the region to be retrieved |
{- "id": "eu-central",
- "regionId": "eu-central",
- "countryCode": "DE",
- "available": true,
- "services": [
- "wpsquared"
]
}Get a list of Webpros Cloud regions. Regions are returned ordered by their id.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: region:list:all
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "eu-central",
- "name": "Europe Central",
- "zones": [
- "eu-central-de1",
- "eu-central-pl1"
]
}, - "meta": {
- "resourceType": {
- "current": "region",
- "parents": [ ],
- "children": [
- "zones"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": {
- "enabled": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 2,
- "perPage": 15,
- "to": 1,
- "total": 2
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}If authenticated as a user, return an array of all API access tokens belonging to that user.
If authenticated as a manager, return all API access tokens known to the system. Tokens are
returned in order of tokenId.
Required permissions: api_token:list:own or api_token:list:all (admin)
| start | string or null (TokenIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": "2025-04-15T12:57:34Z",
- "lastSeen": "2025-04-15T12:57:34Z",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Create a new API access token.
Required permissions: api_token:create:own or api_token:create:all (admin)
Create an API access token. Values for the enabled and expiryDate fields may be specified. If the caller is authenticated as a user, the userId field is optional and, if present, must contain the user's own ID.
| userId | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for a user |
| enabled | boolean Default: true Whether API calls may be made using this token |
| expiryDate | string or null <date-time> (DateTimeNullableType) Token expiry date - must be today or in the future |
object (PermissionsShortType) |
{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": null,
- "permissions": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": "2025-04-15T12:57:34Z",
- "lastSeen": "2025-04-15T12:57:34Z",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}, - "secret": "x0vXlnot5pffRoa+QmD1OXGq9WQp3U+ZWiBnAR5zScq9bd6QV2sYRqho3614tKDU"
}Return details of the specified token, or 404 if it does not exist. Note that the token's secret is not returned.
Required permissions: api_token:read:own or api_token:read:all (admin)
| id required | string (TokenIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the token to be retrieved |
{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": "2025-04-15T12:57:34Z",
- "lastSeen": "2025-04-15T12:57:34Z",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}Enable or disable the specified token, or modify its expiry date.
Required permissions: api_token:write:own or api_token:write:all (admin)
| id required | string (TokenIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the token to modify |
Modify an API access token. The token may be enabled or disabled by setting the value of the enabled field; its expiry date may be modified by supplying a value for the expiryDate field. The token's ID and secret may not be modified.
| userId | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... A unique identifier for a user |
| enabled | boolean Default: true Whether API calls may be made using this token |
| expiryDate | string or null <date-time> (DateTimeNullableType) Token expiry date - must be today or in the future |
object (PermissionsShortType) |
{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": null,
- "permissions": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}{- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": "2025-04-15T12:57:34Z",
- "lastSeen": "2025-04-15T12:57:34Z",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}Delete the specified token, returning 404 if it does not exist. The ID of the deleted token is returned in the response body.
Required permissions: api_token:delete:own or api_token:delete:all (admin)
| id required | string (TokenIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the token to be deleted |
{- "tokenId": [
- "01234567-89ab-cdef-0123-456789abcdef"
]
}Given a user ID, return all API tokens associated with that user. If the caller does not
have administrative permissions, they may only supply their own user ID as the userID
argument. Tokens are returned in order of tokenId.
Required permissions: api_token:list:own or api_token:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| start | string or null (TokenIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "userId": "01234567-89ab-cdef-0123-456789abcdef",
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "enabled": true,
- "expiryDate": "2025-04-15T12:57:34Z",
- "lastSeen": "2025-04-15T12:57:34Z",
- "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Given a user ID, delete all API tokens associated with that user. If the caller does not
have administrative permissions, they may only supply their own user ID in the userID
argument.
Required permissions: api_token:delete:own or api_token:delete:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
{- "tokenIds": [
- "01234567-89ab-cdef-0123-456789abcdef"
]
}If authenticated as a user, return an array of all API access tokens belonging to that user.
If authenticated as a manager, return all API access tokens known to the system. Tokens are
returned in order of tokenId. Each item in the payload includes resource metadata with type
hierarchy information.
Required permissions: api_token:list:own or api_token:list:all (admin)
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "fedcba98-7654-3210-fedc-ba9876543210",
- "description": "My API Token",
- "enabled": true,
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": null,
- "lastUsed": "2024-01-02T15:30:00+00:00"
}, - "meta": {
- "resourceType": {
- "current": "apiToken",
- "parents": [
- "user"
], - "children": [ ]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": {
- "user__id": {
- "type": "uuid",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 42,
- "perPage": 15,
- "to": 15,
- "total": 620
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Given a user ID, return all API tokens associated with that user. If the caller does not
have administrative permissions, they may only supply their own user ID as the userID
argument. Tokens are returned in order of tokenId. Each item in the payload includes
resource metadata with type hierarchy information.
Required permissions: api_token:list:own or api_token:list:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef Unique identifier of a user |
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "tokenId": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "fedcba98-7654-3210-fedc-ba9876543210",
- "description": "My API Token",
- "enabled": true,
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": null,
- "lastUsed": "2024-01-02T15:30:00+00:00"
}, - "meta": {
- "resourceType": {
- "current": "apiToken",
- "parents": [
- "user"
], - "children": [ ]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": { },
- "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 5,
- "perPage": 15,
- "to": 15,
- "total": 70
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Get a list of users known to the platform. If the caller is authorised as an administrator,
return all users; otherwise, return only the user record associated with the caller's
credentials. Objects are returned ordered by userId.
Required permissions: user:list:own or user:list:all (admin)
| start | string or null (UserIdNullableType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: start=01234567-89ab-cdef-0123-456789abcdef For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "defaultZone": "eu-central-de1",
- "enabled": true,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}, - "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null
}
], - "next": "01234567-89ab-cdef-0123-456789abcdef"
}Create a new user record. Only callers authenticated as administrators may use this endpoint.
Required permissions: user:create:all (admin)
Create a new user record
| defaultZone required | string (ZoneIdType) [ 1 .. 64 ] characters The unique name of a zone |
| name required | string <= 255 characters User name |
| enabled | boolean Default: true |
object (PermissionsShortType) |
{- "defaultZone": "eu-central-de1",
- "name": "string",
- "enabled": true,
- "permissions": {
- "groupName": [
- "permission1",
- "permission2"
]
}
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "defaultZone": "eu-central-de1",
- "enabled": true,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}, - "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null
}Get a specific user record. If the caller is authorised as an administrator, any user record may be retrieved. Otherwise, only the record associated with caller's API credentials may be retrieved.
Required permissions: user:read:own or user:read:all (admin)
| id required | string (UserIdType) ^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-f... Examples: 01234567-89ab-cdef-0123-456789abcdef ID of the user to retrieve, or 'current' for the authenticated user's information |
{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "defaultZone": "eu-central-de1",
- "enabled": true,
- "permissions": {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}, - "permissionsShort": {
- "groupName": [
- "permission1",
- "permission2"
]
}, - "creationDate": "2025-04-15T12:57:34Z",
- "modificationDate": null
}Returns the list of permissions for the currently authenticated user based on their API token. This endpoint provides information about what operations the user is authorized to perform.
{- "data": [
- {
- "code": "view_list:all",
- "description": "View a list of all users",
- "group": {
- "code": "entitlement",
- "description": "Operations relating to entitlements, i.e. resources paid for by a customer"
}
}
]
}Get a list of users known to the platform. If the caller is authorised as an administrator,
return all users; otherwise, return only the user record associated with the caller's
credentials. Objects are returned ordered by userId.
Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: user:list:own or user:list:all (admin)
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "d08439d0-e641-d825-4d2d-851a1d51c198",
- "username": "johndoe",
- "role": "admin",
- "enabled": true,
- "defaultZone": "zone-001",
- "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": "2024-01-02T11:00:00+00:00"
}, - "meta": {
- "resourceType": {
- "current": "user",
- "parents": [ ],
- "children": [
- "entitlements",
- "apiTokens",
- "zones",
- "vms",
- "permissions"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate",
- "username"
]
}, - "filters": {
- "enabled": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 1,
- "perPage": 15,
- "to": 1,
- "total": 1
}, - "links": {
- "pagination": {
- "prev": null,
- "next": null
}
}
}
}Get a list of Webpros Cloud zones, including information about which services are available in each zone and whether the caller is permitted to create new resources in the zone.
Required permissions: zone:list:all
{- "data": [
- {
- "id": "eu-central-de1",
- "regionId": "eu-central",
- "countryCode": "DE",
- "available": true,
- "services": [
- "wpsquared"
]
}
], - "next": "eu-central-de1"
}Get information about the services available in the specified zone, and whether the caller may provision new resources in the zone.
Required permissions: zone:read:all
| id required | string (ZoneIdType) [ 1 .. 64 ] characters Examples: eu-central-de1 us-south-tx1 sa-central-br1 ID of the zone to be retrieved |
{- "id": "eu-central-de1",
- "regionId": "eu-central",
- "countryCode": "DE",
- "available": true,
- "services": [
- "wpsquared"
]
}Get a list of Webpros Cloud zones, including information about which services are available in each zone and whether the caller is permitted to create new resources in the zone. Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: zone:list:all
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "zone-001",
- "regionId": "region-001",
- "countryCode": "UA",
- "state": "Kyivska",
- "city": "Kyiv",
- "provider": "DataGroup",
- "available": true,
- "services": [
- "whmcs",
- "wpsquared"
], - "creationDate": "2024-01-01T10:00:00+00:00",
- "modificationDate": "2024-01-01T10:00:00+00:00"
}, - "meta": {
- "resourceType": {
- "current": "zone",
- "parents": [
- "region"
], - "children": [
- "pods",
- "services",
- "users"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate",
- "countrycode"
]
}, - "filters": {
- "region__id": {
- "type": "string",
- "operators": [
- "eq",
- "null",
- "not_null"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 2,
- "perPage": 15,
- "to": 2,
- "total": 2
}, - "links": {
- "pagination": {
- "prev": null,
- "next": null
}
}
}
}Get a list of products available on the Webpros Cloud platform. Products are returned
ordered by their id.
Required permissions: product:list:all
| start | string or null (ProductIdNullableType) [ 1 .. 255 ] characters Examples: start=cpanel-server-small start=cpanel-server-medium For pagination: a |
| type | string (ProductTypeType) Enum: "cpanel" "plesk" "whmcs" "wpsquared" "cpanelnova" "premiumshared" Examples: type=wpsquared type=whmcs Filter products by type (e.g., wpsquared, whmcs) |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "cpanel-server-small",
- "serviceId": "wpsquared",
- "name": "WP Squared Basic",
- "version": 1,
- "available": true,
- "description": "Managed WP Squared with 2500 sites and 2500GB included",
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5
}
}
], - "next": null
}Get detailed information about a specific product.
Required permissions: product:read:all
| id required | string (ProductIdType) [ 1 .. 255 ] characters Examples: cpanel-server-small cpanel-server-medium ID of the product to be retrieved |
{- "id": "cpanel-server-small",
- "serviceId": "wpsquared",
- "name": "WP Squared Basic",
- "version": 1,
- "available": true,
- "description": "Managed WP Squared with 2500 sites and 2500GB included",
- "data": {
- "maxSites": 1000,
- "maxDiskKb": 1000,
- "maxCpuCores": 0.5
}
}Get a list of products available on the Webpros Cloud platform. Products are returned
ordered by their id. Each item in the payload includes resource metadata with type
hierarchy information.
Required permissions: product:list:all
| type | string (ProductTypeType) Enum: "cpanel" "plesk" "whmcs" "wpsquared" "cpanelnova" "premiumshared" Examples: type=wpsquared type=whmcs Filter products by type (e.g., wpsquared, whmcs) |
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "wpsquared-basic",
- "serviceId": "wpsquared",
- "name": "WP Squared Basic",
- "version": 1,
- "available": true,
- "description": "Managed WP Squared with 100 sites"
}, - "meta": {
- "resourceType": {
- "current": "product",
- "parents": [
- "service"
], - "children": [
- "entitlements"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": {
- "service__id": {
- "type": "enum",
- "operators": [
- "eq"
]
}, - "available": {
- "type": "boolean",
- "operators": [
- "eq"
]
}
}, - "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 5,
- "perPage": 20,
- "to": 20,
- "total": 95
}, - "links": {
- "pagination": {
- "prev": null,
}
}
}
}Get a list of Webpros Cloud services, including information about which zones they are available in.
Required permissions: service:list:all
| start | string or null (ServiceIdNullableType) Examples: start=wpsquared start=cpanel start=whmcs start=plesk start=cpanelnova start=premiumshared For pagination: a |
| count | integer (RecordCountType) [ 1 .. 100 ] Default: 15 Examples: count=10 Maximum number of records to return in the response |
{- "data": [
- {
- "id": "wpsquared",
- "description": "WP Squared",
- "zones": [
- "eu-central-de1"
], - "defaultLocale": "en-US",
- "supportedLocales": [
- "ar-AE"
], - "variants": [
- "default"
], - "defaultVariant": "default"
}
], - "next": null
}Get information about the specified service, including which zones it is available in.
Required permissions: service:read:all
| id required | string (ServiceIdType) Examples: wpsquared cpanel whmcs plesk cpanelnova premiumshared ID of the service to be retrieved |
{- "id": "wpsquared",
- "description": "WP Squared",
- "zones": [
- "eu-central-de1"
], - "defaultLocale": "en-US",
- "supportedLocales": [
- "ar-AE"
], - "variants": [
- "default"
], - "defaultVariant": "default"
}Get a list of Webpros Cloud services, including information about which zones they are available in. Each item in the payload includes resource metadata with type hierarchy information.
Required permissions: service:list:all
| perPage | integer (RecordPerPageType) [ 1 .. 100 ] Default: 15 Examples: perPage=10 The maximum number of records to return from an API call |
| page | integer (RecordPageType) >= 1 Default: 1 Examples: page=2 The page number of records to return from an API call |
{- "payload": [
- {
- "data": {
- "id": "whmcs",
- "description": "Managed WHMCS on Webpros Cloud",
- "zones": [
- "zone-001",
- "zone-002"
], - "defaultLocale": "en-US",
- "supportedLocales": [
- "en-US",
- "es-ES",
- "de-DE"
], - "variants": [
- "full",
- "light"
], - "defaultVariant": "full"
}, - "meta": {
- "resourceType": {
- "current": "service",
- "parents": [
- "zone"
], - "children": [
- "product",
- "template",
- "service_parameter",
- "service_variant",
- "service_locale_name"
]
}
}
}
], - "meta": {
- "sorts": {
- "sorted": {
- "id": 1
}, - "can": [
- "id",
- "cdate",
- "mdate"
]
}, - "filters": { },
- "pagination": {
- "currentPage": 1,
- "from": 1,
- "lastPage": 1,
- "perPage": 15,
- "to": 4,
- "total": 4
}, - "links": {
- "pagination": {
- "prev": null,
- "next": null
}
}
}
}Generate a single-use, time-limited SSO token that can be used to log in to a WP Squared package without providing credentials. The token is valid for a configured period of time (default 5 minutes) and can only be used once.
Required permissions: wpsquared_package:read:own or wpsquared_package:read:all (admin)
Create a new SSO token for a specific package
{- "packageId": "01234567-89ab-cdef-0123-456789abcdef"
}{- "id": "01234567-89ab-cdef-0123-456789abcdef",
- "packageId": "01234567-89ab-cdef-0123-456789abcdef",
- "expiresAt": "2025-04-15T12:57:34Z"
}This endpoint is used by the WP Squared system to validate a token when a user attempts to log in using an SSO link. If the token is valid (not expired and not used), it is marked as used and the user is granted access. If the token is invalid, unauthorized, or has already been used, an error is returned.
Validate an SSO token
| ssoToken required | string SSO token string to validate |
{- "ssoToken": "string"
}{- "packageId": "01234567-89ab-cdef-0123-456789abcdef",
- "userId": "01234567-89ab-cdef-0123-456789abcdef"
}