cPanel Web Vhosts API

The WebVhosts module for UAPI.

Operations 2

GET /WebVhosts/list_domains Return virtual host names for domains #
GET /WebVhosts/list_ssl_capable_domains Return domains that allow SSL certificate purchase #

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/cpanel-webvhosts-api"
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-webvhosts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: cs@cpanel.net
    name: WebPros International, LLC
    url: https://cpanel.net/support/
  description: UAPI accesses the cPanel interface's features. Use this API to access and modify cPanel account data and settings.
  license:
    name: cPanel License
    url: https://cpanel.net/legal-notices/
  termsOfService: https://cpanel.net/legal-notices/
  title: cPanel U Web Vhosts API
  version: 11.137.9999.106
  x-api-evangelist-provenance: 'Harvested verbatim from cPanel''s developer portal on 2026-09-05 via the MCP tool get-full-api-description at https://api.docs.cpanel.net/mcp. ONE mechanical change was made before storage: example values containing PEM private-key or certificate blocks, and AWS-access-key-shaped example strings, were replaced with REDACTED_* placeholders so the file can be stored in a public git repository without tripping secret scanning. No path, operation, parameter, schema or description was altered, added or removed.'
servers:
- description: A server running cPanel.
  url: https://{host}:{port}/execute
  variables:
    host:
      default: cpanel-server.tld
      description: The hostname of a server running cPanel.
    port:
      default: '2083'
      description: The cPanel port.
security:
- BasicAuth: []
tags:
- description: The WebVhosts module for UAPI.
  name: WebVhosts
paths:
  /WebVhosts/list_domains:
    get:
      x-readonly: true
      description: This function lists virtual host names for each domain.
      operationId: WebVhosts-list_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebVhosts
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: The domain name.
                              example: example.com
                              format: domain
                              type: string
                            proxy_subdomains:
                              description: 'An array of service subdomains (proxy subdomains) listed for the domain.


                                **Note:**


                                This only returns values when `vhost_is_ssl` equals `1`.'
                              example:
                              - cpanel
                              - webmail
                              - autodiscover
                              - whm
                              - webdisk
                              items:
                                type: string
                              type:
                              - array
                              - 'null'
                            vhost_is_ssl:
                              description: 'Whether an SSL certificate secures the domain.

                                * `1` - Secured.

                                * `0` - **Not** secured.'
                              enum:
                              - 0
                              - 1
                              example: 1
                              type: integer
                            vhost_name:
                              description: The name of the virtual host.
                              example: hostname.example.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        type:
                        - array
                        - 'null'
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        type:
                        - array
                        - 'null'
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                            - 1
                            example: 1
                            type: integer
                      status:
                        description: '* `1` - Success.

                          * `0` - Failed. Check the `errors` field for more details.'
                        enum:
                        - 0
                        - 1
                        example: 1
                        type: integer
                      warnings:
                        description: List of warnings generated by the API. Warnings describe non-critical failures or other problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        type:
                        - array
                        - 'null'
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return virtual host names for domains
      tags:
      - WebVhosts
      x-codeSamples:
      - label: CLI
        lang: Shell
        source: "uapi --output=jsonpretty \\\n  --user=username \\\n  WebVhosts \\\n  list_domains\n"
      - label: URL
        lang: HTTP
        source: https://hostname.example.com:2083/cpsess##########/execute/WebVhosts/list_domains
      - label: LiveAPI Perl
        lang: Perl
        source: "#--------------------------------------------------------------------------------------\n# Instructions:\n#--------------------------------------------------------------------------------------\n# <theme-name> is the theme assigned to cPanel account.\n# 1) cd /usr/local/cpanel/base/frontend/<theme-name>\n# 2) mkdir api_examples\n# 3) cd api_examples\n# 4) create a file WebVhosts_list_domains.live.pl and put this code into that file.\n# 5) In your browser login to a cPanel account.\n# 6) Manually change the url from: .../frontend/<theme-name>/\n#    to .../frontend/<theme-name>/api_examples/WebVhosts_list_domains.live.pl\n#--------------------------------------------------------------------------------------\n\nuse strict;\n\nuse Cpanel::LiveAPI ();\n\nmy $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.\n\n# Print the header\nprint \"Content-type: text/plain\\r\\n\\r\\n\";\n\n# Call the API\nmy $response = $cpanel->uapi(\n    q/WebVhosts/,\n    q/list_domains/\n);\n\n# Handle the response\nif ($response->{cpanelresult}{result}{status}) {\n    my $data = $response->{cpanelresult}{result}{data};\n    foreach my $item (@{$data}) {\n        # Do something with the $item\n    }\n\n    # So you can see the data shape we print it here.\n    print to_json($data);\n}\nelse {\n    # Report errors:\n    print to_json($response->{cpanelresult}{result}{errors});\n}\n\n# Disconnect from cPanel - only do this once.\n$cpanel->end();\n\n#--------------------------------------------------------------------------------------\n# Helper function to convert a perl object to html printable json\n#--------------------------------------------------------------------------------------\nsub to_json {\n    require JSON;\n    my $str = JSON->new->pretty->encode($_[0]);\n    return $str;\n}\n"
      - label: LiveAPI PHP
        lang: PHP
        source: "<?php\n//--------------------------------------------------------------------------------------\n// Instructions:\n//--------------------------------------------------------------------------------------\n// <theme-name> is the theme assigned to cPanel account.\n// 1) cd /usr/local/cpanel/base/frontend/<theme-name>\n// 2) mkdir api_examples\n// 3) cd api_examples\n// 4) create a file WebVhosts_list_domains.live.php and put this code into that file.\n// 5) In your browser login to a cPanel account.\n// 6) Manually change the url from: .../frontend/<theme-name>/\n//    to .../frontend/<theme-name>/api_examples/WebVhosts_list_domains.live.php\n//--------------------------------------------------------------------------------------\n\n// Instantiate the CPANEL object.\nrequire_once \"/usr/local/cpanel/php/cpanel.php\";\n\n// Print the header\nheader('Content-Type: text/plain');\n\n// Connect to cPanel - only do this once.\n$cpanel = new CPANEL();\n\n// Call the API\n$response = $cpanel->uapi(\n    'WebVhosts',\n    'list_domains'\n);\n\n// Handle the response\nif ($response['cpanelresult']['result']['status']) {\n    $data = $response['cpanelresult']['result']['data'];\n    foreach ($data as $item) {\n        // Do something with the $item\n    }\n\n    // So you can see the data shape we print it here.\n    print to_json($data);\n}\nelse {\n    // Report errors:\n    print to_json($response['cpanelresult']['result']['errors']);\n}\n\n// Disconnect from cPanel - only do this once.\n$cpanel->end();\n\n//--------------------------------------------------------------------------------------\n// Helper function to convert a PHP value to html printable json\n//--------------------------------------------------------------------------------------\nfunction to_json($data) {\n    return json_encode($data, JSON_PRETTY_PRINT);\n}"
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /WebVhosts/list_ssl_capable_domains:
    get:
      x-readonly: true
      description: This function lists every domain for which you may purchase an SSL certificate. The possible domains for the Secure Sockets Layer (SSL) certificate include applicable service subdomains.
      operationId: WebVhosts-list_ssl_capable_domains
      parameters:
      - description: 'Whether to hide temporary domains from the returned values.

          * `1` — Return an error if the requested domain is a temporary domain.

          * `0` — Return all domains, including the temporary domains.

          **Note:**


          If you set this parameter''s value to `1` and the requested domain is temporary,

          the function will return an error similar to the following example: `Domain [example.com] is a temporary

          domain and `hide_temporary_domains` is enabled.`'
        in: query
        name: hide_temporary_domains
        required: false
        schema:
          default: 0
          enum:
          - 1
          - 0
          example: 1
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_ssl_capable_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebVhosts
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing data for a domain.
                        items:
                          properties:
                            domain:
                              description: A valid domain name on the virtual host.
                              example: example.com
                              format: domain
                              type: string
                            is_proxy:
                              description: 'Whether the system automatically created the service subdomain or a user manually created the domain.

                                * `1` - The system automatically created the service subdomain.

                                * `0` - A user manually created the domain.


                                **Note:**


                                If a user manually creates a subdomain that matches a preassigned subdomain (for example, cpanel or whm), then the function returns `0`.'
                              enum:
                              - 0
                              - 1
                              example: 1
                              type: integer
                            vhost_name:
                              description: The name of the virtual host or website.
                              example: hostname.example.com
                              format: domain
                              type: string
                          type: object
                        properties: {}
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        type:
                        - array
                        - 'null'
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        type:
                        - array
                        - 'null'
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                            - 1
                            example: 1
                            type: integer
                      status:
                        description: '- 1 - Success

                          - 0 - Failed: Check the errors field for more details.'
                        enum:
                        - 0
                        - 1
                        example: 1
                        type: integer
                      warnings:
                        description: List of warnings generated by the API. Warnings describe non-critical failures or other problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        type:
                        - array
                        - 'null'
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains that allow SSL certificate purchase
      tags:
      - WebVhosts
      x-codeSamples:
      - label: CLI
        lang: Shell
        source: "uapi --output=jsonpretty \\\n  --user=username \\\n  WebVhosts \\\n  list_ssl_capable_domains\n"
      - label: URL
        lang: HTTP
        source: https://hostname.example.com:2083/cpsess##########/execute/WebVhosts/list_ssl_capable_domains
      - label: LiveAPI Perl
        lang: Perl
        source: "#--------------------------------------------------------------------------------------\n# Instructions:\n#--------------------------------------------------------------------------------------\n# <theme-name> is the theme assigned to cPanel account.\n# 1) cd /usr/local/cpanel/base/frontend/<theme-name>\n# 2) mkdir api_examples\n# 3) cd api_examples\n# 4) create a file WebVhosts_list_ssl_capable_domains.live.pl and put this code into that file.\n# 5) In your browser login to a cPanel account.\n# 6) Manually change the url from: .../frontend/<theme-name>/\n#    to .../frontend/<theme-name>/api_examples/WebVhosts_list_ssl_capable_domains.live.pl\n#--------------------------------------------------------------------------------------\n\nuse strict;\n\nuse Cpanel::LiveAPI ();\n\nmy $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.\n\n# Print the header\nprint \"Content-type: text/plain\\r\\n\\r\\n\";\n\n# Call the API\nmy $response = $cpanel->uapi(\n    q/WebVhosts/,\n    q/list_ssl_capable_domains/\n);\n\n# Handle the response\nif ($response->{cpanelresult}{result}{status}) {\n    my $data = $response->{cpanelresult}{result}{data};\n    foreach my $item (@{$data}) {\n        # Do something with the $item\n    }\n\n    # So you can see the data shape we print it here.\n    print to_json($data);\n}\nelse {\n    # Report errors:\n    print to_json($response->{cpanelresult}{result}{errors});\n}\n\n# Disconnect from cPanel - only do this once.\n$cpanel->end();\n\n#--------------------------------------------------------------------------------------\n# Helper function to convert a perl object to html printable json\n#--------------------------------------------------------------------------------------\nsub to_json {\n    require JSON;\n    my $str = JSON->new->pretty->encode($_[0]);\n    return $str;\n}\n"
      - label: LiveAPI PHP
        lang: PHP
        source: "<?php\n//--------------------------------------------------------------------------------------\n// Instructions:\n//--------------------------------------------------------------------------------------\n// <theme-name> is the theme assigned to cPanel account.\n// 1) cd /usr/local/cpanel/base/frontend/<theme-name>\n// 2) mkdir api_examples\n// 3) cd api_examples\n// 4) create a file WebVhosts_list_ssl_capable_domains.live.php and put this code into that file.\n// 5) In your browser login to a cPanel account.\n// 6) Manually change the url from: .../frontend/<theme-name>/\n//    to .../frontend/<theme-name>/api_examples/WebVhosts_list_ssl_capable_domains.live.php\n//--------------------------------------------------------------------------------------\n\n// Instantiate the CPANEL object.\nrequire_once \"/usr/local/cpanel/php/cpanel.php\";\n\n// Print the header\nheader('Content-Type: text/plain');\n\n// Connect to cPanel - only do this once.\n$cpanel = new CPANEL();\n\n// Call the API\n$response = $cpanel->uapi(\n    'WebVhosts',\n    'list_ssl_capable_domains'\n);\n\n// Handle the response\nif ($response['cpanelresult']['result']['status']) {\n    $data = $response['cpanelresult']['result']['data'];\n    foreach ($data as $item) {\n        // Do something with the $item\n    }\n\n    // So you can see the data shape we print it here.\n    print to_json($data);\n}\nelse {\n    // Report errors:\n    print to_json($response['cpanelresult']['result']['errors']);\n}\n\n// Disconnect from cPanel - only do this once.\n$cpanel->end();\n\n//--------------------------------------------------------------------------------------\n// Helper function to convert a PHP value to html printable json\n//--------------------------------------------------------------------------------------\nfunction to_json($data) {\n    return json_encode($data, JSON_PRETTY_PRINT);\n}"
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
components:
  securitySchemes:
    BasicAuth:
      scheme: basic
      type: http
externalDocs:
  url: https://cpanel.net/developers/
x-tagGroups:
- name: API Development Tools
  tags:
  - API Token Management
  - Batch
  - SSE Task Management
  - URL Parsing
- name: Authentication
  tags:
  - External Authentication
  - Two-Factor Settings
- name: Backup Information
  tags:
  - BackupInfo
  - BackupInfo Status
- name: Block Ip Addresses
  tags:
  - Block IP
- name: Commerce Integration
  tags:
  - Market Integration
  - SSL Certificates
- name: Contact Information
  tags:
  - Contact Information
- name: cPanel Account
  tags:
  - Account Enhancements
  - Account Information
  - Account Management
  - AuditLog
  - Contact Information
  - cPanel Features
  - Disk Quotas
  - DomainRecommendations
  - Personalization
  - Resource Usage and Statistics
  - Subaccount Management
  - Team Roles
  - Team Users
- name: cPanel Account Backups
  tags:
  - Backup
  - File Restoration
- name: cPanel Plugin Framework
  tags:
  - Formbricks
  - Plugins
- name: cPanel Theme Management
  tags:
  - Application Information
  - Brand Management
  - Branding Files
  - Browser Cache Management
  - Language
  - Theme Settings
- name: Directory Management
  tags:
  - Directory Indexes
  - Directory Privacy
  - Directory Protection
- name: DNS
  tags:
  - DNS
  - DNS Information
  - DNS Security
  - Dynamic DNS
  - Email DNS Settings
  - ZoneEdit
- name: Domain
  tags:
  - Domain
- name: Domain Management
  tags:
  - AddonDomain
  - Direct Link Protection (Hotlink)
  - Domain
  - Domain Information
  - Domain Redirection
  - DomainLookup
  - Park
  - SubDomain
  - Virtual Host Information
- name: Domains
  tags:
  - Subdomains
- name: Email
  tags:
  - Email Accounts
  - Email Filtering
  - Email Forwarding
  - Email Server Information
  - Email Suspensions
  - Mail Server Information
  - Mailbox Management
  - Mailing Lists
  - Signing and Encryption (GnuPG Keys)
  - Spam Filtering (Greylisting)
  - Spam Management
  - Spam Prevention (BoxTrapper)
  - Webmail Applications
  - Webmail Sessions
- name: Extract Information
  tags:
  - ExtractInfo
  - ExtractInfo Status
- name: File Manager
  tags:
  - Trash
- name: Files
  tags:
  - FTP Accounts
  - FTP Server Settings
  - Image Tools
  - Jodit
  - Manage Files
  - Manage Files
  - WebDisk Settings
- name: GIT Management
  tags:
  - Deployment Settings
  - Repository Management
- name: InProductSurvey
  tags:
  - InProductSurvey
- name: MySQL and MariaDB
  tags:
  - Database Information
  - Database Management
  - Remote Databases
  - User Management
- name: Notifications
  tags:
  - Pushbullet
- name: Optional Applications
  tags:
  - Antivirus Protection (ClamAV)
  - Calendar and Contacts (DAV)
  - Calendar and Contacts Server
  - WordPress Manager Backups
- name: PostgreSQL
  tags:
  - PostgreSQL Database Management
  - PostgreSQL User Management
- name: Retrieve bandwidth information
  tags:
  - Bandwidth
- name: Security
  tags:
  - Known SSH Hosts Management
  - Login Information
- name: Server Information
  tags:
  - cPanel Server Information
  - Notifications
  - Password Strength
  - SSH
  - WebPros MCP
  - WebProsMCP
- name: ServiceProxy
  tags:
  - ServiceProxy
- name: Site Quality Monitoring
  tags:
  - SiteQuality
- name: SSL Certificates
  tags:
  - Auto-generated SSL Certificates
  - cPanel Account SSL Management
  - SNI Email Settings
  - SSL Certificate Management
  - Verify Domain Ownership
- name: Statistics
  tags:
  - Domain Statistics
  - Weblog Settings
- name: UserData
  tags:
  - UserData
- name: Web Server Configuration
  tags:
  - EA4
  - EasyApache Settings
  - PHP
- name: Web Server Management
  tags:
  - Application Manager
  - ModSecurity
  - NginxCaching
  - PHP Settings
  - Web Apps
- name: Website Configuration
  tags:
  - Handler Management
  - Logs
  - Mime Type Management
  - Nova
  - Site Information
  - Site Installation
  - Sitejet
  - WPX