cPanel UAPI

The cPanel User API (UAPI) is the modern HTTP API for cPanel-account operations — email accounts, mailboxes, files, MySQL and PostgreSQL databases, FTP accounts, SSL certificates, DNS, backups and more — for a single cPanel user. 657 operations across 101 modules, served at /execute/{Module}/{Function} on the customer's own cPanel server (port 2083 secure, 2082 unsecure, 2096/2095 for Webmail sessions). Authenticates with HTTP Basic or an 'Authorization: cpanel :' API token. Every call returns HTTP 200; success is result.status == 1. UAPI is the recommended replacement for the legacy cPanel API 2.

Operations 657

Showing the first 250 of 657. The full set is in the contract, and via get_provider_operations.

GET /AccountEnhancements/has_enhancement Validate Account Enhancement assignment #
GET /AccountEnhancements/list Return all cPanel account's Account Enhancements #
GET /AddonDomain/addaddondomain Create an addon domain #
GET /AddonDomain/deladdondomain Remove an addon domain #
GET /AddonDomain/listaddondomains List the addon domains #
GET /Backup/fullbackup_to_ftp Back up cPanel account via FTP #
GET /Backup/fullbackup_to_homedir Back up cPanel account to home directory #
GET /Backup/fullbackup_to_scp_with_key Back up cPanel account via SCP with SSH key #
GET /Backup/fullbackup_to_scp_with_password Back up cPanel account via SCP with password #
GET /Backup/list_backups Return backup files #
POST /Backup/restore_databases Restore databases #
POST /Backup/restore_email_filters Restore email filters #
POST /Backup/restore_email_forwarders Restore email forwarders #
POST /Backup/restore_files Restore files #
GET /BackupInfo/list List the current user's full-account backups #
GET /BackupInfo/progress Get progress for the current user's running full-account backup #
GET /BackupInfo/reset Clear the current user's backup run-state record #
GET /Bandwidth/get_enabled_protocols Return services monitored in bandwidth data #
GET /Bandwidth/get_retention_periods Return bandwidth retention period #
GET /Bandwidth/query Return cPanel account's bandwidth usage report #
GET /Batch/strict Run multiple UAPI functions in order #
GET /BlockIP/add_ip Add IP address to cPanel account's block list #
GET /BlockIP/remove_ip Remove IP address from cPanel account's block list #
GET /BoxTrapper/blacklist_messages Add email address to BoxTrapper blocked senders #
GET /BoxTrapper/delete_messages Delete messages in the BoxTrapper queue #
GET /BoxTrapper/deliver_messages Send messages in the BoxTrapper queue #
GET /BoxTrapper/get_allowlist Return account BoxTrapper allowlist rules #
GET /BoxTrapper/get_blocklist Return account BoxTrapper blocklist rules #
GET /BoxTrapper/get_configuration Return email account's BoxTrapper configuration #
GET /BoxTrapper/get_email_template Return specified BoxTrapper email template #
GET /BoxTrapper/get_forwarders Return all BoxTrapper forwarders #
GET /BoxTrapper/get_ignorelist Return account BoxTrapper ignorelist rules #
GET /BoxTrapper/get_log Return BoxTrapper log file and contents #
GET /BoxTrapper/get_message Return message's top 200 lines in BoxTrapper queue #
GET /BoxTrapper/get_status Return whether email account uses BoxTrapper #
GET /BoxTrapper/ignore_messages Add email account to Exim ignore list #
GET /BoxTrapper/list_email_templates Return BoxTrapper email templates #
GET /BoxTrapper/list_queued_messages Return email account's BoxTrapper queued messages #
GET /BoxTrapper/process_messages Run a specific BoxTrapper action for a message #
GET /BoxTrapper/reset_email_template Restore default BoxTrapper email message template #
GET /BoxTrapper/save_configuration Update email account's BoxTrapper configuration #
GET /BoxTrapper/save_email_template Save BoxTrapper message template contents #
GET /BoxTrapper/set_allowlist Update account BoxTrapper allowlist #
GET /BoxTrapper/set_blocklist Update account BoxTrapper blocklist #
GET /BoxTrapper/set_forwarders Add email address to BoxTrapper forwarders #
GET /BoxTrapper/set_ignorelist Update account BoxTrapper ignorelist #
GET /BoxTrapper/set_status Enable or disable BoxTrapper for email account #
GET /BoxTrapper/whitelist_messages Add email address to BoxTrapper allowed senders #
GET /Branding/get_application_information Return single app's info from dynamicui.conf #
GET /Branding/get_applications Return multiple apps' info from dynamicui.conf #
GET /Branding/get_available_applications Return current user's cPanel application details #
GET /Branding/get_information_for_applications Return app's info from sitemap.json #
GET /Branding/include Return branding file content from the active theme #
GET /CCS/add_delegate Add calendar delegation #
GET /CCS/list_delegates List cPanel account's calendar delegates #
GET /CCS/list_users List cPanel account's calendar users #
GET /CCS/remove_delegate Remove calendar delegation #
GET /CCS/update_delegate Update calendar delegation #
GET /CPDAVD/add_delegate Share a calendar #
GET /CPDAVD/list_delegates List calendar sharing. #
GET /CPDAVD/list_users List CalDAV and CardDAV users #
GET /CPDAVD/manage_collection Manage a calendar, task list, or address book #
GET /CPDAVD/remove_delegate Remove a share. #
GET /CPDAVD/update_delegate Update calendar sharing. #
GET /CSVImport/doimport Import email accounts from CSV file #
GET /CacheBuster/read Return web browser cached file override ID #
GET /CacheBuster/update Create web browser cached file override ID #
GET /Chkservd/get_exim_ports Return outgoing (SMTP) mail port #
GET /Chkservd/get_exim_ports_ssl Return outgoing mail (SMTP) SSL-secured port #
GET /Chrome/get_dom Return cPanel theme header and footer HTML #
GET /ClamScanner/check_disinfection_status Request disinfection process status #
POST /ClamScanner/disinfect_files Start disinfecting files with viruses #
GET /ClamScanner/get_scan_paths Return virus scan types #
GET /ClamScanner/get_scan_status Request virus scan status #
GET /ClamScanner/list_infected_files Return infected file list #
GET /ClamScanner/start_scan Start virus scan #
GET /ContactInformation/get_notification_preferences Return the account's notification preferences. #
GET /ContactInformation/get_pushbullet_access_token Return Pushbullet access token #
GET /ContactInformation/set_email_addresses Set contact email address(es) #
POST /ContactInformation/set_notification_preferences Set the account's notification preferences. #
GET /ContactInformation/set_pushbullet_access_token Update Pushbullet access token #
GET /ContactInformation/unset_email_addresses Unset contact email addresses #
GET /Contactus/is_enabled Return whether contact option is enabled #
GET /DAV/disable_shared_global_addressbook Disable global address book #
GET /DAV/enable_shared_global_addressbook Enable global address book #
GET /DAV/get_calendar_contacts_config Return CalDAV and CardDAV connection information #
GET /DAV/has_shared_global_addressbook Return whether global address book is enabled #
GET /DAV/is_dav_service_enabled Return whether DAV is enabled #
GET /DAV/is_horde_enabled Return whether Horde is enabled #
POST /DCV/check_domains_via_dns Verify domain ownership via DNS #
GET /DCV/check_domains_via_http Verify domain ownership via HTTP #
GET /DCV/ensure_domains_can_pass_dcv Verify domain ownership #
GET /DNS/ensure_domains_reside_only_locally Return whether domains only resolve locally #
GET /DNS/fetch_cpanel_generated_domains Retrieve cPanel-generated subdomains for a domain #
GET /DNS/has_local_authority Return whether local DNS server is authoritative #
GET /DNS/is_alias_available Return `ALIAS` DNS record availability & resolver #
GET /DNS/is_https_available Return DNS HTTPS record support information #
GET /DNS/is_svcb_available Return DNS SVCB record support information #
GET /DNS/lookup Return domain's DNS information #
GET /DNS/mass_edit_zone Update a DNS zone #
GET /DNS/parse_zone Return a parsed DNS zone #
GET /DNS/swap_ip_in_zones Update IP addresses in zone files #
GET /DNSSEC/activate_zone_key Enable DNSSEC security key #
GET /DNSSEC/add_zone_key Create DNSSEC security key #
GET /DNSSEC/deactivate_zone_key Disable DNSSEC security key #
GET /DNSSEC/disable_dnssec Disable DNSSEC #
GET /DNSSEC/enable_dnssec Enable DNSSEC #
GET /DNSSEC/export_zone_dnskey Export DNSKEY record value #
GET /DNSSEC/export_zone_key Export DNSSEC security key #
GET /DNSSEC/fetch_ds_records Return domain's DS records #
GET /DNSSEC/import_zone_key Add DNSSEC security key #
GET /DNSSEC/remove_zone_key Remove DNSSEC security key #
GET /DNSSEC/set_nsec3 Update domain to use NSEC3 #
GET /DNSSEC/unset_nsec3 Update domain to use NSEC #
GET /DirectoryIndexes/get_indexing Return directory indexing settings #
GET /DirectoryIndexes/list_directories Return subdirectories directory indexing settings #
GET /DirectoryIndexes/set_indexing Update directory indexing settings #
GET /DirectoryPrivacy/add_user Add authorized user for protected directory #
GET /DirectoryPrivacy/configure_directory_protection Enable or disable protected directory #
GET /DirectoryPrivacy/delete_user Delete authorized user for protected directory #
GET /DirectoryPrivacy/is_directory_protected Return whether directory uses password protection #
GET /DirectoryPrivacy/list_directories Return privacy status of subdirectories #
GET /DirectoryPrivacy/list_users Return authorized users for protected directory #
GET /DirectoryProtection/list_directories Return Directory Protection settings #
POST /Domain/convert_temporary_to_registered Convert a temporary domain to a registered domain #
GET /Domain/is_temporary_domain Return whether a domain is temporary #
POST /Domain/rename_domain Rename a primary, addon, or alias domain #
GET /Domain/temporary_domain_is_disabled Return whether temporary domains are disabled #
GET /DomainInfo/domains_data Return all domains' hosting configuration #
GET /DomainInfo/list_domains Return cPanel account's domains #
GET /DomainInfo/main_domain_builtin_subdomain_aliases Return built-in subdomain aliases #
GET /DomainInfo/primary_domain Return the cPanel account's primary domain #
GET /DomainInfo/single_domain_data Return domain's hosting configuration #
GET /DomainLookup/countbasedomains Count the domains that have their own DNS zone #
GET /DomainLookup/getbasedomains List the domains that have their own DNS zone #
GET /DomainLookup/getdocroot Return a domain's document root #
GET /DomainLookup/getdocroots Return every domain's document root #
GET /DomainRecommendations/domain_availability Check whether a domain is available for registration #
GET /DomainRecommendations/domain_suggestions Search for available domain names and pricing #
GET /DomainRecommendations/get_store_config Retrieve the sanitized domain store configuration #
GET /DomainRecommendations/is_enabled Check whether Domain Recommendations is enabled #
GET /DomainRecommendations/purchase_domain Get a URL to purchase a domain #
GET /DomainRecommendations/supported_tlds List the TLDs supported by the domain store #
GET /DynamicDNS/create Create Dynamic DNS domain #
GET /DynamicDNS/delete Delete Dynamic DNS domain #
GET /DynamicDNS/list Return Dynamic DNS domains #
GET /DynamicDNS/recreate Update Dynamic DNS domain ID #
GET /DynamicDNS/set_description Update Dynamic DNS domain description #
GET /EA4/get_php_recommendations Get custom PHP recommendations. #
GET /EA4/get_recommendations Get EA4 configuration recommendations #
GET /Email/account_name Return current user's account name #
GET /Email/add_auto_responder Create email account's autoresponder #
GET /Email/add_domain_forwarder Create domain-level forwarder #
GET /Email/add_forwarder Create email account forwarder #
GET /Email/add_list Create mailing list #
GET /Email/add_mailman_delegates Add administrators to mailing list #
GET /Email/add_mx Create mail exchanger record #
GET /Email/add_pop Create email account #
GET /Email/add_spam_filter Update minimum spam score threshold value #
GET /Email/browse_mailbox Return mail directory's subdirectories and files #
GET /Email/change_mx Update mail exchanger record #
GET /Email/check_fastmail Return BlackBerry FastMail support status #
GET /Email/count_auto_responders Return cPanel account's autoresponders total #
GET /Email/count_filters Return cPanel account's email filters total #
GET /Email/count_forwarders Return cPanel account's mail forwarder total #
GET /Email/count_lists Return cPanel account's mailing list total #
GET /Email/count_pops Return cPanel account's email account total #
GET /Email/delete_auto_responder Delete email account's autoresponder #
GET /Email/delete_domain_forwarder Delete domain-level forwarder #
GET /Email/delete_filter Delete email account's email filter #
GET /Email/delete_forwarder Delete email account's email forwarder #
GET /Email/delete_held_messages Delete email account's outgoing messages #
GET /Email/delete_list Delete mailing list #
GET /Email/delete_mx Delete mail exchanger record #
GET /Email/delete_pop Delete email account #
GET /Email/disable_filter Disable email filter for email account #
GET /Email/disable_mailbox_autocreate Disable cPanel account mailbox autocreation #
GET /Email/disable_spam_assassin Disable Apache SpamAssassin for cPanel account #
GET /Email/disable_spam_autodelete Disable spam box filtering auto-delete #
GET /Email/disable_spam_box Disable spam box filtering for cPanel account #
GET /Email/dispatch_client_settings Send email client settings to an email address #
GET /Email/edit_pop_quota Update email account's quota #
GET /Email/enable_filter Enable email filter for email account #
GET /Email/enable_mailbox_autocreate Enable cPanel account mailbox autocreation #
GET /Email/enable_spam_assassin Enable Apache SpamAssassin for cPanel account #
GET /Email/enable_spam_box Enable spam box filtering for cPanel account #
GET /Email/export_lists Export cPanel account's Mailman mailing lists to a file #
GET /Email/fetch_charmaps Return server's supported character encodings #
GET /Email/fts_rescan_mailbox Start IMAP Full-Text Search scan for email account #
GET /Email/generate_mailman_otp Create one-time password for a mailing list #
GET /Email/get_auto_responder Return email account's autoresponder information #
GET /Email/get_charsets Return mail server's supported character encodings #
GET /Email/get_client_settings Return email account's client settings #
GET /Email/get_default_email_quota Return email account's default email quota #
GET /Email/get_default_email_quota_mib Return email account's default email quota in MiB #
GET /Email/get_disk_usage Return email account's disk usage #
GET /Email/get_filter Return email filter's information #
GET /Email/get_held_message_count Return email account's outgoing message count #
GET /Email/get_lists_total_disk_usage Return cPanel account's mailing list disk usage #
GET /Email/get_mailbox_autocreate Return cPanel account's mailbox autocreate status #
GET /Email/get_mailman_delegates Return mailing list administrators #
GET /Email/get_main_account_disk_usage Return primary email account's disk usage #
GET /Email/get_main_account_disk_usage_bytes Return primary email account's disk usage in bytes #
GET /Email/get_max_email_quota Return email account's max quota size #
GET /Email/get_max_email_quota_mib Return email account's max quota size in MiB #
GET /Email/get_pop_quota Return email account's quota #
GET /Email/get_spam_settings Return email account Apache SpamAssassin settings #
GET /Email/get_webmail_settings Return email account's Webmail settings #
GET /Email/has_delegated_mailman_lists Return email account's mailing list privileges #
GET /Email/has_plaintext_authentication Return whether plaintext authentication is enabled #
GET /Email/hold_outgoing Stop email account's outgoing mail #
GET /Email/list_auto_responders Return domain's autoresponders #
GET /Email/list_default_address Return domain's default email address #
GET /Email/list_domain_forwarders Return domain-level forwarders #
GET /Email/list_filters Return account-level email filters #
GET /Email/list_filters_backups Return domains with domain-level email filters #
GET /Email/list_forwarders Return domain's forwarders #
GET /Email/list_forwarders_backups Return domains with domain-level forwarders #
GET /Email/list_lists Return cPanel account's mailing lists #
GET /Email/list_mail_domains Return cPanel account's mail domains #
GET /Email/list_mxs Return mail exchanger records #
GET /Email/list_pops Return email accounts #
GET /Email/list_pops_with_disk Return email accounts with disk information #
GET /Email/list_system_filter_info Return system-level email filter file information #
GET /Email/passwd_list Update mailing list password #
GET /Email/passwd_pop Update email account password #
GET /Email/release_outgoing Start email account outgoing mail #
GET /Email/remove_mailman_delegates Remove account mailing list admin privileges #
GET /Email/reorder_filters Update email address's email filter order #
GET /Email/set_always_accept Update Mail Exchanger type #
GET /Email/set_default_address Create default email address #
GET /Email/set_list_privacy_options Update mailing list privacy options #
GET /Email/set_manual_mx_redirects Add manual MX redirection #
GET /Email/stats_db_status Return eximstats SQLite database status #
GET /Email/store_filter Create email filter #
GET /Email/suspend_incoming Suspend email account incoming (SMTP) mail #
GET /Email/suspend_login Suspend email account login #
GET /Email/suspend_outgoing Suspend email account outgoing mail #
GET /Email/terminate_mailbox_sessions Stop cPanel account IMAP and POP3 connections #
GET /Email/trace_delivery Run email delivery route trace #
GET /Email/trace_filter Run test for main domain email filters #
GET /Email/unset_manual_mx_redirects Remove manual MX redirection #
GET /Email/unsuspend_incoming Unsuspend email account incoming mail #
GET /Email/unsuspend_login Unsuspend email account login #
GET /Email/unsuspend_outgoing Unsuspend email account outgoing mail #
GET /Email/verify_password Validate email account password #
GET /EmailAuth/apply_dmarc Apply DMARC records to domains. #
GET /EmailAuth/disable_dkim Remove domains' DKIM records #
GET /EmailAuth/enable_dkim Enable domains' DKIM records #
GET /EmailAuth/ensure_dkim_keys_exist Validate domains' DKIM private keys #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uapi"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cpanel-uapi-openapi.yml Raw ↑
components:
  schemas:
    Contents:
      properties:
        all_aliases_valid:
          description: 'Whether a valid SSL certificate exists on the domain''s aliases.


            * `1` — A valid SSL certificate exists.

            * `0` — A valid SSL certificate does **not** exist.


            **Note:**


            This return **only** appears if you set the `return_https_redirects_status` parameter to `1`.'
          enum:
          - 1
          - 0
          type: integer
        can_https_redirect:
          description: 'Whether a valid SSL certificate exists or AutoSSL runs on the domain.


            * `1` — A valid SSL certificate exists or AutoSSL runs.

            * `0` — A valid SSL certificate does **not** exist and AutoSSL does **not** run.


            **Note:**


            This return **only** appears if you set the `return_https_redirects_status` parameter to `1`.'
          enum:
          - 1
          - 0
          type: integer
        documentroot:
          description: The absolute path to the domain's document root.
          format: path
          type: string
        domain:
          description: The domain's name.
          format: domain
          type: string
        group:
          description: The domain's group.
          type: string
        hascgi:
          description: 'Whether CGI is enabled for the domain.


            * `1` — Enabled.

            * `0` — Disabled.'
          enum:
          - 1
          - 0
          type: integer
        homedir:
          description: The absolute path to the cPanel account's home directory.
          format: path
          type: string
        ip:
          description: The domain's IPv4 address.
          format: ipv4
          type: string
        ipv6:
          description: 'The domain''s IPv6 address.


            * null — The account does **not** use IPv6.'
          format: ipv6
          nullable: true
          type: string
        is_https_redirecting:
          description: 'Whether the domain redirects to `https`.


            * `1` — The domain redirects to `https`.

            * `0` — The domain does **not** redirect to `https`.


            **Note:**


            This return **only** appears if you set the `return_https_redirects_status` parameter to `1`.'
          enum:
          - 1
          - 0
          type: integer
        is_temporary:
          description: 'Whether the domain is a temporary domain.

            * `1` — The domain is temporary.

            * `0` — The domain is not temporary.'
          enum:
          - 1
          - 0
          type: integer
        no_cache_update:
          description: 'Whether the domain is subject to cache updates.


            * `1` — The domain updates caches.

            * `0` — The domain does **not** update caches.'
          enum:
          - 1
          - 0
          type: integer
        owner:
          description: The WHM account (`root` or a reseller) that owns the cPanel account.
          type: string
        serveradmin:
          description: The domain's administrator's contact email address.
          format: email
          type: string
        serveralias:
          description: A space-separated list of the domain's aliases.
          format: domain
          type: string
        servername:
          description: The domain's identifier on the server.
          format: domain
          type: string
        type:
          description: 'The type of domain:


            * `addon_domain` — The domain is an addon domain.

            * `sub_domain` — The domain is a subdomain.

            * `parked_domain` — The domain is a parked domain (domain alias).'
          enum:
          - addon_domain
          - sub_domain
          - parked_domains
          type: string
        usecanonicalname:
          description: 'The domain''s Canonical Name (CNAME) setting.


            * `On` — Use the domain''s CNAME.

            * `Off` — Do **not** use the domain''s CNAME.'
          enum:
          - 'On'
          - 'Off'
          type: string
        user:
          description: The cPanel account's username.
          format: username
          type: string
        userdirprotect:
          description: 'The domain''s [Apache `mod_userdir` Tweak](https://go.cpanel.net/whmdocsApachemod_userdirTweak)

            setting.


            * `1` — Enabled.

            * `0` — Disabled.'
          enum:
          - 1
          - 0
          type: integer
    CreateUserResponse:
      allOf:
      - $ref: '#/components/schemas/SubaccountBase'
      - properties:
          dismissed_merge_candidates:
            description: An array of objects containing service candidates that the system dismissed from merges.
            items:
              $ref: '#/components/schemas/SubaccountBase'
            type: array
          has_expired_invite:
            description: 'Whether an expired account login invitation exists.

              * `1` - Expired account invitation exists.

              * `0` - Expired account invitation does **not** exist.'
            enum:
            - 0
            - 1
            example: 0
            type: integer
          has_invite:
            description: 'Whether an account login invitation exists.

              * `1` - Account invitation exists.

              * `0` - Account invitation does **not** exist.'
            enum:
            - 0
            - 1
            example: 0
            type: integer
          invite_expiration:
            description: When the invitation expires. A date in Unix time format.
            example: 1591718154
            format: unix_timestamp
            type: integer
          merge_candidates:
            description: 'An array of objects that represents the service accounts that the system could merge for

              this subaccount.'
            items:
              $ref: '#/components/schemas/SubaccountBase'
            type: array
        type: object
    EditUserSubaccountBase:
      properties:
        alternate_email:
          description: An alternate email address for the subaccount's user.
          example: user@example.com
          format: email
          type: string
        avatar_url:
          description: The user's subaccount profile photo.
          example: https://img.example.com/avatars/example.jpg
          format: url
          type: string
        can_delete:
          description: 'Whether the cPanel account user can delete the subaccount.


            * `1` - Can delete.

            * `0` - **Cannot** delete.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        can_set_password:
          description: "Whether the cPanel account user can change the subaccount's password.\n\n* `1` - Can change.\n* `0`\
            \ - **Cannot** change.\n\n**Note:**\n\n  The function returns a `0` value for subaccounts that inherit their password\
            \ from the cPanel account."
          enum:
          - 0
          - 1
          example: 1
          type: integer
        can_set_quota:
          description: 'Whether the cPanel account user can change the subaccount''s disk usage quota.


            * `1` - Can change.

            * `0` - **Cannot** change.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        dismissed:
          description: "Whether the cPanel account user dismissed the merge prompt for the service account.\n\n**Note:**\n\
            \n  **Only** service accounts return this value.\n\n* `1` - Dismissed.\n* `0` - Did **not** dismiss."
          enum:
          - 0
          - 1
          example: 1
          type: integer
        domain:
          description: 'The Subaccount user''s associated domain.


            A domain that the cPanel account owns.'
          example: example.com
          format: domain
          type: string
        full_username:
          description: The subaccount's username and domain name.
          example: user@example.com
          type: string
        guid:
          description: The subaccount unique identifier.
          example: N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
          type: string
        has_expired_invite:
          description: 'Whether an expired account login invitation exists.


            * `1` - Expired account invitation exists.

            * `0` - Expired account invitation does **not** exist.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        has_invite:
          description: 'Whether an account login invitation exists.


            * `1` - Account invitation exists.

            * `0` - Account invitation does **not** exist.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        has_siblings:
          description: 'Whether the service account shares a `full_username` value with another service account.


            * `1` - Shares.

            * `0` - Does **not** share.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        invite_expiration:
          description: When the invitation expires.
          example: 1591718154
          format: unix_timestamp
          type: integer
        issues:
          description: Information about any issues or problems with the subaccount.
          items:
            properties:
              area:
                description: The affected section of cPanel & WHM.
                example: quota
                type: string
              limit:
                description: The set quota megabyte (MB) limit for the affected subaccount.
                example: 1500
                type: integer
              message:
                description: The description of the issue.
                example: Your account is over quota.
                type: string
              service:
                description: 'The affected service.

                  * `email`

                  * `ftp`

                  * `webdisk`'
                enum:
                - email
                - ftp
                - webdisk
                example: email
                type: string
              type:
                description: 'The type of issue.

                  * `error`

                  * `warning`

                  * `info`'
                enum:
                - error
                - warning
                - info
                example: info
                type: string
              used:
                description: The number of megabytes (MB) that the account currently uses.
                example: 2000
                type: integer
            type: object
          type: array
        parent_type:
          description: 'The type of account that could own the service account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** yet exist, but the user could create as part of
            a merge.

            * `null`- **Not** a merge candidate.'
          example: hypothetical
          type: string
        phone_number:
          description: 'The subaccount user''s phone number.


            The number conforms to the [ITU-T](https://en.wikipedia.org/wiki/ITU-T)''s [E.164](https://en.wikipedia.org/wiki/E.164)-recommended
            standard for the representation of telephone numbers.'
          example: '+15551234567'
          type: string
        real_name:
          description: 'The name of the subaccount''s user.


            * A first name, a last name, or a first name and last name.

            * An empty string.'
          example: John Doe
          type: string
        services:
          description: This object contains information about the subaccount's access to email, FTP, and Web Disk.
          properties:
            email:
              description: This object contains the information that indicates the subaccount's email status.
              properties:
                enabled:
                  description: 'Whether the subaccount can access Webmail, POP, and IMAP services.


                    * `1` - Can access.

                    * `0` - **Cannot** access.'
                  enum:
                  - 0
                  - 1
                  example: 1
                  type: integer
                quota:
                  description: "The maximum amount of disk space, in megabytes (MB), allocated to the subaccount's email account.\n\
                    \n**Note:**\n\n  This function will not return `0` as a value."
                  example: 100
                  type: integer
              type: object
            ftp:
              description: This object contains the information that indicates the subaccount's FTP status.
              properties:
                enabled:
                  description: 'Whether the subaccount can access FTP.


                    * `1` - Can access.

                    * `0` - **Cannot** access.'
                  enum:
                  - 0
                  - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's FTP home directory.
                  example: /subaccount
                  format: path
                  type: string
                quota:
                  description: 'The maximum amount disk space, in megabytes (MB), that the subaccount may use.


                    * A positive integer between `1` and `999999`

                    * `0` - Unlimited.'
                  example: 100
                  type: integer
              type: object
            webdisk:
              description: This object contains information that indicates the subaccount's Web Disk status.
              properties:
                enabled:
                  description: 'Whether the subaccount can access Web Disk.


                    * `1` - Can access.

                    * `0` - **Cannot** access.'
                  enum:
                  - 0
                  - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's Web Disk home directory.
                  example: /bob
                  format: path
                  type: string
                perms:
                  description: 'Whether to grant write permissions to the subaccount.


                    * `ro` - Read-only permissions.

                    * `rw` - Read and write permissions.'
                  enum:
                  - ro
                  - rw
                  example: rw
                  type: string
                private:
                  description: 'Whether to set the Web Disk directory''s permissions to public or private.


                    * `1` - Private (`0700`).

                    * `0` - Public (`0755`).'
                  enum:
                  - 0
                  - 1
                  example: 0
                  type: integer
              type: object
          type: object
        special:
          description: 'Whether the account is a system-created special account that the user **cannot** remove.


            * `1` - A special account.

            * `0` - **Not** a special account.'
          enum:
          - 0
          - 1
          example: 1
          type: integer
        sub_account_exists:
          description: "Whether a subaccount exists with the same username.\n\n* `1` - Exists.\n* `0` - Does **not** exist.\n\
            \n**Note:**\n\n  The function returns a `null` value if the account is **not** a service account."
          enum:
          - 0
          - 1
          example: 0
          type: integer
        synced_password:
          description: "Whether the user has synchronized the passwords for each of the subaccount's service accounts.\n\n\
            * `1` - Synchronized.\n* `0` - **Not** synchronized.\n\n**Note:**\n\n  The function returns a `null` value if\
            \ the account is **not** a subaccount."
          enum:
          - 0
          - 1
          example: 0
          type: integer
        type:
          description: 'The type of account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** exist, but that the user could create as part of
            a merge.

            * `service` - A service account.

            * `cpanel` - The cPanel account.'
          example: sub
          type: string
        username:
          description: "The username for the subaccount.\n\n* Length - 64 characters.\n* Characters - `a-z`, `A-Z`, `0-9`,\
            \ dot (`.`), hyphen (`-`), underscore (`_`).\n\n**Note:**\n\n  This value does **not** include the domain name."
          example: example
          type: string
      type: object
    FeatureDescriptions:
      properties:
        features:
          description: The list of features in a role.
          example:
          - Backup
          - MySQL® Databases
          - PHP
          items:
            type: string
          type: array
        id:
          description: The role's ID.
          example: database
          type: string
        title:
          description: The role's title.
          example: Database
          type: string
    HashOutput:
      properties:
        addon_domains:
          description: An array of objects containing information about each addon domain.
          items:
            $ref: '#/components/schemas/Contents'
        main_domain:
          description: An array of objects containing information about the main domain.
          items:
            $ref: '#/components/schemas/MainDomainContents'
        parked_domains:
          description: An array of objects containing information about each parked domain.
          items:
            $ref: '#/components/schemas/Contents'
        sub_domains:
          description: An array of objects containing information about each subdomain.
          items:
            $ref: '#/components/schemas/Contents'
      type: object
    ListOutput:
      anyOf:
      - $ref: '#/components/schemas/Contents'
      - $ref: '#/components/schemas/MainDomainContents'
    LookupServiceAccountSubaccountBase:
      properties:
        alternate_email:
          description: An alternate email address for the subaccount's user.
          example: user@example.com
          format: email
          type: string
        avatar_url:
          description: The user's subaccount profile photo.
          example: https://img.example.com/avatars/example.jpg
          format: url
          type: string
        can_delete:
          description: 'Whether the cPanel account user can delete the subaccount.


            * `1` - Can delete.

            * `0` - **Cannot** delete.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        can_set_password:
          description: "Whether the cPanel account user can change the subaccount's password.\n\n* `1` - Can change.\n* `0`\
            \ - **Cannot** change.\n\n**Note:**\n\n  The function returns a `0` value for subaccounts that inherit their password\
            \ from the cPanel account."
          enum:
          - 0
          - 1
          example: 1
          type: integer
        can_set_quota:
          description: 'Whether the cPanel account user can change the subaccount''s disk usage quota.


            * `1` - Can change.

            * `0` - **Cannot** change.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        dismissed:
          description: "Whether the cPanel account user dismissed the merge prompt for the service account.\n\n**Note:**\n\
            \n  **Only** service accounts return this value.\n\n* `1` - Dismissed.\n* `0` - Did **not** dismiss."
          enum:
          - 0
          - 1
          example: 1
          type: integer
        domain:
          description: 'The Subaccount user''s associated domain.


            A domain that the cPanel account owns.'
          example: example.com
          format: domain
          type: string
        full_username:
          description: The subaccount's username and domain name.
          example: user@example.com
          type: string
        guid:
          description: The subaccount unique identifier.
          example: N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
          type: string
        has_expired_invite:
          description: 'Whether an expired account login invitation exists.


            * `1` - Expired account invitation exists.

            * `0` - Expired account invitation does **not** exist.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        has_invite:
          description: 'Whether an account login invitation exists.


            * `1` - Account invitation exists.

            * `0` - Account invitation does **not** exist.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        has_siblings:
          description: 'Whether the service account shares a `full_username` value with another service account.


            * `1` - Shares.

            * `0` - Does **not** share.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        invite_expiration:
          description: When the invitation expires.
          example: 1591718154
          format: unix_timestamp
          type: integer
        issues:
          description: Information about any issues or problems with the subaccount.
          items:
            properties:
              area:
                description: The affected section of cPanel & WHM.
                example: quota
                type: string
              limit:
                description: The set quota megabyte (MB) limit for the affected subaccount.
                example: 1500
                type: integer
              message:
                description: The description of the issue.
                example: Your account is over quota.
                type: string
              service:
                description: 'The affected service.

                  * `email`

                  * `ftp`

                  * `webdisk`'
                enum:
                - email
                - ftp
                - webdisk
                example: email
                type: string
              type:
                description: 'The type of issue.

                  * `error`

                  * `warning`

                  * `info`'
                enum:
                - error
                - warning
                - info
                example: info
                type: string
              used:
                description: The number of megabytes (MB) that the account currently uses.
                example: 2000
                type: integer
            type: object
          type: array
        parent_type:
          description: 'The type of account that could own the service account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** yet exist, but the user could create as part of
            a merge.

            * `null`- **Not** a merge candidate.'
          example: hypothetical
          type: string
        phone_number:
          description: 'The subaccount user''s phone number.


            The number conforms to the [ITU-T](https://en.wikipedia.org/wiki/ITU-T)''s [E.164](https://en.wikipedia.org/wiki/E.164)-recommended
            standard for the representation of telephone numbers.'
          example: '+15551234567'
          type: string
        real_name:
          description: 'The name of the subaccount''s user.


            * A first name, a last name, or a first name and last name.

            * An empty string.'
          example: John Doe
          type: string
        services:
          description: This object contains information about the subaccount's access to email, FTP, and Web Disk.
          properties:
            email:
              description: This object contains the information that indicates the subaccount's email status.
              properties:
                enabled:
                  description: 'Whether the subaccount can access Webmail, POP, and IMAP services.


                    * `1` - Can access.

                    * `0` - **Cannot** access.'
                  enum:
                  - 0
                  - 1
                  example: 1
                  type: integer
                quota:
                  description: "The maximum amount of disk space, in megabytes (MB), allocated to the subaccount's email account.\n\
                    \n**Note:**\n\n  This function will not return `0` as a value."
                  example: 100
                  type: integer
              type: object
            ftp:
              description: This object contains the information that indicates the subaccount's FTP status.
              properties:
                enabled:
                  description: 'Whether the subaccount can access FTP.


                    * `1` - Can access.

                    * `0` - **Cannot** access.'
                  enum:
                  - 0
                  - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's FTP home directory.
                  example: /subaccount
                  format: path
                  type: string
                quota:
                  description: 'The maximum amount disk space, in megabytes (MB), that the subaccount may use.


                    * A positive integer between `1` and `999999`

                    * `0` - Unlimited.'
                  example: 100
                  type: integer
              type: object
            webdisk:
              description: This object contains information that indicates the subaccount's Web Disk status.
              properties:
                enabled:
                  description: 'Whether the subaccount can access Web Disk.


                    * `1` - Can access.

                    * `0` - **Cannot** access.'
                  enum:
                  - 0
                  - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's Web Disk home directory.
                  example: /bob
                  format: path
                  type: string
                perms:
                  description: 'Whether to grant write permissions to the subaccount.


                    * `ro` - Read-only permissions.

                    * `rw` - Read and write permissions.'
                  enum:
                  - ro
                  - rw
                  example: rw
                  type: string
                private:
                  description: 'Whether to set the Web Disk directory''s permissions to public or private.


                    * `1` - Private (`0700`).

                    * `0` - Public (`0755`).'
                  enum:
                  - 0
                  - 1
                  example: 0
                  type: integer
              type: object
          type: object
        special:
          description: 'Whether the account is a system-created special account that the user **cannot** remove.


            * `1` - A special account.

            * `0` - **Not** a special account.'
          enum:
          - 0
          - 1
          example: 1
          type: integer
        sub_account_exists:
          description: "Whether a subaccount exists with the same username.\n\n* `1` - Exists.\n* `0` - Does **not** exist.\n\
            \n**Note:**\n\n  The function returns a `null` value if the account is **not** a service account."
          enum:
          - 0
          - 1
          example: 0
          type: integer
        synced_password:
          description: "Whether the user has synchronized the passwords for each of the subaccount's service accounts.\n\n\
            * `1` - Synchronized.\n* `0` - **Not** synchronized.\n\n**Note:**\n\n  The function returns a `null` value if\
            \ the account is **not** a subaccount."
          enum:
          - 0
          - 1
          example: 0
          type: integer
        type:
          description: 'The type of account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** exist, but that the user could create as part of
            a merge.

            * `service` - A service account.

            * `cpanel` - The cPanel account.'
          example: sub
          type: string
        username:
          description: "The username for the subaccount.\n\n* Length - 64 characters.\n* Characters - `a-z`, `A-Z`, `0-9`,\
            \ dot (`.`), hyphen (`-`), underscore (`_`).\n\n**Note:**\n\n  This value does **not** include the domain name."
          example: example
          type: string
      type: object
    LookupServiceAccountSubaccountMergeCandidates:
      properties:
        merge_candidates:
          description: An array of objects that represents the service accounts that the system could merge for this subaccount.
          items:
            allOf:
            - $ref: '#/components/schemas/LookupServiceAccountSubaccountBase'
            - $ref: '#/components/schemas/LookupServiceAccountSubaccountMergeCandidatesEmpty'
          type: array
      type: object
    LookupServiceAccountSubaccountMergeCandidatesEmpty:
      properties:
        merge_candidates:
          description: An array of objects that represents the service accounts that the system could merge for this subaccount.
          items:
            type: object
          type: array
      type: object
    MainDomainContents:
      properties:
        all_aliases_valid:
          description: 'Whether a valid SSL certificate exists on the domain''s aliases.


            * `1` — A valid SSL certificate exists.

            * `0` — A valid SSL certificate does **not** exist.


            **Note:**


            This return **only** appears if you set the `return_https_redirects_status` parameter to `1`.'
          enum:
          - 1
          - 0
          type: integer
        can_https_redirect:
          description: 'Whether a valid SSL certificate exists or AutoSSL runs on the domain.


            * `1` — A valid SSL certificate exists or AutoSSL runs.

            * `0` — A valid SSL certificate does **not** exist and AutoSSL does **not** run.


            **Note:**


            This return **only** appears if you set the `return_https_redirects_status` parameter to `1`.'
          enum:
          - 1
          - 0
          type: integer
        customlog:
          description: 'The domain''s [Apache log](http://httpd.apache.org/docs/2.2/mod/mod_log_config.html)

            information.'
          properties:
            format:
              description: 'The [log file](https://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat)''s

                format.'
              type: string
            target:
              description: The absolute path to the domain's log file in the `domlogs` directory.
              type: string
          type: object
        documentroot:
          description: The absolute path to the domain's document root.
          format: path
          type: string
        domain:
          description: The domain's name.
          format: domain
          type: string
        group:
          description: The domain's group.
          type: string
        hascgi:
          description: 'Whether CGI is enabled for the domain.


            * `1` — Enabled.

            * `0` — Disabled.'
          enum:
          - 1
          - 0
          type: integer
        homedir:
          description: The absolute path to the cPanel account's home directory.
          format: path
          type: string
        ifmodulemodsuphpc:
          description: Information about PHP scripts and suPHP.
          properties:
            group:
              description: If suPHP is enabled, PHP scripts run as this group.
              type: string
          type: object
    

# --- truncated at 32 KB (6455 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cpanel/refs/heads/main/openapi/cpanel-uapi-openapi.yml