latestOpenAPI 3.0.2cPanel License2026-08-106251554.3 MB

3da41671c02c

Accounts
Account Management

Update cPanel account

This function modifies a cPanel account.

Warning:

We strongly recommend that you do not modify a single cPanel account's settings if that cPanel account uses a hosting plan (package). If the package values change, the system will overwrite any of your custom values with the package's new values.

Note:

On servers that run CentOS 7, you may see a named warning about the absence of SPF resource records on DNS.

  • This warning is not relevant on CentOS 7 servers, because RFC 7208 deprecated SPF records. CentOS 7 servers use TXT records instead of SPF records.
  • Red Hat 7.1 and CentOS 7.1 both contain bind-9.9.4-23.el7, which is an updated version of BIND that complies with RFC 7208. To resolve this issue, update your operating system to a version that contains the updated version of BIND. For more information, read the Red Hat Bugzilla case about SPF record errors.
get/modifyacct

Query parameters

userstring username required
Example:example

The cPanel account's current username.

account_enhancementsstring

A list of names for Account Enhancements to assign to the cPanel account. To view your server's Account Enhancements, run WHM API 1's list_account_enhancements function.

Warning:

You must provide a complete list of Account Enhancements for the cPanel account. The parameter will add or remove Account Enhancements based on the names that you provide.

BACKUP0 | 1
Example:1

Whether backups are enabled for the cPanel account.

  • 1 — Enable backups.
  • 0 — Disable backups.

This parameter defaults to the defined system value.

Note:

You must have root-level privileges to set this parameter.

'unlimited'
OR
integer

The cPanel account's maximum bandwidth use, in bytes.

  • 0 or unlimited — The cPanel account can use unlimited bandwidth.

This parameter defaults to the defined system value.

contactemailstring email
Example:username@example.com

The cPanel account's contact email address.

This parameter defaults to the defined system value.

DBOWNERstring
Example:example

The owner of the cPanel account's MySQL databases.

This parameter defaults to the defined system value.

DISK_BLOCK_LIMITinteger
Example:100000000

The number of disk blocks for the cPanel account, in kilobytes (KB).

This parameter defaults to the defined system value.

DNSstring domain
Example:example.com

The cPanel account's main domain.

This parameter is an alias of domain. If you set both the DNS and domain parameters, the DNS parameter will override the domain parameter.

This parameter defaults to the defined system value.

domainstring domain
Example:example.com

The cPanel account's main domain.

This parameter is an alias of DNS. If you set both the DNS and domain parameters, the DNS parameter will override the domain parameter.

This parameter defaults to the defined system value.

HASCGI0 | 1
Example:1

Whether CGI access is enabled for the cPanel account.

  • 1 — Enable CGI access.
  • 0 — Disable CGI access.

This parameter defaults to the defined system value.

Note:

When a server profile disables the Web Server role, you cannot enable CGI access.

HASDKIM0 | 1
Example:1

Whether DKIM is enabled for the cPanel account.

  • 1 — Enable DKIM.
  • 0 — Disable DKIM.

This parameter defaults to the defined system value.

HASDMARC0 | 1
Example:1

Whether DMARC is enabled for the cPanel account.

  • 1 — Enable DMARC.
  • 0 — Disable DMARC.

This parameter defaults to the defined system value.

HASSHELL0 | 1
Example:1

Whether shell (SSH) access is enabled for the cPanel account.

  • 1 — Enable shell access.
  • 0 — Disable shell access.

This parameter defaults to the defined system value.

Note:

We strongly recommend that you use the shell parameter to specify a shell for SSH access.

HASSPF0 | 1
Example:1

Whether SPF is enabled for the cPanel account.

  • 1 — Enable SPF.
  • 0 — Disable SPF.

This parameter defaults to the defined system value.

LANGstring
Example:english-utf8

The cPanel account's display language.

This parameter defaults to the defined system value.

LOCALEstring ISO-3166-1 (alpha-2)
Example:en

The cPanel account's default locale, in two-letter ISO-3166 code format.

This parameter defaults to the defined system value.

string

A mail node alias.

OR
'.local'

Transfer a user’s mail from an existing mail node to the local server.

Example:mailnode

The server that will manage the cPanel account's mail.

  • .local — Make the local server manage the cPanel account’s mail. If the account currently uses a child node for its mail, this will transfer the account’s mail to the local server.

  • The alias (friendly name) of a child node that should manage the cPanel account’s mail.

    When you distribute an account’s mail, the function adds a LINK entry to the /var/cpanel/accounting.log file.

This parameter defaults to the account’s current mail node, or .local if the account’s mail is on the local server.

MAILBOX_FORMAT'maildir' | 'mbox'
Example:maildir

The storage format that the cPanel account's mailboxes use.

  • maildir
  • mbox

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The percentage of failed or deferred email messages that the cPanel account can send per hour before outgoing mail is rate-limited.

  • 0 or unlimited — The cPanel account can send an unlimited number of failed or deferred messages.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The maximum number of emails that the cPanel account can send in one hour.

  • 0 or unlimited — The cPanel account can send an unlimited number of emails.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The maximum quota, in megabytes (MB), that the cPanel account can define when it creates an email account.

  • unlimited — The cPanel account can set unlimited quotas.

This parameter defaults to the defined system value, or to unlimited if you do not define either the plan or MAX_EMAILACCT_QUOTA parameters.

Important:

  • This value applies to each email account, not each cPanel account.
  • If you specify a MAX_EMAILACCT_QUOTA value, the function will overwrite the plan's defined value for that cPanel account.
  • We recommend that you allow the cPanel account's plan to determine this value.
max_team_usersinteger
Example:7

The maximum number of Team users for this account. This parameter should be a number between 0 and the server's default value, inclusively. This parameter can not be a number greater than the server's default value.

'unlimited'
OR
integer

The cPanel account's maximum number of addon domains.

  • 0 or unlimited — The cPanel account can use unlimited addon domains.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The cPanel account's maximum number of FTP accounts.

  • unlimited — The cPanel account can create unlimited FTP accounts.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The cPanel account's maximum number of mailing lists.

  • 0 or unlimited — The cPanel account can create unlimited mailing lists.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The cPanel account's maximum number of parked domains (aliases).

  • unlimited — The cPanel account can use unlimited parked domains.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The cPanel account's maximum number of Ruby applications.

  • unlimited — The cPanel account can use unlimited Ruby applications.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The maximum number of email accounts for the cPanel account.

  • unlimited — The cPanel account can create unlimited email accounts.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The maximum number of each available type of SQL database for the cPanel account. For example, if you set this value to 5 and the system administrator allows MySQL® and PostgreSQL® databases, users can create up to five MySQL databases and up to five PostgreSQL databases.

  • unlimited — The cPanel account can create unlimited databases.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The maximum number of subdomains for the cPanel account.

  • unlimited — The cPanel account can create unlimited subdomains.

This parameter defaults to the defined system value.

modify_firewall0 | 1

Whether to modify the firewall rules as part of the cPanel account modification.

  • 1 — Modify the firewall rules.
  • 0 — Do not modify the firewall rules.

Note:

If you do not set this parameter, the system will modify the firewall based on the Do not make changes to the firewall during cPanel account modification. setting in WHM's Tweak Settings interface (WHM >> Home >> Server Configuration >> Tweak Settings).

MXCHECK-*integer

The priority of the cPanel account's primary mail exchanger.

This parameter defaults to the defined system value.

Note:

The parameter name consists of MXCHECK, a hyphen, and the primary domain name of the cPanel account. For example, MXCHECK-example.com=10.

newuserstring username
Example:example1

The cPanel account's new username.

This parameter defaults to the defined system value.

Note:

  • Usernames cannot begin with a number or the string test.
  • Usernames can contain 16 characters or fewer if database prefixes are enabled.
  • The first eight characters of usernames must be unique. MySQL requires this due to potential conflicts with cPanel account transfers. However, this limit requirement does not exist on servers that use MariaDB.
  • If you rename the cPanel account and database prefixing is enabled, you can also use the rename_database_objects parameter.
notify_account_authn_link0 | 1

Whether to send a notification when someone links the cPanel account to an external authentication account.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_account_authn_link_notification_disabled0 | 1

Whether to send a notification when someone disables notifications for external authentication account links.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_autossl_expiry0 | 1

Whether to send a notification when an AutoSSL certificate expires.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_autossl_expiry_coverage0 | 1

Whether to send a notification AutoSSL cannot renew a certificate because domains that fail Domain Control Validation (DCV) exist on the current certificate.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_autossl_renewal0 | 1

Whether to send a notification when AutoSSL renews a certificate.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_autossl_renewal_coverage0 | 1

Whether to send a notification when AutoSSL renews a certificate but the new certificate lacks at least one domain that the previous certificate secured.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_contact_address_change0 | 1

Whether to send a notification when someone changes the contact address for the cPanel account.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_contact_address_change_notification_disabled0 | 1

Whether to send a notification when disables the notification for contact address changes.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_disk_limit0 | 1

Whether to send a notification when the cPanel account reaches its disk usage limit.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_password_change0 | 1

Whether to send a notification when someone changes the cPanel account's password.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_password_change_notification_disabled0 | 1

Whether to send a notification when someone disables notifications for password changes.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

notify_ssl_expiry0 | 1

Whether to send a notification when an SSL certificate on the cPanel account expires.

  • 1 — Enabled.
  • 0 — Disabled.

This parameter defaults to the defined system value.

OUTGOING_EMAIL_SUSPENDED0 | 1

Whether to suspend outgoing email on the cPanel account.

  • 1 — Suspend outgoing email.
  • 0 — Do not suspend outgoing email.

This parameter defaults to the defined system value.

ownerstring username
Example:reseller_name

A new owner's username or the root user, to change the cPanel account's owner.

This parameter defaults to the defined system value.

Note:

The authenticated user must have root privileges in order to assign the cPanel account to a reseller other than that cPanel account.

PUSHBULLET_ACCESS_TOKENstring

An access token for the cPanel account's Pushbullet™ notifications.

This parameter defaults to the defined system value.

'unlimited'
OR
integer

The cPanel account's disk space quota.

  • An integer in multiples of 1,048,576 bytes.
  • 0 or unlimited — The cPanel account's disk space is unlimited.

This parameter defaults to the defined system value.

remove_missing_extensionsstring
Example:packageext1 packageext2

A space-separated list of removed, missing, or uninstalled package extensions.

Warning:

This parameter removes all of the extensions that you list from the _PACKAGE_EXTENSIONS variable in the user file. It will not remove the extensions' variables. For more information, read our Guide to Package Extensions.

rename_database_objects0 | 1

Whether to rename the cPanel account's database objects to use a new username's database prefix.

  • 1 — Rename the cPanel account's database objects.
  • 0 — Do not rename the cPanel account's database objects.

Warning:

  • The cPanel account owner must update any applications to use the new database object names.
  • Use this parameter carefully, as it may cause confusion for system administrators.

MySQL does not allow you to rename a database. When cPanel & WHM "renames" a database, the system performs the following steps:

  1. The system creates a new database.
  2. The system moves data from the old database to the new database.
  3. The system recreates grants and stored code in the new database.
  4. The system deletes the old database and its grants.

Warning:

  • If any of the first three steps fail, the system returns an error and attempts to restore the database's original state. If the restoration process fails, the API function's error response describes these additional failures.
  • In rare cases, the system creates the second database successfully, but fails to delete the old database or grants. The system treats the rename action as a success; however, the API function returns warnings that describe the failure to delete the old database or grants.

Note:

This parameter only applies to servers that use database prefixing.

reseller0 | 1
Example:1

Whether to grant reseller privileges to the cPanel account.

  • 1 — Grant reseller privileges.
  • 0 — Do not grant reseller privileges.

Note:

You must have root-level privileges to use this parameter.

RSstring
Example:jupiter

The cPanel account's cPanel theme.

This parameter defaults to the defined system value.

shellstring path
Example:/bin/bash

The absolute filepath to the shell's location.

This parameter defaults to the defined system value.

spamassassin0 | 1

Whether Apache SpamAssassin™ is enabled for the cPanel account.

This parameter defaults to the defined system value.

STARTDATEinteger
Example:1549471343

A timestamp to use as the cPanel account's creation date.

This parameter defaults to the defined system value.

Note:

This parameter does not provide user access controls. For example, you cannot modify a cPanel account's date to prevent a user from logging in to the server.

STYLEstring
Example:Glass

The cPanel account's cPanel interface theme style.

This parameter defaults to the defined system value.

update_existing_email_account_quotas0 | 1
Example:1

Whether to update the quota for existing email accounts to match the value of MAX_EMAILACCT_QUOTA setting.

  • 1 — Update quota for existing email accounts.
  • 0 — Do not update quota for existing email accounts.

Important:

To use this parameter, you must also use the MAX_EMAILACCT_QUOTA parameter.

Response

HTTP Request was successful.

Example response

{
  "data": {
    "cpuser": {
      "BACKUP": "1",
      "BWLIMIT": "0",
      "CONTACTEMAIL": "example@example.com",
      "CONTACTEMAIL2": "",
      "DBOWNER": "example",
      "DEADDOMAINS": [],
      "DEMO": "0",
      "DISK_BLOCK_LIMIT": "0",
      "DOMAIN": "example.com",
      "DOMAINS": [
        "subdomain.example.com"
      ],
      "FEATURELIST": "default",
      "HASCGI": "1",
      "HASDKIM": "1",
      "HASDMARC": "1",
      "HASSPF": "1",
      "HOMEDIRLINKS": [],
      "IP": "172.16.1.13",
      "LEGACY_BACKUP": "0",
      "LOCALE": "en",
      "MAILBOX_FORMAT": "maildir",
      "MAXADDON": "0",
      "MAXFTP": "unlimited",
      "MAXLST": "unlimited",
      "MAXPARK": "0",
      "MAXPOP": "unlimited",
      "MAXSQL": "unlimited",
      "MAXSUB": "unlimited",
      "MAX_DEFER_FAIL_PERCENTAGE": "unlimited",
      "MAX_EMAILACCT_QUOTA": "unlimited",
      "MAX_EMAIL_PER_HOUR": "unlimited",
      "MTIME": "1560518791",
      "MXCHECK-example.com": "0",
      "OWNER": "example",
      "PLAN": "default",
      "PUSHBULLET_ACCESS_TOKEN": "",
      "RS": "jupiter",
      "STARTDATE": "1554919365",
      "USER": "example",
      "UTF8MAILBOX": "1",
      "_PACKAGE_EXTENSIONS": "",
      "__CACHE_DATA_VERSION": "0.81",
      "modify_firewall": "1",
      "notify_account_authn_link": "0",
      "notify_account_authn_link_notification_disabled": "0",
      "notify_autossl_expiry": "0",
      "notify_autossl_expiry_coverage": "0",
      "notify_autossl_renewal_coverage": "0",
      "notify_autossl_renewal_coverage_reduced": "0",
      "notify_autossl_renewal_uncovered_domains": "0",
      "notify_bandwidth_limit": "0",
      "notify_contact_address_change": "0",
      "notify_contact_address_change_notification_disabled": "0",
      "notify_disk_limit": "0",
      "notify_password_change": "0",
      "notify_password_change_notification_disabled": "0",
      "notify_ssl_expiry": "0"
    },
    "domain": "example.com",
    "setshell": "/bin/bash",
    "user": "example1"
  },
  "metadata": {
    "command": "modifyacct",
    "output": {
      "messages": [
        "Reseller data updated",
        "0 rows updated in eximstats sends database.\n0 rows updated in eximstats smtp database.\n0 rows updated in eximstats failures database.\n0 rows updated in eximstats defers database.\n",
        "Username changed from example to example1",
        "Restarting apache"
      ],
      "warnings": [
        "Changing the cPanel account username from “example” to “example1” requires Digest Authentication to be disabled.",
        "Use the Web Disk Accounts page in cPanel to re-enable Digest Authentication."
      ]
    },
    "reason": "Account Modified",
    "result": 1,
    "version": 1
  }
}