Documentation · Integrations

cPanel/WHM integration

A small script on your WHM server reports its accounts and domains every ten minutes, and every site gets a monitor, added and removed as sites come and go.

PingWise keeps a monitor on every site hosted on a cPanel/WHM server. Unlike Enhance, the connection works by push: a small script on your server reports the list of accounts and domains to us, and we never hold a WHM credential.

Why push and not a token

A WHM API token is a root-level key. Even a token limited to List Accounts can act as every cPanel user through WHM's API, which we confirmed on a test server, so there is no truly read-only token to give us. Instead you run a script that only reads, on your server, and sends us its output.

Connecting

Integrations → Connect cPanel/WHM → Connect a WHM server. The page shows the install commands once, with a key for that server; we keep only a hash of the key. Paste the commands as root. They write three files:

  • /etc/pingwise-sync.conf, readable by root only, with our address and the key (as a curl config file, so the key never appears on a command line);
  • /usr/local/sbin/pingwise-sync, the script, shown in full on the page;
  • /etc/cron.d/pingwise-sync, which runs it every ten minutes.

The script runs WHM's own read-only commands, whmapi1 listaccts and get_domain_info, and posts their output to PingWise. The first report waits on the integration page as Found on : N sites, with the monthly cost at each interval. Nothing is created until you press Import and keep in sync.

Without root: WHM resellers

A WHM reseller can connect the accounts they own without root. In Connect cPanel/WHM choose I'm a WHM reseller (no root). You need:

  • the reseller privileges List Accounts and Manage API Tokens, given by your hosting provider (WHM » Edit Reseller Nameservers and Privileges);
  • a shell in your own cPanel account (SSH or cPanel » Terminal) with crontab.

You create your own WHM API token with only List Accounts, limited to 127.0.0.1 and the server's IP, and paste our commands into your cPanel account's shell; the last step asks for the token. It stays on the server in ~/.pingwise/whm.conf (mode 600) and is never sent to us. A script in your crontab runs every ten minutes, reads WHM's listaccts and each account's domain list on 127.0.0.1, and sends the result with the server's key, as above. If any account's answer is refused or missing, the whole report is rejected, so a partial list never pauses sites. Everything else works as for root.

To remove it: delete the pingwise line with crontab -e, run rm -r ~/.pingwise, and revoke the token in WHM.

What becomes a monitor

  • One HTTPS monitor for each main domain, addon domain and real subdomain.
  • Parked domains (aliases) and the subdomain cPanel creates behind each addon domain are skipped.
  • A suspended account has its sites' monitors paused.
  • A domain that disappears is paused at once and removed 24 hours later, so a short-lived mistake does not throw away history.
  • Monitors are grouped by server, so an outage of one server produces one grouped alert, and the same safety brake as Enhance stops a report that would suddenly remove most of a server's sites.

Monitors that come from the server are managed by the sync: you can rename them, add notes and choose where their alerts go, but not change, pause or delete the check itself.

What we receive

cPanel usernames and their reseller owner, each account's main domain and its other domains, whether the account is suspended, and the server's hostname. WHM's domain listing also carries technical details of each domain; of these we keep only a short one-way fingerprint of the site's folder, never the path, to avoid monitoring the same site twice, and discard the rest (addresses, paths, software versions) on arrival. No contact details of your customers are read or sent.

When the server goes quiet

A server that stops reporting changes nothing: its monitors keep running as they are. After about 35 minutes without a report, the integration page says No report from the server since …. New key and install commands replaces the key; the old one stops working at once.

Customer accounts

As with Enhance, resellers can tick one box to give every cPanel user their own PingWise account, administered by you. See Monitoring for your customers.

Removing it

Delete the integration in PingWise, and on the server run:

rm /etc/cron.d/pingwise-sync /usr/local/sbin/pingwise-sync /etc/pingwise-sync.conf

If your sites are behind Cloudflare or another firewall, see Blocked probes; the same applies here.

Last change: 3 November 2026.