WHM API 1

WHM API 1 is the HTTP API for server-wide and reseller-level operations on a cPanel & WHM server: creating, suspending, restoring and terminating cPanel accounts, managing hosting packages and feature lists, DNS and DNSSEC, AutoSSL and certificate installation, backups and backup destinations, transfers, ModSecurity, cPHulk and API tokens. 625 operations served at /json-api/{function} on ports 2087 (secure) and 2086, or 443 through a service subdomain. Every call requires api.version=1 and an 'Authorization: whm :' header; every call returns HTTP 200 with the outcome in metadata.result.

Operations 625

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

GET /360Monitoring/register_server_with_360_monitoring Register the server with 360 Monitoring #
GET /360Monitoring/set_360_agent_polling Update 360 Monitoring agent polling settings #
GET /EcosystemFeatures/is_ready Check if a plugin feature is ready for use #
GET /EcosystemFeatures/local_disable Disable feature locally #
GET /EcosystemFeatures/local_enable Enable feature locally #
GET /_getpkgextensionform Return hosting plan extension templates #
GET /abort_transfer_session Stop transfer session #
GET /accept_eula Save EULA acceptance #
GET /accesshash Return cPanel account access hash #
GET /accountsummary Return cPanel account summary #
GET /acctcounts Return reseller's owned accounts' information #
GET /activate_zone_key Enable domain's DNSSEC key #
GET /add_autossl_user_excluded_domains Disable AutoSSL for domain #
POST /add_configclusterserver Add configuration cluster server #
GET /add_override_features_for_user Add cPanel account feature list overrides #
GET /add_zone_key Create domain's DNSSEC zone key #
GET /adddns Create DNS zone #
GET /addips Add IP addresses #
GET /addpkg Create hosting plan #
GET /addpkgext Add hosting plan extension #
POST /addzonerecord Create DNS zone record #
GET /allow_all_whm_root_access Clear all CIDR restrictions to login to cPanel & WHM with the root password. #
GET /analyze_transfer_session_remote Validate remote server's credentials #
GET /api_token_create Create WHM API token #
GET /api_token_get_details Look up API token details #
GET /api_token_list Return WHM API tokens #
GET /api_token_revoke Disable WHM API token #
GET /api_token_update Update WHM API token's settings #
GET /applist Return WHM API 1 functions list #
GET /apply_dmarc Apply a DMARC record to a domain #
GET /assign_account_enhancement Assign Account Enhancement #
GET /authorizesshkey Enable SSH key for server #
GET /available_transfer_modules Return available transfer modules #
GET /background_mysql_upgrade_checker_run Validate MySQL status before upgrade #
GET /background_mysql_upgrade_status Return MySQL or MariaDB upgrade status #
GET /backup_config_get Return backup configuration file data #
GET /backup_config_set Update the system's backup configuration #
GET /backup_date_list Return dates where backup files exist #
GET /backup_destination_add Add a backup destination #
GET /backup_destination_delete Delete a backup destination #
GET /backup_destination_get Return a backup destination's settings #
GET /backup_destination_list Return a list of backup destinations #
POST /backup_destination_set Update backup destination settings #
GET /backup_destination_validate Validate a backup destination #
GET /backup_does_client_id_have_google_credentials Return Google Drive™ client ID credentials #
GET /backup_generate_google_oauth_uri Create Google Drive™ OAuth redirect URI #
GET /backup_get_transport_status Return backup transport events' status #
GET /backup_list_transported Return backup files sent through transport #
GET /backup_set_list Return backup files in the local disk #
GET /backup_set_list_combined Return backup files for the server's accounts #
GET /backup_skip_users_all Enable or disable backups #
GET /backup_skip_users_all_status Return backup configuration status #
GET /backup_user_list Return users with a backup file #
GET /batch Run multiple WHM API 1 functions #
POST /batch_create_cphulk_records Add login security record to list with comment #
GET /block_incoming_email_from_country Add block on emails from specific countries #
GET /block_incoming_email_from_domain Add block on emails from specific domains #
GET /changepackage Update user hosting plan #
GET /check_remote_ssh_connection Validate SSH connection to another server #
GET /cluster_member_has_trust_with Return whether DNS cluster server can share records #
GET /configurebackgroundprocesskiller Update background process stopper #
GET /configureservice Enable or disable a service and its monitoring #
GET /convert_addon_fetch_conversion_details Return additional domain conversion details #
GET /convert_addon_fetch_domain_details Return additional domain data #
GET /convert_addon_get_conversion_status Return conversion status for additional domain #
GET /convert_addon_initiate_conversion Start additional domain conversion #
GET /convert_addon_list_addon_domains Return current user's additional domains #
GET /convert_addon_list_conversions Return additional domains conversion queue #
GET /convert_all_domains_to_fpm Enable PHP-FPM on all domains #
GET /convert_and_migrate_from_legacy_config Migrate server to new backup system #
GET /convertopensshtoputty Migrate OpenSSH key to PuTTY format #
GET /cors_proxy_get Enable CORS HTTP requests #
GET /cpanel Run cPanel API or UAPI function #
GET /cpgreylist_is_server_netblock_trusted Return Greylisting trust status of server netblock #
GET /cpgreylist_list_entries_for_common_mail_provider Return Greylisting IP addresses of mail providers #
GET /cpgreylist_load_common_mail_providers_config Return Greylisting mail providers #
GET /cpgreylist_save_common_mail_providers_config Update Greylisting new mail provider handling #
GET /cpgreylist_status Return Greylisting status #
GET /cpgreylist_trust_entries_for_common_mail_provider Add mail provider to Greylisting trusted hosts #
GET /cpgreylist_untrust_entries_for_common_mail_provider Add mail provider to Greylisting non-trusted hosts #
GET /cphulk_status Return login security status #
GET /create_account_enhancement Create Account Enhancement #
GET /create_cpgreylist_trusted_host Add IP address to Greylisting trusted hosts #
GET /create_cphulk_record Add login security record to list #
GET /create_featurelist Create feature list #
GET /create_integration_group Create integration link group #
GET /create_parked_domain_for_user Create domain alias #
GET /create_remote_root_transfer_session Create remote server transfer session as root user #
GET /create_remote_user_transfer_session Create remote server transfer session #
GET /create_subdomain Create subdomain #
GET /create_user_session Create a temporary user session #
GET /createacct Create cPanel account #
GET /current_mysql_version Return MySQL version #
GET /deactivate_zone_key Disable domain's DNSSEC key #
GET /delete_account_archives Remove cPanel account's archives #
GET /delete_account_enhancement Remove an Account Enhancement #
GET /delete_configclusterserver Delete server from configuration cluster #
GET /delete_cpgreylist_trusted_host Remove IP address from Greylisting trusted hosts #
GET /delete_cphulk_record Remove login security record from list #
GET /delete_customizations Delete customization data #
GET /delete_domain Delete domain #
GET /delete_featurelist Delete feature list #
GET /delete_hook Delete script hook #
GET /delete_rpm_version Remove rpm.versions system configuration #
GET /delete_ssl_vhost Delete SSL vhost #
GET /deletesshkey Delete SSH key #
GET /delip Remove IP address #
GET /delpkgext Remove hosting plan extension #
GET /disable_authentication_provider Disable identity provider #
GET /disable_autossl Disable AutoSSL #
GET /disable_cpgreylist Disable Greylisting #
GET /disable_cphulk Disable login security #
GET /disable_dkim Disable domain's DKIM records #
GET /disable_dnssec_for_domains Disable DNSSEC on domain #
GET /disable_failing_authentication_providers Disable identity provider modules that fail to load #
GET /disable_mail_sni (Deprecated) Disable SNI mail services for domains #
GET /disable_market_provider Disable Market provider #
GET /domainuserdata Return domain user information #
GET /dumpzone Return domain's DNS zone configuration #
GET /ea4_get_additional_pkg_prefixes Return any additional package prefixes, beyond `ea`. #
GET /ea4_get_currently_installed_packages Return installed Easyapache 4 packages #
GET /ea4_list_profiles Return EasyApache 4 profiles #
GET /ea4_metainfo Return ea4-metainfo.json file contents #
GET /ea4_recommendations Return EasyApache 4 recommendations #
GET /ea4_save_profile Create EasyApache 4 profile #
GET /edit_hook Update script hook #
GET /edit_rpm_version Update rpm.versions system configuration #
GET /editpkg Update hosting plan #
GET /editquota Update cPanel account disk quota #
POST /editzonerecord Update DNS zone record #
GET /emailtrack_stats Return cPanel account email tracking statistics #
GET /emailtrack_user_stats Return all cPanel accounts email tracking statistics #
GET /enable_authentication_provider Enable identity provider #
GET /enable_cpgreylist Enable Greylisting #
GET /enable_cphulk Enable login security #
GET /enable_dkim Enable domain's DKIM records #
GET /enable_dnssec_for_domains Enable DNSSEC on domain #
GET /enable_mail_sni Enable SNI mail services for domains #
GET /enable_market_provider Enable Market provider #
GET /enable_monitor_all_enabled_services Enable monitoring for all services #
GET /enqueue_deferred_ssl_installations Add SSL certificate to installation queue #
GET /enqueue_transfer_item Add module to transfer session #
GET /ensure_dkim_keys_exist Validate domain's DKIM keys #
GET /eol_php_sites Count domains using EOL PHP versions #
GET /execute_remote_whmapi1_with_password Run remote WHM API 1 function #
GET /exim_configuration_check Repair Exim configuration file #
GET /export_zone_dnskey Export domain's DNSKEY record value #
GET /export_zone_files Export DNS zones in zone file format #
GET /export_zone_key Export domain's DNSSEC key #
GET /expunge_mailbox_messages Remove email account messages by Dovecot query #
GET /expunge_messages_for_mailbox_guid Remove email account messages by mailbox GUID #
POST /fetch_connected_application Fetch application connection information #
GET /fetch_dkim_private_keys Return domain's DKIM private key #
GET /fetch_ds_records_for_domains Return domain's DS record #
GET /fetch_mail_queue Return server mail queue contents #
GET /fetch_pkgacct_master_log Return start_background_pkgacct session log file #
GET /fetch_security_advice Return Security Advisor results #
GET /fetch_service_ssl_components Return system services and associated certificates #
GET /fetch_ssl_certificates_for_fqdns Return cPanel account FQDN certificate information #
GET /fetch_ssl_vhosts Return server vhosts and SSL certificates #
GET /fetch_transfer_session_log Return transfer session's log file #
GET /fetch_vhost_ssl_components Return all SSL certificate components on vhost #
GET /fetchcrtinfo Return SSL certificate information #
GET /fetchsslinfo Return cPanel account SSL certificate information #
GET /flush_cphulk_login_history Remove all login security records #
GET /flush_cphulk_login_history_for_ips Remove login security IP address block #
GET /force_dedistribution_from_node Repair distributed accounts with data loss #
GET /forcepasswordchange Enable forced password update #
GET /generate_mobileconfig Create email account mobile profile configuration #
GET /generatesshkeypair Create SSH key pair #
GET /generatessl Create self-signed SSL certificate #
GET /get_adjusted_market_providers_products Return Market providers' products adjusted prices #
GET /get_all_contact_importances Return Contact Manager event importance settings #
GET /get_api_calls Return deprecated cPanel API 1 functions by date #
GET /get_api_pages Return deprecated cPanel API 1 functions #
GET /get_appconfig_application_list Return registered applications #
GET /get_application_contact_event_importance Return app's event contact importance setting #
GET /get_application_contact_importance Return app contact importance setting #
GET /get_autossl_check_schedule Return AutoSSL check script cron entry #
GET /get_autossl_log Return AutoSSL log file's contents #
GET /get_autossl_logs_catalog Return AutoSSL log files #
GET /get_autossl_metadata Return current user's AutoSSL metadata #
GET /get_autossl_problems_for_domain Return domain DCV issues #
GET /get_autossl_problems_for_user Return account DCV issues #
GET /get_autossl_providers Return available AutoSSL providers #
GET /get_autossl_user_excluded_domains Return all AutoSSL-excluded domains #
GET /get_available_applications Return dynamicui file #
GET /get_available_authentication_providers Return available identity providers #
GET /get_available_featurelists (Deprecated) Get available feature lists #
GET /get_available_profiles Return available server profiles #
GET /get_available_tiers Return cPanel & WHM available versions #
GET /get_best_ssldomain_for_service Return SSL-encrypted domain for service access #
GET /get_commerce Get Commerce Data #
GET /get_countries_with_known_ip_ranges Return login security country codes #
GET /get_cphulk_brutes Return login security brute force attacks #
GET /get_cphulk_excessive_brutes Return login security excessive brute force attacks #
GET /get_cphulk_failed_logins Return login security failed logins #
GET /get_cphulk_user_brutes Return login security brute force attacks by user #
GET /get_current_lts_expiration_status Return Long Term Support expiration status #
GET /get_current_profile Return server's node profile #
GET /get_current_users_count Return cPanel accounts total number #
GET /get_database_optimizations Return MySQL database optimizations #
GET /get_default_dmarc_record Get the server's default DMARC record #
GET /get_disk_usage Return all cPanel accounts disk usage #
GET /get_domain_info Return all domains information #
GET /get_ecommerce Get Ecommerce Data #
GET /get_feature_metadata Return current user's available feature lists info #
GET /get_feature_names Return all features #
GET /get_featurelist_data Return feature list configuration #
GET /get_featurelists Return current user's available feature lists #
GET /get_featurelists_by_package_types Return feature lists by package type #
GET /get_fpm_count_and_utilization Return workload data for PHP-FPM on all domains #
GET /get_homedir_roots Return home directories list #
GET /get_in_product_survey_url Get in-product survey URL #
GET /get_linked_server_node Return linked remote server node settings #
GET /get_login_url Return cPanel Store or cPanel Market login URL #
GET /get_lts_wexpire Return Long Term Support status for all versions #
GET /get_mailbox_status Return cPanel account mailboxes status by name #
GET /get_mailbox_status_list Return cPanel account mailboxes status list #
GET /get_market_providers_commission_config Return Market providers' commission configuration #
GET /get_market_providers_list Return Market providers #
GET /get_market_providers_product_metadata Return Market providers' products metadata #
GET /get_market_providers_products Return Market providers products #
GET /get_maximum_users Return maximum accounts for license #
GET /get_nameserver_config Return current user's nameservers #
GET /get_password_strength Return password strength #
GET /get_pkgacct_session_state Return start_background_pkgacct session state #
GET /get_provider_client_configurations Return identity provider client configuration #
GET /get_provider_configuration_fields Return identity provider configuration fields #
GET /get_provider_display_configurations Return identity provider login interface appearance #
GET /get_public_contact Return current user's public contact information #
GET /get_public_ip Return public IP address of private IP address #
GET /get_remote_access_hash Return remote access file's hash #
GET /get_rpm_version_data Return available RPM packages #
GET /get_scoped_userdata Get scoped userdata #
GET /get_server_node_status Return linked server node status #
GET /get_service_config Return service configuration settings #
GET /get_service_config_key Return service configuration key #
GET /get_service_proxy_backends Return a cPanel account’s service proxying setup #
GET /get_shared_ip Return shared IP address #
GET /get_tcp4_sockets Return TCP IPv4 sockets data #
GET /get_tcp6_sockets Return TCP IPv6 sockets data #
GET /get_transfer_session_state Return transfer session's status #
GET /get_tweaksetting Return Tweak Settings option's value #
GET /get_udp4_sockets Return UDP IPv4 sockets data #
GET /get_udp6_sockets Return UDP IPv6 sockets data #
GET /get_unique_recipient_count_per_sender_for_user Return cPanel account unique email recipients #

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/whm-api-1"
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-whm-api-openapi.yml Raw ↑
components:
  schemas:
    AmazonS3BackupDestinationResponse:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationResponse'
      - properties:
          aws_access_key_id:
            description: The Amazon S3 Access Key ID.
            example: s123456789
            type: string
          bucket:
            description: The Amazon S3™ bucket.
            example: ChockFullOfNuts
            type: string
          folder:
            default: ''
            description: The path to the backups directory, relative to the root directory, on the remote server.
            example: subfolder
            type: string
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        type: object
    AppConfig:
      properties:
        acls:
          description: The ACL(s) with permission to run the application.
          items:
            example: any
            type: string
          type: array
        displayname:
          description: 'The application''s WHM display label.


            **Note:**


            The function **only** returns this value for plugins that you register with [AppConfig](https://go.cpanel.net/appconfig).'
          example: Roundcube
          type: string
        entryurl:
          description: 'The application''s WHM entry URL.


            **Note:**


            The function **only** returns this value for plugins that you register with [AppConfig](https://go.cpanel.net/appconfig).'
          example: roundcube/
          format: url-path
          type: string
        features:
          description: The required features to run the application.
          items:
            example: roundcube
            type: string
          type: array
        group:
          description: The application's group.
          example: mailman
          type: string
        icon:
          description: 'The application''s icon file, relative to the `/usr/local/cpanel/whostmgr/docroot/addon_plugins/`
            directory.


            **Note:**


            The function **only** returns this value for plugins that you register with [AppConfig](https://go.cpanel.net/appconfig).'
          example: roundcube.ico
          type: string
        name:
          description: The application's name.
          example: roundcube
          type: string
        origin:
          description: 'The application''s configuration file.


            **Note:**


            The function **only** returns this value for plugins that you register with [AppConfig](https://go.cpanel.net/appconfig).'
          example: clamavconnector.conf
          type: string
        phpConfig:
          description: The application's `php.ini` file, relative to the `/usr/local/cpanel/3rdparty/etc/` directory.
          example: php.ini
          format: path
          type: string
        target:
          description: 'The action''s target directory.


            **Note:**


            The function **only** returns this value for plugins that you register with [AppConfig](https://go.cpanel.net/appconfig).'
          example: _self
          format: path
          type: string
        upgradecall:
          description: "The absolute file path to the application's upgrade script.\n\n**Note:**\n\n* The function **only**\
            \ returns this value for plugins that you register with [AppConfig](https://go.cpanel.net/appconfig).\n* The system\
            \ passes upgrade information in the following format: `/usr/local/youraddon/bin/upgrade 11.36.0.0 11.38.0.0`,\
            \ where:\n  * `11.36.0.0` is the **previous** cPanel & WHM version.\n  * `11.38.0.0` is the **current** cPanel\
            \ & WHM version."
          example: /usr/local/roundcube/bin/upgrade
          format: path
          type: string
        url:
          description: The application's URL path.
          example: /3rdparty/roundcube
          format: url-path
          type: string
        user:
          description: The application's username.
          example: roundcube
          type: string
      type: object
    BackblazeBackupDestinationResponse:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationResponse'
      - properties:
          application_key:
            description: The application key's name.
            example: A123b45CD678e9
            type: string
          application_key_id:
            description: The application key ID that authenticates the Backblaze B2 account.
            example: 12a345B678c9
            type: string
          bucket_id:
            description: The bucket's ID.
            example: a12b34cd5678e9f
            type: string
          bucket_name:
            description: The bucket's name.
            example: ChockFullOfNuts
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: backups
            format: path
            type: string
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        type: object
    BackupDestinationGetResponse:
      anyOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseAmazonS3'
      - $ref: '#/components/schemas/BackupDestinationGetResponseBackblaze'
      - $ref: '#/components/schemas/BackupDestinationGetResponseCustom'
      - $ref: '#/components/schemas/BackupDestinationGetResponseFTP'
      - $ref: '#/components/schemas/BackupDestinationGetResponseGoogleDrive'
      - $ref: '#/components/schemas/BackupDestinationGetResponseLocal'
      - $ref: '#/components/schemas/BackupDestinationGetResponseRsync'
      - $ref: '#/components/schemas/BackupDestinationGetResponseS3Compatible'
      - $ref: '#/components/schemas/BackupDestinationGetResponseSFTP'
      - $ref: '#/components/schemas/BackupDestinationGetResponseWebDAV'
      discriminator:
        mapping:
          AmazonS3: '#/components/schemas/BackupDestinationGetResponseAmazonS3'
          Backblaze: '#/components/schemas/BackupDestinationGetResponseBackblaze'
          Custom: '#/components/schemas/BackupDestinationGetResponseCustom'
          FTP: '#/components/schemas/BackupDestinationGetResponseFTP'
          GoogleDrive: '#/components/schemas/BackupDestinationGetResponseGoogleDrive'
          Local: '#/components/schemas/BackupDestinationGetResponseLocal'
          Rsync: '#/components/schemas/BackupDestinationGetResponseRsync'
          S3Compatible: '#/components/schemas/BackupDestinationGetResponseS3Compatible'
          SFTP: '#/components/schemas/BackupDestinationGetResponseSFTP'
          WebDAV: '#/components/schemas/BackupDestinationGetResponseWebDAV'
        propertyName: type
    BackupDestinationGetResponseAmazonS3:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          aws_access_key_id:
            description: The Amazon S3 Access Key ID.
            example: s123456789
            type: string
          bucket:
            description: The Amazon S3™ bucket.
            example: ChockFullOfNuts
            type: string
          folder:
            description: The path to the backups directory, relative to the root directory, on the remote server.
            example: subfolder
            format: path
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        type: object
    BackupDestinationGetResponseBackblaze:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          application_key:
            description: The application key's name.
            example: A123b45CD678e9
            type: string
          application_key_id:
            description: The application key ID that authenticates the Backblaze B2 account.
            example: 12a345B678c9
            type: string
          bucket_id:
            description: The bucket's ID.
            example: a12b34cd5678e9f
            type: string
          bucket_name:
            description: The bucket's name.
            example: ChockFullOfNuts
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        type: object
    BackupDestinationGetResponseBase:
      properties:
        disable_reason:
          description: 'An error message that explains why the backup is disabled.


            **Note:**


            You will only see this return when the transport is disabled.'
          example: 'Could not list files in destination: example'
          type: string
        disabled:
          description: 'Shows whether the backup destination is disabled.

            * `1` — The destination is disabled.

            * `0` — The destination is enabled.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        id:
          description: The backup destination's ID
          example: sNnLb1req9oJN9lUJFhA99kY
          type: string
        name:
          description: The backup destination's name.
          example: destination_name
          type: string
        type:
          description: 'The type of backup destination. Select a backup destination from the following menu to view its return
            values:'
          enum:
          - Custom
          - FTP
          - Local
          - SFTP
          - WebDAV
          - AmazonS3
          - Rsync
          - GoogleDrive
          - S3Compatible
          - Backblaze
          example: Local
          type: string
      type: object
    BackupDestinationGetResponseCustom:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          script:
            description: The absolute file path of the user-supplied transport solution script.
            example: /home/backups/beammeupscotty.pl
            format: path
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        type: object
    BackupDestinationGetResponseFTP:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          passive:
            description: 'Whether to use passive FTP.

              * `1` - Use passive FTP.

              * `0` - Use active FTP.'
            example: 1
            type: integer
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          port:
            description: The remote server's FTP port.
            example: 21
            maximum: 65535
            minimum: 1
            type: integer
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        type: object
    BackupDestinationGetResponseGoogleDrive:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          client_id:
            description: The Google Drive client ID.
            example: aBcdeFgHIjK123
            type: string
          client_secret:
            description: The Google Drive client secret.
            example: aBcde123FgHIjK456
            type: string
          folder:
            description: The path to the backups directory, relative to the root directory, on the remote server.
            example: subfolder
            format: path
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        type: object
    BackupDestinationGetResponseLocal:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          mount:
            description: 'Whether the path is mounted.

              * `1` - The path is mounted.

              * `0` - The path is **not** mounted.'
            enum:
            - 1
            - 0
            example: 0
            type: integer
          no_mount_fail:
            description: 'Whether to fail the backup attempt if the mount fails.

              * `1` - Fail the backup attempt.

              * `0` - Do **not** fail the backup attempt.'
            enum:
            - 1
            - 0
            example: 0
            type: integer
          path:
            description: The absolute path to the backups directory.
            example: /home/backups
            format: path
            type: string
        type: object
    BackupDestinationGetResponseRsync:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          authtype:
            description: 'The authorization type.

              * `password`

              * `key`'
            enum:
            - password
            - key
            example: password
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          port:
            description: The remote server's FTP port.
            example: 22
            maximum: 65535
            minimum: 1
            type: integer
          privatekey:
            description: If the `authtype` return's value is `key`, the absolute path to the private key file.
            example: /home/backups/key
            format: path
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        type: object
    BackupDestinationGetResponseS3Compatible:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          aws_access_key_id:
            description: The S3-compatible provider key ID.
            example: s123456789
            type: string
          bucket:
            description: The S3-compatible bucket.
            example: ChockFullOfNuts
            type: string
          folder:
            description: The path to the backups directory, relative to the root directory, on the remote server.
            example: subfolder
            type: string
          host:
            description: The S3-compatible provider's server.
            example: www.s3example.com
            format: domain
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        type: object
    BackupDestinationGetResponseSFTP:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          authtype:
            description: 'The authorization type.

              * `password`

              * `key`'
            enum:
            - password
            - key
            example: password
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          port:
            description: The remote server's FTP port.
            example: 21
            maximum: 65535
            minimum: 1
            type: integer
          privatekey:
            description: If the `authtype` return's value is `key`, the absolute path to the private key file.
            example: /home/backups/key
            format: path
            type: string
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        type: object
    BackupDestinationGetResponseWebDAV:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationGetResponseBase'
      - properties:
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          port:
            description: The remote server's FTP port.
            example: 21
            maximum: 65535
            minimum: 1
            type: integer
          ssl:
            description: 'Whether to use SSL.

              * `1` - Use SSL.

              * `0` - Do **not** use SSL.'
            enum:
            - 1
            - 0
            example: 1
            type: integer
          timeout:
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        type: object
    BackupDestinationResponse:
      properties:
        disable_reason:
          description: 'An error message that explains why the backup is disabled.


            **Note:**


            You will only see this return when the transport is disabled.'
          example: 'Could not list files in destination: example'
          type: string
        disabled:
          description: 'Shows whether the backup destination is disabled.

            * `1` — The destination is disabled.

            * `0` — The destination is enabled.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        id:
          description: The ID of the backup destination to modify.
          example: 0W1ei2rd3A4lI5sT6he7Be8st
          type: string
        name:
          description: A new name for the backup destination.
          example: destination_name
          type: string
        type:
          description: The type of backup destination.
          enum:
          - Custom
          - FTP
          - Local
          - SFTP
          - WebDAV
          - AmazonS3
          - Rsync
          - GoogleDrive
          - S3Compatible
          - Backblaze
          example: Local
          type: string
      type: object
    BackupDestinationResponseType:
      anyOf:
      - $ref: '#/components/schemas/AmazonS3BackupDestinationResponse'
      - $ref: '#/components/schemas/BackblazeBackupDestinationResponse'
      - $ref: '#/components/schemas/CustomBackupDestinationResponse'
      - $ref: '#/components/schemas/FTPBackupDestinationResponse'
      - $ref: '#/components/schemas/GoogleDriveBackupDestinationResponse'
      - $ref: '#/components/schemas/LocalBackupDestinationResponse'
      - $ref: '#/components/schemas/RsyncBackupDestinationResponse'
      - $ref: '#/components/schemas/S3CompatibleBackupDestinationResponse'
      - $ref: '#/components/schemas/SFTPBackupDestinationResponse'
      - $ref: '#/components/schemas/WebDAVBackupDestinationResponse'
      discriminator:
        mapping:
          AmazonS3: '#/components/schemas/AmazonS3BackupDestinationResponse'
          Backblaze: '#/components/schemas/BackblazeBackupDestinationResponse'
          Custom: '#/components/schemas/CustomBackupDestinationResponse'
          FTP: '#/components/schemas/FTPBackupDestinationResponse'
          GoogleDrive: '#/components/schemas/GoogleDriveBackupDestinationResponse'
          Local: '#/components/schemas/LocalBackupDestinationResponse'
          Rsync: '#/components/schemas/RsyncBackupDestinationResponse'
          S3Compatible: '#/components/schemas/S3CompatibleBackupDestinationResponse'
          SFTP: '#/components/schemas/SFTPBackupDestinationResponse'
          WebDAV: '#/components/schemas/WebDAVBackupDestinationResponse'
        propertyName: type
    BackupDestinationSetParameterAmazonS3:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          aws_access_key_id:
            description: The Amazon S3 Access Key ID.
            example: s123456789
            type: string
          bucket:
            description: The Amazon S3™ bucket.
            example: ChockFullOfNuts
            type: string
          folder:
            default: ''
            description: The path to the backups directory, relative to the root directory, on the remote server.
            example: subfolder
            format: path
            type: string
          password:
            description: The Amazon S3 Access Key's password.
            example: 123456luggage
            type: string
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        required:
        - bucket
        - aws_access_key_id
        - timeout
        - password
        type: object
    BackupDestinationSetParameterBackblaze:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          application_key:
            description: The application key's name.
            example: A123b45CD678e9
            type: string
          application_key_id:
            description: The application key ID that authenticates the Backblaze B2 account.
            example: 12a345B678c9
            type: string
          bucket_id:
            description: The bucket's ID.
            example: a12b34cd5678e9f
            type: string
          bucket_name:
            description: The bucket's name.
            example: ChockFullOfNuts
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: backups
            format: path
            type: string
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        required:
        - application_key
        - application_key_id
        - bucket_id
        - bucket_name
        type: object
    BackupDestinationSetParameterBase:
      properties:
        disable_reason:
          description: An error message that explains why the backup is disabled.
          example: 'Could not list files in destination: example'
          type: string
        disabled:
          description: 'Whether to disable the backup destination.

            * `1` — Disable the destination.

            * `0` — Enable the destination.


            **Note:**


            If you do not set this parameter, the system retains the current setting.'
          enum:
          - 0
          - 1
          example: 0
          type: integer
        id:
          description: The ID of the backup destination to modify.
          example: 0W1ei2rd3A4lI5sT6he7Be8st
          type: string
        name:
          description: 'A new name for the backup destination.


            **Note:**


            If you do not set this parameter, the system retains the current setting.'
          example: destination_name
          type: string
        type:
          description: 'The type of backup destination.


            **Note:**


            If you do not set this parameter, the system retains the current setting.


            Select a backup destination from the following menu to view its optional parameters:'
          enum:
          - Custom
          - FTP
          - Local
          - SFTP
          - WebDAV
          - AmazonS3
          - Rsync
          - GoogleDrive
          - S3Compatible
          - Backblaze
          example: Local
          type: string
        upload_system_backup:
          description: 'Whether to upload system backups.

            * `1` — Upload.

            * `0` — Do **not** upload.


            **Note:**


            If you do not set this parameter, the system retains the current setting.'
          enum:
          - 0
          - 1
          example: 1
          type: integer
        only_used_for_logs:
          description: 'Whether to use this transport only for logs.

            * `1` — This destination will be skipped for regular backups.

            * `0` — Both log and regular backups will be uploaded.


            This setting defaults to 0.

            The only time log files get their own backup is via scripts/remote_log_transfer


            **Note:**


            If you do not set this parameter, the system retains the current setting.'
          enum:
          - 0
          - 1
          example: 1
          type: integer
      required:
      - id
      type: object
    BackupDestinationSetParameterCustom:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          password:
            description: The remote server account's password.
            example: 123456luggage
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          script:
            description: The absolute file path of the user-supplied transport solution script.
            example: /home/backups/beammeupscotty.pl
            format: path
            type: string
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        required:
        - script
        - host
        - path
        - username
        - password
        type: object
    BackupDestinationSetParameterFTP:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          passive:
            default: 1
            description: 'Whether to use passive FTP.

              * `1` - Use passive FTP.

              * `0` - Use active FTP.'
            example: 1
            type: integer
          password:
            description: The remote server account's password.
            example: 123456luggage
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /backups
            format: path
            type: string
          port:
            default: 21
            description: The remote server's FTP port.
            example: 21
            maximum: 65535
            minimum: 1
            type: integer
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
          username:
            description: The remote server account's username.
            example: username
            type: string
        required:
        - host
        - path
        - username
        - password
        type: object
    BackupDestinationSetParameterGoogleDrive:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          client_id:
            description: The Google Drive client ID.
            example: aBcdeFgHIjK123
            type: string
          client_secret:
            description: The Google Drive client secret.
            example: aBcde123FgHIjK456
            type: string
          folder:
            default: ''
            description: The path to the backups directory, relative to the root directory, on the remote server.
            example: subfolder
            format: path
            type: string
          timeout:
            default: 30
            description: The session timeout, in seconds.
            example: 300
            maximum: 300
            minimum: 30
            type: integer
        required:
        - client_id
        - client_secret
        type: object
    BackupDestinationSetParameterLocal:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          mount:
            default: 0
            description: 'Whether the path is mounted.

              * `1` - The path is mounted.

              * `0` - The path is **not** mounted.'
            enum:
            - 1
            - 0
            example: 0
            type: integer
          no_mount_fail:
            default: 0
            description: 'Whether to fail the backup attempt if the mount fails.

              * `1` - Fail the backup attempt.

              * `0` - Do **not** fail the backup attempt.'
            enum:
            - 1
            - 0
            example: 0
            type: integer
          path:
            description: The absolute path to the backups directory.
            example: /home/backups
            format: path
            type: string
        required:
        - path
        type: object
    BackupDestinationSetParameterRsync:
      allOf:
      - $ref: '#/components/schemas/BackupDestinationSetParameterBase'
      - properties:
          authtype:
            description: 'The authorization type.

              * `password`

              * `key`'
            enum:
            - password
            - key
            example: password
          host:
            description: The remote server's hostname.
            example: backups.example.com
            format: domain
            type: string
          passphrase:
            description: If the `authtype` parameter's value is `key`, the private key file's passphrase.
            example: 123456luggage
            type: string
          password:
            description: If the `authtype` parameter's value is `password`, the remote server account's password.
            example: 123456luggage
            type: string
          path:
            description: The path to the backups directory on the remote server.
            example: /bac

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