WHMCS API (2.0.0)

WHMCS API

Introduction

WHMCS API is organized around Representation State Transfer (REST) and is designed around the use of resources. It expects standard HTTP verbs like GET, POST, PUT, and DELETE and returns HTTP response codes and JSON-encoded responses. To get started with the API, make sure that your system is running at least WHMCS 9.0.0-rc.1, and you have created product groups, products, and at least one user account.

Examples provided by this document use cURL, but you can make the API calls in any programming language.

Authentication

WHMCS API may use different authentication methods for different areas of the API.

Store and Cart Operations

For store and cart operations, use an X-Api-State header if a cart is associated with a logged-in user.

  • X-Api-State represents a state of the cart.
  • Each response will return a new value.
  • Each request must include the latest X-Api-State header.

For example, a request with the X-Api-State header:

curl -X GET --location "https://example.com/api/v2/cart/TLlowSWlQjGkGrC1/totals"
  -H "X-Api-State: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvd2htY3MtZGV2LnRlc3RcLyIsImF1ZCI6Imh0dHBzOlwvXC93aG1jcy1kZXYudGVzdFwvIiwiZXhwIjoxNjQ3NTYzMzI3LCJzdWIiOltdLCJ3aG1jc191c2VyIjoiMzlhNDA0NTFlOGE4NjhhZWI4NjExYzEwNGE5OTYwMzk2NmM2MmIyMzg0YWYyYjc4OWJhOGU2YmYxYWVhYjMzYSJ9.B4-Ug6AcVCI52woiW9dF_ylYZXf57e32RSk_7S78Z9M"

With payload:

curl -X POST --location "https://example.com/api/v2/cart/6isLR0SAB0TbCiws/promotion"
  -H "Content-Type: application/json"
  -H "X-Api-State: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvd2htY3MtZGV2LnRlc3RcLyIsImF1ZCI6Imh0dHBzOlwvXC93aG1jcy1kZXYudGVzdFwvIiwiZXhwIjoxNjQ3MzkyODM1LCJzdWIiOltdLCJ3aG1jc191c2VyIjoiMzlhNDA0NTFlOGE4NjhhZWI4NjExYzEwNGE5OTYwMzk2NmM2MmIyMzg0YWYyYjc4OWJhOGU2YmYxYWVhYjMzYSJ9.LfYOrxW5OOtdcfyDOuIa6B0dTytYROMrccqpywxvAB8"
  -d "{\"code\":\"CARTAPI\"}"

Logging In

To log in, you must include the user's email address and password.

For example:

curl -X POST --location "https://example.com/whmcs/api/v2/user/session"
  -H "Content-Type: application/json"
  -d "{\"email\":\"[email protected]\",\"password\":\"pwd123456\"}"

Logging In with Two-Factor Authentication

If the user has enabled Two-Factor Authentication, send an additional request to verify the Two-Factor Authentication token before authenticating the user.

For example:

curl -X POST --location "https://example.com/whmcs/api/v2/user/session/verify"
  -H "Content-Type: application/json"
  -H "X-Api-State: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvd2htY3MtZGV2LnRlc3RcLyIsImF1ZCI6Imh0dHBzOlwvXC93aG1jcy1kZXYudGVzdFwvIiwiZXhwIjoxNjQ3NDQwMzc5LCJzdWIiOiI1MzJlZmM4ZmI5NzA2NDQ4ZDZkMDMwMTc1ZmFlY2U3N2QxN2E5OGRjN2FkNTZlZWZhZmZjYTRmNzY2ZDJiZjE4In0.Igj9Kby5FR5m4w03x92NwuKviCLRQBQUaLbaXTqQ9kc"
  -d "{\"fields\":{\"key\":\"417339\"}}"

Custom Buy-Flow

One of the goals of the shopping cart is to reduce the time it takes from starting the cart until checkout. The diagram below shows a typical buy-flow. With the Custom Buy-Flow API, you can customize the shopping experience to best serve your customers.

API Versioning Semantics vs. Product Versioning

The API version does not correspond to the product version. In December 2025, for example, the current WHMCS API was version 2 but the latest product version in the Release Candidate update channel was WHMCS 9.0.0.

  • If we update or change the main product to resolve bugs, the product version will change but the API version may remain the same.
  • If we alter either the behavior or structure of the request or response, we will increment the API version to reflect the incompatible changes.
    • We may continue to support preexisting API versions for backwards compatibility. For example, we would support /api/v2/ and /api/v3/ when incrementing the version. Any calls to API v2 would continue to function normally.
    • We have not yet determined our version deprecation policy.

For example, your system might run the Release Candidate update channel release of WHMCS 9.0.0 and WHMCS API v2. If you upgrade to the Stable update channel of WHMCS 9.0.0 and receive a fix for promotional code calculations, you would now run a different release of WHMCS 9.0.0 but the API version would remain the same despite that fix. This is because the change did not alter the behavior or structure of the API's requests or responses. If, however, we had added a new feature to allow multiple promotional codes, we would increment both the product tier or version and the API version.

HTTP Status Codes

WHMCS API uses standard HTTP status codes in the response header:

Code Description
200 Success
202

You must provide a second authentication factor to finish login.

401

Unauthorized

Usually, this indicates that the username or password is not valid or the system denied the requested access.

403

Forbidden

Usually, this indicates that the IP address is banned due to too many login failures or it is not whitelisted (when WHMCS API IP restriction is enabled).

404 Not Found
412

Precondition Fail

Usually, this indicates that Two-Factor Authentication is required or the provided Two-Factor Authentication token is invalid.

422

Invalid input

500 Internal Server Error

status

Get the API system status

Retrieve the API system status.

Responses

Response Schema: application/json
required
object

Response samples

Content type
application/json
{
  • "data": {
    • "server_time": "2022-02-06T21:04:45+00:00",
    • "timezone": "UTC",
    • "currencies": [
      ]
    }
}

keepalive

Create session refresh

Refresh the session's state.

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

countries

Get all supported countries

Retrieve all supported countries.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (Country)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get states for a country

Retrieve all supported states for a specific country.

path Parameters
country_code
required
string >= 2 characters
Example: US

The ISO 3166-1 alpha-2 country code or the customized country code.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
object (Country)

Response samples

Content type
application/json
{
  • "data": {
    • "code": "US",
    • "name": "United States",
    • "states": [
      ]
    }
}

billing

Get all supported currencies

Retrieve all supported currencies.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (Currency)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get billing cycles

List billing cycles.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (RecurringCycle)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get payment methods

List payment methods.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (PaymentGateway)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

store

Get domain availability (spotlight)

Retrieve a domain availability for spotlight TLDs.

query Parameters
domain
required
string
Example: domain=example.com

Domain name

page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
object or Array of any (Meta)
required
Array of objects (DomainStatus)

Response samples

Content type
application/json
{
  • "meta": {
    • "total_items": 10,
    • "page": 1,
    • "total_pages": 1,
    • "page_size": 50
    },
  • "data": [
    • {
      }
    ]
}

Get domain suggestion options

List the domains suggestions options.

Responses

Response Schema: application/json
object or Array of any
required
object (LookupProviderSuggestionOption)

Response samples

Content type
application/json
{
  • "meta": [ ],
  • "data": {
    • "lookup_provider": "WhmcsDomains",
    • "maximum_length_supported": true,
    • "tld_override_supported": true,
    • "sensitive_filter_override_supported": true,
    • "maximum_term_length": 1500,
    • "configured_suggestion_tlds": [
      ]
    }
}

Create domain suggestions query

Query a list of domain suggestions.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Request Body schema: application/json
required
Any of
term
required
string [ 3 .. 1500 ] characters

domain, keyword, or phrase to use as the basis for suggestions depending on the Lookup Provider capabilities

tlds
Array of strings or null [ 0 .. 255 ] items

an optional array of top level domains (TLDs) to check for suggestions (not all Lookup Providers support this)

maximum_length
integer or null <int32> [ 3 .. 63 ]

the optional maximum number of characters for the suggested domain names (not all Lookup Providers support this)

filter_sensitive_content
boolean or null

whether to filter out sensitive words from the suggestions (not all Lookup Providers support this)

Responses

Response Schema: application/json
object or Array of any (Meta)
required
Array of objects (DomainStatus)

Request samples

Content type
application/json
{
  • "term": "example.com, example, or 'A automotive repair shop in New York'",
  • "tlds": [
    • "com"
    ],
  • "maximum_length": 10,
  • "filter_sensitive_content": true
}

Response samples

Content type
application/json
{
  • "meta": {
    • "total_items": 10,
    • "page": 1,
    • "total_pages": 1,
    • "page_size": 50
    },
  • "data": [
    • {
      }
    ]
}

Get domain registration eligibility

Retrieve the registration eligibility for a domain.

query Parameters
domain
required
string
Example: domain=example.com

Domain name

Responses

Response Schema: application/json
object or Array of any
required
object

Response samples

Content type
application/json
{
  • "meta": [ ],
  • "data": {
    • "is_domain_available": true,
    • "is_tld_available": true,
    • "domain": {
      }
    }
}

Get all TLD pricing

Retrieve all TLD pricing.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
object or Array of any (Meta)
Array of objects (TldPricing)

Response samples

Content type
application/json
{
  • "meta": {
    • "total_items": 10,
    • "page": 1,
    • "total_pages": 1,
    • "page_size": 50
    },
  • "data": [
    • {
      }
    ]
}

Get single TLD pricing

Retrieve a single TLD's pricing.

path Parameters
tld_id
required
string
Example: com

Top level domain ID

Responses

Response Schema: application/json
object or Array of any
object (TldPricing)

Response samples

Content type
application/json
{
  • "meta": [ ],
  • "data": {
    • "tld": "com",
    • "categories": [
      ],
    • "group": "Sale",
    • "addons": {
      },
    • "pricing": [
      ],
    • "grace_period": {
      },
    • "redemption_period": {
      }
    }
}

Get spotlight TLD pricing

Retrieve pricing for spotlight TLDs.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
object or Array of any (Meta)
Array of objects (TldPricing)

Response samples

Content type
application/json
{
  • "meta": {
    • "total_items": 10,
    • "page": 1,
    • "total_pages": 1,
    • "page_size": 50
    },
  • "data": [
    • {
      }
    ]
}

Get supported IDN languages

Retrieve supported IDN languages.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
object or Array of any (Meta)
required
Array of objects (IdnLanguage)

Response samples

Content type
application/json
{
  • "meta": {
    • "total_items": 10,
    • "page": 1,
    • "total_pages": 1,
    • "page_size": 50
    },
  • "data": [
    • {
      }
    ]
}

Get additional fields for TLD

Retrieve all additional fields for a specific TLD.

query Parameters
tld
required
string
Example: tld=com

Top level domain

Responses

Response Schema: application/json
object or Array of any
required
Array of objects (AdditionalField)

Response samples

Content type
application/json
{
  • "meta": [ ],
  • "data": [
    • {
      }
    ]
}

Get all products

Retrieve all products.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (ProductPricing)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get a product

Retrieve a product.

path Parameters
product_id
required
integer <int64>

Product ID

Responses

Response Schema: application/json
required
object (ProductPricing)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "tagline": "Start with shared web hosting today!",
    • "allow_multiple_quantities": {
      },
    • "is_domain_required": true,
    • "stock_control_enabled": true,
    • "stock_quantity": 0,
    • "type": {
      },
    • "order": 123,
    • "group": {
      },
    • "pricing": {
      }
    }
}

Get all product groups

Retrieve all product groups.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (Group)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get product group details

Retrieve a specific product group's data.

path Parameters
group_id
required
integer <int64>

Product Group ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
object (ProductGroup)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ],
    • "products": [
      ]
    }
}

Get product addons

Retrieve addons for a specific product.

path Parameters
product_id
required
integer <int64>

Product ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (AddonPricing)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get product custom fields

Retrieve custom fields for a specific product.

path Parameters
product_id
required
integer <int64>

Product ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (CustomField)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get product configurable options

Retrieve configurable options for a specific product.

path Parameters
product_id
required
integer <int64>

Product ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (ConfigOption)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get cross-sell products

Retrieve all cross-sell products.

path Parameters
product_id
required
integer <int64>

Product ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (ProductPricing)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get product bundle details

Retrieve a specific product group's bundle data.

path Parameters
group_id
required
integer <int64>

Product Group ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
object (BundleGroup)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ],
    • "bundles": [
      ]
    }
}

cart

Create new cart

Create a new cart.

Responses

Response Schema: application/json
required
object (Cart)

Response samples

Content type
application/json
{
  • "data": {
    • "id": "V8UH6nyaU6Hj8hCh"
    }
}

Get all carts for user

List all carts associated with logged-in user.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (Cart)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get cart information

Get cart information.

path Parameters
cart_id
required
string = 16 characters

Cart ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Validate cart contents

Validate the content of a given cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Responses

Response Schema: application/json
required
object

Response samples

Content type
application/json
{
  • "data": {
    • "validation_errors": [
      ]
    }
}

Update cart item

Update an item in the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Request Body schema: application/json
required
Any of
type
required
string
Enum: "domain_register" "domain_transfer" "domain_renewal"
period
required
integer <int32> [ 1 .. 10 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
Example
{
  • "type": "domain_register",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Delete cart item

Delete an item from the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Create cart item addons

Associate product addons to an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Request Body schema: application/json
required
Array of objects (CartItemTypeProductAddonRequest)

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "addons": [
    • {
      }
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Create cart items

Add one or more items to the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Request Body schema: application/json
required
Array of CartItemTypeProductRequest (object) or CartItemTypeServiceAddonRequest (object) or CartItemTypeBundleRequest (object) or CartItemTypeDomainRequest (object) or CartItemTypeDomainRegisterRequest (object) or CartItemTypeDomainRenewalRequest (object) or CartItemTypeServiceRenewalRequest (object)

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "items": [
    • {
      }
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Delete all cart items

Remove all items from cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Delete all cart item addons

Delete all addons from a product item in the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Delete all cart item fields

Delete all custom fields from a product item in the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Create cart item fields

Associate product custom fields to an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Request Body schema: application/json
required
Array of objects (CartItemTypeProductCustomFieldRequest)

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "custom_fields": [
    • {
      }
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Create cart item domain

Associate domain name to an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Request Body schema: application/json
required
domain_name
required
string

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "domain_name": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Get cart item field

Retrieve a specific custom field from an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

custom_field_id
required
integer <int64>
Example: 345

Custom Field ID

Responses

Response Schema: application/json
required
object (CartItemCustomField)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "type": "text",
    • "options": [
      ],
    • "validation": null,
    • "required": true,
    • "value": "DL123456789"
    }
}

Delete cart item field

Delete a custom field from a product item in the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

custom_field_id
required
integer <int64>
Example: 345

Custom Field ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Update cart item field

Update a specific custom field value of an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

custom_field_id
required
integer <int64>
Example: 345

Custom Field ID

Request Body schema: application/json
required
string or boolean (CustomFieldValueType)

Custom Field Value

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "value": "DL123456789"
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Delete all cart item options

Reset all configuration options for a product item in the cart to the default values.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Create cart item options

Associate product configuration options to an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

Request Body schema: application/json
required
Array of objects (CartItemTypeProductConfigOptionRequest)

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "config_options": [
    • {
      }
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Get cart item option

Retrieve a specific configuration option from a product item in the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

config_option_id
required
integer <int64>
Example: 345

Configuration Option ID

Responses

Response Schema: application/json
required
object (CartItemTypeProductConfigOption)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 123,
    • "name": "Number of mailing lists",
    • "type": "dropdown",
    • "option": {
      },
    • "billing": {
      }
    }
}

Delete cart item option

Reset a configuration option for a product item in the cart to the default value.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

config_option_id
required
integer <int64>
Example: 345

Configuration Option ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Update cart item option

Add/Update a specific configuration option value of an existing cart item.

path Parameters
cart_id
required
string = 16 characters

Cart ID

item_id
required
string = 8 characters

Cart Item ID

config_option_id
required
integer <int64>
Example: 345

Configuration Option ID

Request Body schema: application/json
required
(boolean or null) or (integer or null) (ConfigOptionValueType)

Configuration Option Value

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Get applied promo codes

Get the currently-applied promotion codes.

path Parameters
cart_id
required
string = 16 characters

Cart ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects or null (Promotion)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Apply promo code

Apply a promotion code to the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Request Body schema: application/json
required
code
required
string or null
type
string or null
value
number or null <float>

Monetary amount or discount percentage

is_recurring
boolean or null
number_of_recurring
integer or null

maximum number of times the promotion code will be applied if set

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "code": "PROMOCODE",
  • "type": "Fixed Amount",
  • "value": 5,
  • "is_recurring": true,
  • "number_of_recurring": 5
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Delete promo code

Remove the promotion code from the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Responses

Response Schema: application/json
required
object (CartContents)

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Get cart item count

Get the total number of items in the cart.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Responses

Response Schema: application/json
required
object

Response samples

Content type
application/json
{
  • "data": {
    • "counter": 3
    }
}

Set cart geolocation

Set the cart's geolocation used for tax calculation when the user/client is not authenticated. When authenticated, the client's billing address will be used.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Request Body schema: application/json
required
country_code
required
string >= 2 characters

The ISO 3166-1 alpha-2 country code or the customized country code.

state
string or null <= 64 characters

State, province, or region code if applicable

Responses

Response Schema: application/json
required
object (CartContents)

Request samples

Content type
application/json
{
  • "country_code": "US",
  • "state": "California"
}

Response samples

Content type
application/json
{
  • "data": {
    • "items": [
      ],
    • "promotions": [
      ],
    • "totals": {
      }
    }
}

Begin checkout

Begin the checkout process.

path Parameters
cart_id
required
string = 16 characters

Cart ID

Responses

Response Schema: application/json
required
object

Response samples

Content type
application/json
{}

user

Create user session

Begin a user's session.

Request Body schema: application/json
required
email
required
string [ 6 .. 255 ] characters

The user's email address.

password
required
string [ 4 .. 64 ] characters

The user's password.

Responses

Response Schema: application/json
required
object (User)

Logged-in user data.

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "data": {
    • "email": "[email protected]",
    • "firstname": "Davis",
    • "lastname": "Davis",
    • "clients": [
      ]
    }
}

End user session

Log out of the user session.

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Submit user 2FA response

Submit a user's two-factor challenge response.

Request Body schema: application/json
required
fields
required
object

Responses

Response Schema: application/json
required
object (User)

Logged-in user data.

Request samples

Content type
application/json
{
  • "key": "677440"
}

Response samples

Content type
application/json
{
  • "data": {
    • "email": "[email protected]",
    • "firstname": "Davis",
    • "lastname": "Davis",
    • "clients": [
      ]
    }
}

Get user clients

List the user's associated clients.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (Client)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Update active client

Select an active client for the logged-in user.

path Parameters
client_uuid
required
string = 36 characters
Example: 11C2M72y-z54n-5721-nnF8-13492be5uHiu

Client UUID

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get all client services

Retrieve all services for the authenticated client.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (Service)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get client service

Retrieve a specific service for the authenticated client.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

Responses

Response Schema: application/json
required
Service (object)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 789,
    • "product": {
      },
    • "server": {
      },
    • "domain": "example.com",
    • "status": "pending",
    • "quantity": 1,
    • "registration_date": "2022-03-14",
    • "billing": {
      },
    • "addons": [
      ],
    • "custom_fields": [
      ],
    • "config_options": [
      ],
    • "renewal": {
      }
    }
}

Get service addons

Retrieve purchased addons for a specific service.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (ServiceAddon)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get service addon

Retrieve a single purchased addon for a specific service.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

service_addon_id
required
integer <int64>
Example: 567

Service Addon ID

Responses

Response Schema: application/json
required
object (ServiceAddon)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 456,
    • "addon": {
      },
    • "service": {
      },
    • "quantity": 0,
    • "status": "Active",
    • "registration_date": "2022-01-05",
    • "billing": {
      },
    • "renewal": {
      }
    }
}

Get service custom fields

Retrieve custom fields for a specific service.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (ServiceCustomField)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get service custom field

Retrieve a single custom field for a specific service.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

service_customfield_id
required
integer <int64>
Example: 234

Service Custom Field ID

Responses

Response Schema: application/json
required
object (ServiceCustomField)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 456,
    • "custom_field": {
      },
    • "service": {
      },
    • "value": "DL123456789"
    }
}

Get service options

Retrieve selected configurable options for a specific service.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (ServiceConfigOption)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get service option

Retrieve a single configuration option for a specific service.

path Parameters
service_id
required
integer <int64>
Example: 789

Service ID

service_configoption_id
required
integer <int64>
Example: 89

Service Configuration Option ID

Responses

Response Schema: application/json
required
object (ServiceConfigOption)

Response samples

Content type
application/json
{
  • "data": {
    • "id": 456,
    • "config_option": {
      },
    • "service": {
      },
    • "option": {
      },
    • "billing": {
      }
    }
}

Get all client domains

Retrieve all domains for the authenticated client.

query Parameters
page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (DomainRenewal)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get client domain

Retrieve a specific domain for the authenticated client.

path Parameters
domain_id
required
integer <int64>
Example: 789

Domain ID

Responses

Response Schema: application/json
required
DomainRenewal (object)

Response samples

Content type
application/json
{
  • "data": {
    • "domain_name": "string",
    • "id": 123456,
    • "status": "Active",
    • "expiry_date": "2026-03-14",
    • "days_to_expiry": 45,
    • "days_of_grace_period": 30,
    • "in_grace_period": true,
    • "days_of_redemption_period": 30,
    • "past_redemption_period": true,
    • "days_left_in_period": 15,
    • "in_redemption_period": true,
    • "is_premium": true,
    • "is_expiring_soon": true,
    • "eligible_for_renewal": true,
    • "free_domain_renewal": true,
    • "renewal_periods": [
      ]
    }
}

admin

Create admin session

Begin an administrator session.

Request Body schema: application/json
required
username
required
string [ 3 .. 255 ] characters

The administrator's username.

password
required
string [ 4 .. 64 ] characters

The administrator's password.

Responses

Response Schema: application/json
required
object (Administrator)

Logged-in administrator data.

Request samples

Content type
application/json
{
  • "username": "administrator",
  • "password": "NeedNewPassword!!!"
}

Response samples

Content type
application/json
{}

End admin session

Log out of the administrator's session.

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Submit admin 2FA response

Submit an admin's two-factor challenge response.

Request Body schema: application/json
required
fields
required
object

Responses

Response Schema: application/json
required
object (Administrator)

Logged-in administrator data.

Request samples

Content type
application/json
{
  • "key": "928364"
}

Response samples

Content type
application/json
{}

Get system status

Obtain system status.

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get clients by search

Find clients matching a search query.

query Parameters
query
required
string [ 3 .. 128 ] characters

Search query

page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (AdminClient)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Get users by search

Find users matching a search query.

query Parameters
query
required
string [ 3 .. 128 ] characters

Search query

page
integer >= 1
Example: page=1

Page number

page_size
integer [ 1 .. 500 ]
Example: page_size=10

Number of items per page. The maximum allowed value is 500. The default value is 50.

Responses

Response Schema: application/json
required
Array of objects (AdminUser)

Response samples

Content type
application/json
{
  • "data": [
    • {
      }
    ]
}

Create client masquerade

Masquerade as the owner of the client specified by client ID.

path Parameters
client_id
required
integer <int64>

Client ID

Responses

Response Schema: application/json
required
object (AdminUser)

Logged-in user data.

Response samples

Content type
application/json
{
  • "data": {
    • "email": "[email protected]",
    • "firstname": "Davis",
    • "lastname": "Davis",
    • "clients": [
      ],
    • "id": 123
    }
}

Create user masquerade

Masquerade as a client owned by a user specified by user ID.

path Parameters
user_id
required
integer <int64>

User ID

Responses

Response Schema: application/json
required
object (AdminUser)

Logged-in user data.

Response samples

Content type
application/json
{
  • "data": {
    • "email": "[email protected]",
    • "firstname": "Davis",
    • "lastname": "Davis",
    • "clients": [
      ],
    • "id": 123
    }
}

Schemas

AdditionalField

name
string or null

The name of Domain Additional Field

(boolean or null) or (object or null)

Whether the additional field is never required, always required, or conditionally required.

type
string or null
Enum: "dropdown" "radio" "tickbox" "text" "display"

Additional Field type

default
string or null

The default input field value

Array of objects or null (AdditionalFieldValueType)

Certain Domain Additional Field types have predefined options

{
  • "name": "Nexus Category",
  • "required": true,
  • "type": "dropdown",
  • "default": "C11",
  • "options": [
    • {
      }
    ]
}

AdditionalFieldValueType

value
string
display_name
string or null
{
  • "value": "C11",
  • "display_name": "C11 - United States Citizen"
}

Addon

id
required
integer <int64>
name
string or null non-empty
description
string or null
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string"
}

AddonPricing

id
required
integer <int64>
name
string or null non-empty
description
string or null
required
object (Pricing)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "pricing": {
    • "is_free": true,
    • "onetime": {
      },
    • "recurring": [
      ]
    }
}

AdminClient

uuid
required
string = 36 characters
company
string <= 64 characters
selected
boolean
id
integer <int64>
{
  • "uuid": "11C2M72y-z54n-5721-nnF8-13492be5uHiu",
  • "company": "string",
  • "selected": true,
  • "id": 123
}

AdminUser

email
required
string (Email) [ 6 .. 255 ] characters
firstname
required
string (Name) [ 2 .. 64 ] characters
lastname
required
string (Name) [ 2 .. 64 ] characters
required
Array of objects (Client)
id
integer <int64>
{
  • "email": "[email protected]",
  • "firstname": "Davis",
  • "lastname": "Davis",
  • "clients": [
    • {
      }
    ],
  • "id": 123
}

Administrator

email
required
string (Email) [ 6 .. 255 ] characters
firstname
required
string (Name) [ 2 .. 64 ] characters
lastname
required
string (Name) [ 2 .. 64 ] characters
{}

Amount

value
required
string
code
required
string (CurrencyCode) ^[A-Z]{3}$
display_value
required
string
prefix
required
string

Optional currency prefix

suffix
required
string

Optional currency prefix

{
  • "value": "19.99",
  • "code": "USD",
  • "display_value": "$19.99 USD",
  • "prefix": "$",
  • "suffix": " USD"
}

BillingCycle

string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

"monthly"

Bundle

id
required
integer <int64>
name
string or null non-empty
description
string or null
object (Amount)
max_uses
integer
uses
integer
allow_promo
boolean
is_featured
boolean
BundleItemDomain (object) or BundleItemProduct (object)
object (Group)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "max_uses": 0,
  • "uses": 0,
  • "allow_promo": true,
  • "is_featured": true,
  • "bundle_items": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "bundle_type": "domain",
    • "tlds": [
      ],
    • "registration_period": 10,
    • "price_override": true,
    • "price": {
      },
    • "addons": [
      ]
    },
  • "group": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ]
    }
}

BundleGroup

id
required
integer <int64>
name
string or null non-empty
description
string or null
icon
string or null
headline
string or null
tagline
string or null
order
integer <int32>

The display order of the group as configured in the application.

Array of objects (Feature)
Array of objects (BundlePricing)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "icon": "fa-solid",
  • "headline": "Headline",
  • "tagline": "Tagline",
  • "order": 123,
  • "features": [
    • {
      }
    ],
  • "bundles": [
    • {
      }
    ]
}

BundleItemDomain

id
required
integer <int64>
name
string or null non-empty
description
string or null
bundle_type
string
Value: "domain"
tlds
Array of strings or null
registration_period
integer [ 0 .. 10 ]
price_override
boolean
object (Amount)
addons
Array of strings or null
Enum: "dnsmanagement" "emailforwarding" "idprotection"
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "bundle_type": "domain",
  • "tlds": [
    • ".com"
    ],
  • "registration_period": 10,
  • "price_override": true,
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "addons": [
    • "dnsmanagement"
    ]
}

BundleItemProduct

id
required
integer <int64>
name
string or null non-empty
description
string or null
bundle_type
string
Value: "product"
billing_cycle
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

price_override
boolean
object (Amount)
Array of objects or null
addons
Array of integers or null
tlds
Array of strings or null
domain_registration_period
integer [ 0 .. 10 ]
domain_price_override
boolean
object (Amount)
domain_addons
Array of strings or null
Enum: "dnsmanagement" "emailforwarding" "idprotection"
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "bundle_type": "product",
  • "billing_cycle": "monthly",
  • "price_override": true,
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "config_option": [
    • {
      }
    ],
  • "addons": [
    • 0
    ],
  • "tlds": [
    • ".com"
    ],
  • "domain_registration_period": 10,
  • "domain_price_override": true,
  • "domain_price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "domain_addons": [
    • "dnsmanagement"
    ]
}

BundlePricing

id
required
integer <int64>
name
string or null non-empty
description
string or null
required
object
max_uses
integer
uses
integer
allow_promo
boolean
is_featured
boolean
BundleItemDomain (object) or BundleItemProduct (object)
object (Group)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "max_uses": 0,
  • "uses": 0,
  • "allow_promo": true,
  • "is_featured": true,
  • "bundle_items": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "bundle_type": "domain",
    • "tlds": [
      ],
    • "registration_period": 10,
    • "price_override": true,
    • "price": {
      },
    • "addons": [
      ]
    },
  • "group": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ]
    }
}

Cart

id
required
string = 16 characters
{
  • "id": "V8UH6nyaU6Hj8hCh"
}

CartContents

required
Array of CartItemTypeProduct (object) or CartItemTypeServiceAddon (object) or CartItemTypeDomainRequest (object) or CartItemTypeDomainRegister (object) or CartItemTypeDomainRenewalRequest (object) or CartItemTypeServiceRenewal (object) or CartItemTypeBundle (object)
required
Array of objects or null (Promotion)
required
object (CartTotal)
{
  • "items": [
    • {
      }
    ],
  • "promotions": [
    • {
      }
    ],
  • "totals": {
    • "recurring": [
      ],
    • "subtotal": {
      },
    • "discounts": [
      ],
    • "geolocation": {
      },
    • "taxes": [
      ],
    • "total": {
      }
    }
}

CartItemBilling

cycle
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

object or null
{
  • "cycle": "monthly",
  • "price": {
    • "onetime": {
      },
    • "recurring": {
      }
    }
}

CartItemCustomField

id
required
integer <int64>
name
string or null non-empty
description
string or null
type
required
string
Enum: "text" "link" "password" "dropdown" "checkbox" "textarea"

Field type

Array of strings or booleans or null (CustomFieldValueType)
validation
string or null
required
required
boolean
required
string or boolean (CustomFieldValueType)

Custom Field Value

{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "type": "text",
  • "options": [
    • "DL123456789"
    ],
  • "validation": null,
  • "required": true,
  • "value": "DL123456789"
}

CartItemId

string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

"stringst"

CartItemTypeBundle

type
required
string
Value: "bundle"
id
required
integer <int64>
Array of CartItemTypeBundleProduct (object) or CartItemTypeDomainRequest (object) or CartItemTypeDomainRegister (object)
{
  • "type": "bundle",
  • "id": 0,
  • "items": [
    • {
      }
    ]
}

CartItemTypeBundleProduct

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

type
string
Value: "product"
quantity
required
integer <int32>
(string or null) or (CartItemTypeDomainRequest (object or null)) or (CartItemTypeDomainRegister (object or null))
required
object (Product)
required
object or null (CartItemBilling)
Array of objects (CartItemTypeProductAddon)
Array of objects (CartItemCustomField)
Array of objects (CartItemTypeProductConfigOption)
{
  • "item_id": "stringst",
  • "type": "product",
  • "quantity": 5,
  • "domain": "string",
  • "product": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "tagline": "Start with shared web hosting today!",
    • "allow_multiple_quantities": {
      },
    • "is_domain_required": true,
    • "stock_control_enabled": true,
    • "stock_quantity": 0,
    • "type": {
      },
    • "order": 123,
    • "group": {
      }
    },
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    },
  • "addons": [
    • {
      }
    ],
  • "custom_fields": [
    • {
      }
    ],
  • "config_options": [
    • {
      }
    ]
}

CartItemTypeBundleProductRequest

type
required
string
Value: "product"
product_id
required
integer <int64>
billing_cycle
required
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

quantity
integer <int32>
(string or null) or (CartItemTypeDomainRequest (object or null)) or (CartItemTypeDomainRegisterRequest (object or null))
Array of objects (CartItemTypeProductAddonRequest)
Array of objects (CartItemTypeProductCustomFieldRequest)
Array of objects (CartItemTypeProductConfigOptionRequest)
{
  • "type": "product",
  • "product_id": 123,
  • "billing_cycle": "monthly",
  • "quantity": 5,
  • "domain": "string",
  • "addons": [
    • {
      }
    ],
  • "custom_fields": [
    • {
      }
    ],
  • "config_options": [
    • {
      }
    ]
}

CartItemTypeBundleRequest

type
required
string
Value: "bundle"
id
required
integer <int64>
Array of CartItemTypeBundleProductRequest (object) or CartItemTypeDomainRequest (object) or CartItemTypeDomainRegisterRequest (object)
{
  • "type": "bundle",
  • "id": 123,
  • "items": [
    • {
      }
    ]
}

CartItemTypeDomain

type
required
string
Enum: "domain_register" "domain_transfer" "domain_renewal"
period
required
integer <int32> [ 1 .. 10 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

{
  • "type": "domain_register",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ]
}

CartItemTypeDomainRegister

type
required
string
Enum: "domain_register" "domain_transfer" "domain_renewal"
period
required
integer <int32> [ 1 .. 10 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

name
required
string [ 3 .. 255 ] characters

a valid domain name to register

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

Array of objects (AdditionalField)
required
object or null (CartItemBilling)
{
  • "type": "domain_register",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ],
  • "name": "thisisarandomwhmcsdomainname.com",
  • "item_id": "stringst",
  • "additional_fields": [
    • {
      }
    ],
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    }
}

CartItemTypeDomainRegisterRequest

type
required
string
Enum: "domain_register" "domain_transfer" "domain_renewal"
period
required
integer <int32> [ 1 .. 10 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

name
required
string [ 3 .. 255 ] characters

a valid domain name to register

additional_fields
Array of strings or null

certain TLDs require additional fields to be specified

{
  • "type": "domain_register",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ],
  • "name": "thisisarandomwhmcsdomainname.com",
  • "additional_fields": [
    • "C1"
    ]
}

CartItemTypeDomainRenewal

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

name
required
string >= 3 characters

a valid domain name to renew

required
object or null (CartItemBilling)
type
required
string
Enum: "domain_renewal" "service_renewal" "addon_renewal"
id
required
integer <int64>

the ID of the service, service addon, or domain to renew

period
required
integer <int32> [ 1 .. 9 ]

the number of years to renew the domain for

{
  • "item_id": "stringst",
  • "name": "example.com",
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    },
  • "type": "domain_renewal",
  • "id": 123,
  • "period": 1
}

CartItemTypeDomainRenewalRequest

type
required
string
Enum: "domain_renewal" "service_renewal" "addon_renewal"
id
required
integer <int64>

the ID of the service, service addon, or domain to renew

period
required
integer <int32> [ 1 .. 9 ]

the number of years to renew the domain for

{
  • "type": "domain_renewal",
  • "id": 123,
  • "period": 1
}

CartItemTypeDomainRequest

type
required
string
Enum: "domain_register" "domain_transfer" "domain_renewal"
period
required
integer <int32> [ 1 .. 10 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

name
required
string [ 3 .. 255 ] characters

a valid domain name to register

{
  • "type": "domain_register",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ],
  • "name": "thisisarandomwhmcsdomainname.com"
}

CartItemTypeDomainTransfer

type
required
string
Enum: "domain_transfer" "domain_register" "domain_renewal"
period
required
integer <int32> [ 1 .. 9 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

name
required
string [ 3 .. 255 ] characters

a valid domain name to register

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

additional_fields
Array of strings or null

certain TLDs require additional fields to be specified

required
object or null (CartItemBilling)
epp_code
required
string [ 1 .. 255 ] characters

the EPP code for transferring the domain

{
  • "type": "domain_transfer",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ],
  • "name": "thisisarandomwhmcsdomainname.com",
  • "item_id": "stringst",
  • "additional_fields": [
    • "C1"
    ],
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    },
  • "epp_code": "12345abcde"
}

CartItemTypeDomainTransferRequest

type
required
string
Enum: "domain_transfer" "domain_register" "domain_renewal"
period
required
integer <int32> [ 1 .. 9 ]

the number of years to register the domain for

idn_language
string or null

certain IDN domains require a language code to be specified

dns_management
boolean
email_forwarding
boolean
id_protection
boolean
nameservers
Array of strings or null

list of nameservers to use instead of defaults

name
required
string [ 3 .. 255 ] characters

a valid domain name to register

additional_fields
Array of strings or null

certain TLDs require additional fields to be specified

epp_code
required
string [ 1 .. 255 ] characters

the EPP code for transferring the domain

{
  • "type": "domain_transfer",
  • "period": 1,
  • "idn_language": "afr",
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "nameservers": [
    • "ns1.example.com"
    ],
  • "name": "thisisarandomwhmcsdomainname.com",
  • "additional_fields": [
    • "C1"
    ],
  • "epp_code": "12345abcde"
}

CartItemTypeProduct

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

type
string
Value: "product"
quantity
required
integer <int32>
domain
string or null
required
object (Product)
required
object or null (CartItemBilling)
Array of objects (CartItemTypeProductAddon)
Array of objects (CartItemCustomField)
Array of objects (CartItemTypeProductConfigOption)
{
  • "item_id": "stringst",
  • "type": "product",
  • "quantity": 5,
  • "domain": "example.com",
  • "product": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "tagline": "Start with shared web hosting today!",
    • "allow_multiple_quantities": {
      },
    • "is_domain_required": true,
    • "stock_control_enabled": true,
    • "stock_quantity": 0,
    • "type": {
      },
    • "order": 123,
    • "group": {
      }
    },
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    },
  • "addons": [
    • {
      }
    ],
  • "custom_fields": [
    • {
      }
    ],
  • "config_options": [
    • {
      }
    ]
}

CartItemTypeProductAddon

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

quantity
required
integer <int32>
required
object (Addon)
required
object or null (CartItemBilling)
{
  • "item_id": "stringst",
  • "quantity": 5,
  • "addon": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string"
    },
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    }
}

CartItemTypeProductAddonRequest

id
required
integer <int64>
quantity
integer <int32>
{
  • "id": 456,
  • "quantity": 5
}

CartItemTypeProductConfigOption

id
required
integer <int64>
name
string
type
required
string (ConfigOptionType)
Enum: "dropdown" "radio" "yesno" "quantity"

Config option type

object
required
object or null (CartItemBilling)
{
  • "id": 123,
  • "name": "Number of mailing lists",
  • "type": "dropdown",
  • "option": {
    • "name": "Config Option Name",
    • "value": true
    },
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    }
}

CartItemTypeProductConfigOptionRequest

id
required
integer <int64>
required
(boolean or null) or (integer or null) (ConfigOptionValueType)

Configuration Option Value

{
  • "id": 456,
  • "value": true
}

CartItemTypeProductCustomFieldRequest

id
required
integer <int64>
required
string or boolean (CustomFieldValueType)

Custom Field Value

{
  • "id": 456,
  • "value": "DL123456789"
}

CartItemTypeProductEdit

type
string
Value: "product"
quantity
integer or null <int32>
billing_cycle
required
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

{
  • "type": "product",
  • "quantity": 5,
  • "billing_cycle": "monthly"
}

CartItemTypeProductRequest

type
required
string
Value: "product"
product_id
required
integer <int64>
billing_cycle
required
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

quantity
integer <int32>
domain
string or null
Array of objects (CartItemTypeProductAddonRequest)
Array of objects (CartItemTypeProductCustomFieldRequest)
Array of objects (CartItemTypeProductConfigOptionRequest)
{
  • "type": "product",
  • "product_id": 123,
  • "billing_cycle": "monthly",
  • "quantity": 5,
  • "domain": "example.com",
  • "addons": [
    • {
      }
    ],
  • "custom_fields": [
    • {
      }
    ],
  • "config_options": [
    • {
      }
    ]
}

CartItemTypeServiceAddon

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

quantity
required
integer <int32>
required
object (Addon)
required
object or null (CartItemBilling)
service_id
integer <int64>
billing_cycle
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

{
  • "item_id": "stringst",
  • "quantity": 5,
  • "addon": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string"
    },
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    },
  • "service_id": 123,
  • "billing_cycle": "monthly"
}

CartItemTypeServiceAddonRequest

type
required
string
Value: "addon"
object (Addon)
service_id
integer <int64>
billing_cycle
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

quantity
integer or null <int32>
{
  • "type": "addon",
  • "data": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string"
    },
  • "service_id": 123,
  • "billing_cycle": "monthly",
  • "quantity": 0
}

CartItemTypeServiceRenewal

item_id
required
string (CartItemId) [ 8 .. 16 ] characters

Unique cart item ID. Automatically generated when an item is added to cart.

name
required
string

Name of the service

domain
string or null

service domain if applicable

next_due_date
string or null <date>

service next due date if applicable

status
string

service status

required
object or null (CartItemBilling)
type
required
string
Enum: "service_renewal" "addon_renewal" "domain_renewal"
id
required
integer <int64>

the ID of the service, service addon, or domain to renew

{
  • "item_id": "stringst",
  • "name": "cPanel Hosting",
  • "domain": "example.com",
  • "next_due_date": "2024-12-31",
  • "status": "string",
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      }
    },
  • "type": "service_renewal",
  • "id": 123
}

CartItemTypeServiceRenewalRequest

type
required
string
Enum: "service_renewal" "addon_renewal" "domain_renewal"
id
required
integer <int64>

the ID of the service, service addon, or domain to renew

{
  • "type": "service_renewal",
  • "id": 123
}

CartItemValidationError

item_id
string
Array of strings or objects
{
  • "item_id": "string",
  • "errors": [
    • "string"
    ]
}

CartTotal

Array of objects
object (Amount)
Array of objects (Discount)
object (GeoLocation)
Array of objects (Tax)
object (Amount)
{
  • "recurring": [
    • {
      }
    ],
  • "subtotal": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "discounts": [
    • {
      }
    ],
  • "geolocation": {
    • "country_code": "US",
    • "state": "California"
    },
  • "taxes": [
    • {
      }
    ],
  • "total": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

Client

uuid
required
string = 36 characters
company
string <= 64 characters
selected
boolean
{
  • "uuid": "11C2M72y-z54n-5721-nnF8-13492be5uHiu",
  • "company": "string",
  • "selected": true
}

ConfigOption

id
required
integer <int64>
name
string or null non-empty
description
string or null
type
required
string (ConfigOptionType)
Enum: "dropdown" "radio" "yesno" "quantity"

Config option type

quantity_minimum
integer or null <int32>
quantity_maximum
integer or null <int32>
sort_order
integer <int32>
object or null (Group)
Array of objects or null (ConfigOptionSelection)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "type": "dropdown",
  • "quantity_minimum": 1,
  • "quantity_maximum": 99,
  • "sort_order": 1,
  • "group": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ]
    },
  • "options": [
    • {
      }
    ]
}

ConfigOptionSelection

name
required
string
required
(boolean or null) or (integer or null) (ConfigOptionValueType)

Configuration Option Value

sort_order
integer <int32>
required
object (Pricing)
{
  • "name": "Daily Virus Scanning",
  • "value": true,
  • "sort_order": 2,
  • "pricing": {
    • "is_free": true,
    • "onetime": {
      },
    • "recurring": [
      ]
    }
}

ConfigOptionType

string (ConfigOptionType)
Enum: "dropdown" "radio" "yesno" "quantity"

Config option type

"dropdown"

ConfigOptionValueType

Any of
boolean or null

for yesno type, the value should be true or false

1

Country

code
required
string >= 2 characters

The ISO 3166-1 alpha-2 country code or the customized country code.

name
required
string
Array of objects or null (State)
{
  • "code": "US",
  • "name": "United States",
  • "states": [
    • {
      }
    ]
}

Currency

code
string (CurrencyCode) ^[A-Z]{3}$
prefix
string

Optional currency prefix

suffix
string

Optional currency prefix

default
boolean

This is true if the currency is currently the system default.

{
  • "code": "USD",
  • "prefix": "$",
  • "suffix": "USD",
  • "default": true
}

CurrencyCode

string (CurrencyCode) ^[A-Z]{3}$
"USD"

CustomField

id
required
integer <int64>
name
string or null non-empty
description
string or null
type
required
string
Enum: "text" "link" "password" "dropdown" "checkbox" "textarea"

Field type

Array of strings or booleans or null (CustomFieldValueType)
validation
string or null
required
required
boolean
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "type": "text",
  • "options": [
    • "DL123456789"
    ],
  • "validation": null,
  • "required": true
}

CustomFieldValueType

Any of
string

Custom Field Value

true

CycleRecurringPrice

cycle
required
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

required
object (Amount)
required
object (Amount)
{
  • "cycle": "monthly",
  • "setup": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

Discount

type
required
string
Enum: "promotions" "client"
required
object (Amount)
{
  • "type": "promotions",
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

Domain

domain_name
required
string
{
  • "domain_name": "string"
}

DomainAddon

dns_management
required
boolean

Whether DNS management is included

email_forwarding
required
boolean

Whether email forwarding is included

id_protection
required
boolean

Whether ID protection is included

epp_code_required
required
boolean

Whether an EPP code is required for domain transfers

{
  • "dns_management": true,
  • "email_forwarding": true,
  • "id_protection": true,
  • "epp_code_required": false
}

DomainGracePeriod

days
required
integer
required
object (Amount)
{
  • "days": 1,
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

DomainPricing

period
required
integer
required
object or null
required
object or null
required
object or null
{
  • "period": 0,
  • "register": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "transfer": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "renew": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

DomainRenewal

domain_name
required
string
id
required
integer <int64>

the unique ID for the domain within the application

status
required
any
Enum: "Active" "Expired" "Grace" "Redemption" "Pending" "Cancelled"

the current status of the domain

expiry_date
required
string <date>

the date the domain is due to expire

days_to_expiry
integer <int32>

the number of days until the domain expires

days_of_grace_period
integer <int32>

the number of days in the grace period after expiry

in_grace_period
boolean

whether the domain is currently within the grace period after expiry

days_of_redemption_period
integer <int32>

the number of days in the redemption period after expiry

past_redemption_period
boolean

whether the domain is currently within the redemption period after expiry

days_left_in_period
integer <int32>

the number of days left in the current grace or redemption period

in_redemption_period
boolean

whether the domain is currently within the redemption period after expiry

is_premium
boolean

whether the domain is a premium domain

is_expiring_soon
boolean

whether the domain is within the renewal period

eligible_for_renewal
required
boolean

whether the domain is eligible for renewal

free_domain_renewal
boolean

whether the domain renewal is free

required
Array of objects (DomainRenewalPricing)

the available renewal periods for the domain

{
  • "domain_name": "string",
  • "id": 123456,
  • "status": "Active",
  • "expiry_date": "2026-03-14",
  • "days_to_expiry": 45,
  • "days_of_grace_period": 30,
  • "in_grace_period": true,
  • "days_of_redemption_period": 30,
  • "past_redemption_period": true,
  • "days_left_in_period": 15,
  • "in_redemption_period": true,
  • "is_premium": true,
  • "is_expiring_soon": true,
  • "eligible_for_renewal": true,
  • "free_domain_renewal": true,
  • "renewal_periods": [
    • {
      }
    ]
}

DomainRenewalPricing

period
required
integer
required
object
{
  • "period": 0,
  • "pricing": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

DomainStatus

domain_name
required
string
idn_domain_name
required
string
tld
string
sld
required
string
idn_sld
required
string
status
required
string
Enum: "registered" "available for registration" "reserved" "unknown" "tld not supported"
group
required
string or null
required
Array of objects (DomainPricing)
required
object (DomainPricing)
is_premium
required
boolean
required
object or null
{
  • "domain_name": "string",
  • "idn_domain_name": "string",
  • "tld": "string",
  • "sld": "string",
  • "idn_sld": "string",
  • "status": "registered",
  • "group": "string",
  • "pricing": [
    • {
      }
    ],
  • "shortest_period": {
    • "period": 0,
    • "register": {
      },
    • "transfer": {
      },
    • "renew": {
      }
    },
  • "is_premium": true,
  • "premium_cost_pricing": {
    • "period": 0,
    • "register": {
      },
    • "transfer": {
      },
    • "renew": {
      }
    }
}

DomainSuggestionRequest

term
required
string [ 3 .. 1500 ] characters

domain, keyword, or phrase to use as the basis for suggestions depending on the Lookup Provider capabilities

tlds
Array of strings or null [ 0 .. 255 ] items

an optional array of top level domains (TLDs) to check for suggestions (not all Lookup Providers support this)

maximum_length
integer or null <int32> [ 3 .. 63 ]

the optional maximum number of characters for the suggested domain names (not all Lookup Providers support this)

filter_sensitive_content
boolean or null

whether to filter out sensitive words from the suggestions (not all Lookup Providers support this)

{
  • "term": "example.com, example, or 'A automotive repair shop in New York'",
  • "tlds": [
    • "com"
    ],
  • "maximum_length": 10,
  • "filter_sensitive_content": true
}

Email

string (Email) [ 6 .. 255 ] characters

Entity

id
required
integer <int64>
name
string or null non-empty
description
string or null
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string"
}

Feature

id
required
integer <int64>
name
required
string or null non-empty
description
string or null
order
required
integer <int64>
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "order": 123
}

GeneralError

message
string
{
  • "message": "string"
}

GeoLocation

country_code
required
string >= 2 characters

The ISO 3166-1 alpha-2 country code or the customized country code.

state
string or null <= 64 characters

State, province, or region code if applicable

{
  • "country_code": "US",
  • "state": "California"
}

Group

id
required
integer <int64>
name
string or null non-empty
description
string or null
icon
string or null
headline
string or null
tagline
string or null
order
integer <int32>

The display order of the group as configured in the application.

Array of objects (Feature)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "icon": "fa-solid",
  • "headline": "Headline",
  • "tagline": "Tagline",
  • "order": 123,
  • "features": [
    • {
      }
    ]
}

IdnLanguage

code
required
string
language
required
string
{
  • "code": "eng",
  • "language": "English"
}

LineItemPrice

object (OneTimePrice)
object (RecurringPrice)
{
  • "onetime": {
    • "setup": {
      },
    • "amount": {
      }
    },
  • "recurring": {
    • "setup": {
      },
    • "amount": {
      }
    }
}

LookupProviderSuggestionOption

lookup_provider
required
string

the unique system name of the Lookup Provider

maximum_length_supported
required
boolean

if the Maximum Length property is supported by the Lookup Provider

tld_override_supported
required
boolean

if the TLD Override property is supported by the Lookup Provider

sensitive_filter_override_supported
required
boolean

if sensitive word filtering override is supported by the Lookup Provider

maximum_term_length
integer or null <int32> [ 3 .. 1500 ]

the maximum length of the search term supported by the Lookup Provider

configured_suggestion_tlds
required
Array of strings or null

an array of default TLDs configured for suggestions

{
  • "lookup_provider": "WhmcsDomains",
  • "maximum_length_supported": true,
  • "tld_override_supported": true,
  • "sensitive_filter_override_supported": true,
  • "maximum_term_length": 1500,
  • "configured_suggestion_tlds": [
    • "com"
    ]
}

Meta

One of
total_items
required
integer

The total number of results available.

page
required
integer
total_pages
required
integer
page_size
required
integer

The current number of results per page.

[ ]

Name

string (Name) [ 2 .. 64 ] characters
"Davis"

OneTimePrice

required
object (Amount)
required
object (Amount)
{
  • "setup": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

Password

string (Password) [ 4 .. 64 ] characters
"NeedNewPassword!!!"

PaymentGateway

name
required
string

Name of the payment gateway module.

description
string

The friendly name of the payment gateway module.

{
  • "name": "banktransfer",
  • "description": "Bank Transfer"
}

Pricing

is_free
required
boolean
object (OneTimePrice)
Array of objects (CycleRecurringPrice)
{
  • "is_free": true,
  • "onetime": {
    • "setup": {
      },
    • "amount": {
      }
    },
  • "recurring": [
    • {
      }
    ]
}

Product

id
required
integer <int64>
name
string or null non-empty
description
string or null
tagline
string or null
object (ProductMultipleQuantities)
is_domain_required
boolean

Whether a domain is required to order this product

stock_control_enabled
boolean

Whether stock control is enabled for this product

stock_quantity
integer or null <int32>

The current stock quantity if stock control is enabled

object (ProductType)
order
integer <int32>

The display order of the product as configured in the application.

object (Group)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "tagline": "Start with shared web hosting today!",
  • "allow_multiple_quantities": {
    • "is_supported": false,
    • "type": {
      }
    },
  • "is_domain_required": true,
  • "stock_control_enabled": true,
  • "stock_quantity": 0,
  • "type": {
    • "name": "hostingaccount",
    • "display_name": "Hosting Account"
    },
  • "order": 123,
  • "group": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ]
    }
}

ProductGroup

id
required
integer <int64>
name
string or null non-empty
description
string or null
icon
string or null
headline
string or null
tagline
string or null
order
integer <int32>

The display order of the group as configured in the application.

Array of objects (Feature)
Array of objects (ProductPricing)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "icon": "fa-solid",
  • "headline": "Headline",
  • "tagline": "Tagline",
  • "order": 123,
  • "features": [
    • {
      }
    ],
  • "products": [
    • {
      }
    ]
}

ProductMultipleQuantities

is_supported
boolean

Indicates if multiple quantities are supported for the product.

object
{
  • "is_supported": false,
  • "type": {
    • "code": 1,
    • "display": "No"
    }
}

ProductPricing

id
required
integer <int64>
name
string or null non-empty
description
string or null
tagline
string or null
object (ProductMultipleQuantities)
is_domain_required
boolean

Whether a domain is required to order this product

stock_control_enabled
boolean

Whether stock control is enabled for this product

stock_quantity
integer or null <int32>

The current stock quantity if stock control is enabled

object (ProductType)
order
integer <int32>

The display order of the product as configured in the application.

object (Group)
required
object (Pricing)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "tagline": "Start with shared web hosting today!",
  • "allow_multiple_quantities": {
    • "is_supported": false,
    • "type": {
      }
    },
  • "is_domain_required": true,
  • "stock_control_enabled": true,
  • "stock_quantity": 0,
  • "type": {
    • "name": "hostingaccount",
    • "display_name": "Hosting Account"
    },
  • "order": 123,
  • "group": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "icon": "fa-solid",
    • "headline": "Headline",
    • "tagline": "Tagline",
    • "order": 123,
    • "features": [
      ]
    },
  • "pricing": {
    • "is_free": true,
    • "onetime": {
      },
    • "recurring": [
      ]
    }
}

ProductType

name
string
Enum: "hostingaccount" "reselleraccount" "server" "other"
display_name
string
{
  • "name": "hostingaccount",
  • "display_name": "Hosting Account"
}

Promotion

code
required
string or null
type
string or null
value
number or null <float>

Monetary amount or discount percentage

is_recurring
boolean or null
number_of_recurring
integer or null

maximum number of times the promotion code will be applied if set

{
  • "code": "PROMOCODE",
  • "type": "Fixed Amount",
  • "value": 5,
  • "is_recurring": true,
  • "number_of_recurring": 5
}

RecurringCycle

cycle
required
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

description
string
months
integer <int32>

The number of months for this cycle.

{
  • "cycle": "monthly",
  • "description": "Monthly",
  • "months": 1
}

RecurringPrice

required
object (Amount)
required
object (Amount)
{
  • "setup": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    },
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

SecondFactorChallenge

condition
any
Value: "twofa"
Array of objects (TwoFaField)
{
  • "condition": "twofa",
  • "fields": [
    • {
      }
    ]
}

Server

id
required
integer <int64>
name
string or null non-empty
description
string or null
Array of objects (ServerGroup)
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string",
  • "groups": [
    • {
      }
    ]
}

ServerGroup

id
required
integer <int64>
name
string or null non-empty
description
string or null
{
  • "id": 123,
  • "name": "Shared web hosting",
  • "description": "string"
}

Service

id
required
integer <int64>
object (Product)
object or null (Server)
domain
string or null
status
string or null
quantity
required
integer <int32>
registration_date
string <date>
object or null (ServiceBillingExtended)
Array of objects (ServiceAddon)
Array of objects (ServiceCustomField)
Array of objects (ServiceConfigOption)
object (ServiceRenewal)
{
  • "id": 789,
  • "product": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "tagline": "Start with shared web hosting today!",
    • "allow_multiple_quantities": {
      },
    • "is_domain_required": true,
    • "stock_control_enabled": true,
    • "stock_quantity": 0,
    • "type": {
      },
    • "order": 123,
    • "group": {
      }
    },
  • "server": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "groups": [
      ]
    },
  • "domain": "example.com",
  • "status": "pending",
  • "quantity": 1,
  • "registration_date": "2022-03-14",
  • "billing": {
    • "promotions": [
      ],
    • "cycle": "monthly",
    • "price": {
      },
    • "payment_gateway": {
      },
    • "next_due_date": "2022-05-01"
    },
  • "addons": [
    • {
      }
    ],
  • "custom_fields": [
    • {
      }
    ],
  • "config_options": [
    • {
      }
    ],
  • "renewal": {
    • "id": 789,
    • "type": "service",
    • "is_renewable": true,
    • "non_renewable_reason": "This service is not renewable because it has been cancelled.",
    • "renewal_period": "Active",
    • "price": {
      }
    }
}

ServiceAddon

id
required
integer <int64>
object (Addon)
object
quantity
integer or null <int32>
status
string
registration_date
string <date>
required
object or null (ServiceBilling)
object (ServiceAddonRenewal)
{
  • "id": 456,
  • "addon": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string"
    },
  • "service": {
    • "id": 123
    },
  • "quantity": 0,
  • "status": "Active",
  • "registration_date": "2022-01-05",
  • "billing": {
    • "cycle": "monthly",
    • "price": {
      },
    • "payment_gateway": {
      },
    • "next_due_date": "2022-05-01"
    },
  • "renewal": {
    • "id": 789,
    • "type": "addon",
    • "is_renewable": true,
    • "non_renewable_reason": "This service addon is not renewable because it has been cancelled.",
    • "renewal_period": "Active",
    • "price": {
      }
    }
}

ServiceAddonRenewal

id
required
integer <int64>
type
required
string
Enum: "addon" "service"
is_renewable
required
boolean
non_renewable_reason
string or null
object
required
object or null
{
  • "id": 789,
  • "type": "addon",
  • "is_renewable": true,
  • "non_renewable_reason": "This service addon is not renewable because it has been cancelled.",
  • "renewal_period": "Active",
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

ServiceBilling

cycle
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

object or null
object or null
next_due_date
string or null <date>
{
  • "cycle": "monthly",
  • "price": {
    • "first_payment": {
      },
    • "recurring": {
      }
    },
  • "payment_gateway": {
    • "name": "banktransfer",
    • "description": "Bank Transfer"
    },
  • "next_due_date": "2022-05-01"
}

ServiceBillingExtended

required
Array of objects or null (Promotion)
cycle
string or null (BillingCycle)
Enum: "free" "onetime" "monthly" "quarterly" "semiannually" "annually" "biennially" "triennially"

Billing cycle's frequency.

object or null
object or null
next_due_date
string or null <date>
{
  • "promotions": [
    • {
      }
    ],
  • "cycle": "monthly",
  • "price": {
    • "first_payment": {
      },
    • "recurring": {
      }
    },
  • "payment_gateway": {
    • "name": "banktransfer",
    • "description": "Bank Transfer"
    },
  • "next_due_date": "2022-05-01"
}

ServiceConfigOption

id
required
integer <int64>
required
object
object
required
object
object or null (ServiceConfigOptionBilling)
{
  • "id": 456,
  • "config_option": {
    • "id": 12,
    • "name": "Config Option Name",
    • "type": "dropdown"
    },
  • "service": {
    • "id": 123
    },
  • "option": {
    • "name": "Config Option Name",
    • "value": true
    },
  • "billing": {
    • "price": {
      }
    }
}

ServiceConfigOptionBilling

object or null
{
  • "price": {
    • "first_payment": {
      },
    • "recurring": {
      }
    }
}

ServiceCustomField

id
required
integer <int64>
required
object (CustomField)
object
string or boolean (CustomFieldValueType)

Custom Field Value

{
  • "id": 456,
  • "custom_field": {
    • "id": 123,
    • "name": "Shared web hosting",
    • "description": "string",
    • "type": "text",
    • "options": [
      ],
    • "validation": null,
    • "required": true
    },
  • "service": {
    • "id": 123
    },
  • "value": "DL123456789"
}

ServiceFirstPaymentPrice

required
object (Amount)
{
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

ServicePrice

object (ServiceFirstPaymentPrice)
object (ServiceRecurringPrice)
{
  • "first_payment": {
    • "amount": {
      }
    },
  • "recurring": {
    • "amount": {
      }
    }
}

ServiceRecurringPrice

required
object (Amount)
{
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

ServiceRenewal

id
required
integer <int64>
type
required
string
Enum: "service" "addon"
is_renewable
required
boolean
non_renewable_reason
string or null
object
required
object or null
{
  • "id": 789,
  • "type": "service",
  • "is_renewable": true,
  • "non_renewable_reason": "This service is not renewable because it has been cancelled.",
  • "renewal_period": "Active",
  • "price": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

State

code
required
string [ 1 .. 10 ] characters
name
required
string
{
  • "code": "CA",
  • "name": "California"
}

Tax

name
required
string
percentage
required
number <float> decimal places <= 3
required
object (Amount)
{
  • "name": "string",
  • "percentage": 7.5,
  • "amount": {
    • "value": "19.99",
    • "code": "USD",
    • "display_value": "$19.99 USD",
    • "prefix": "$",
    • "suffix": " USD"
    }
}

TldPricing

tld
required
string
categories
required
Array of strings
group
required
string or null
object (DomainAddon)
required
Array of objects (DomainPricing)
object or null (DomainGracePeriod)
object or null (DomainGracePeriod)
{
  • "tld": "com",
  • "categories": [
    • "Other"
    ],
  • "group": "Sale",
  • "addons": {
    • "dns_management": true,
    • "email_forwarding": true,
    • "id_protection": true,
    • "epp_code_required": false
    },
  • "pricing": [
    • {
      }
    ],
  • "grace_period": {
    • "days": 1,
    • "price": {
      }
    },
  • "redemption_period": {
    • "days": 1,
    • "price": {
      }
    }
}

TwoFaField

name
required
string [ 1 .. 64 ] characters
description
string <= 64 characters
type
required
any
Enum: "number" "text"
{
  • "name": "string",
  • "description": "string",
  • "type": "number"
}

User

email
required
string (Email) [ 6 .. 255 ] characters
firstname
required
string (Name) [ 2 .. 64 ] characters
lastname
required
string (Name) [ 2 .. 64 ] characters
required
Array of objects (Client)
{
  • "email": "[email protected]",
  • "firstname": "Davis",
  • "lastname": "Davis",
  • "clients": [
    • {
      }
    ]
}

Username

string (Username) [ 3 .. 255 ] characters
"administrator"