Skip to content
ViaLicense
99.98% UPTIME
EN Language
Sign in Become a reseller →
Guides

cPanel License Types: Which One Should You Buy?

Two things decide your cPanel tier: how many cPanel accounts the server will hold, and whether the machine is virtual or bare metal. Both answers trip people up — one at install time, the other at account 31.

Ordering a cPanel license comes down to two questions: how many accounts will this server hold, and is the machine virtual or physical. Both look trivial. Both have answers that catch people out — the first one months later while you are onboarding a customer, the second one about a minute after the installer starts.

What the tiers actually limit

Four tiers, and the only structural difference between them is the account ceiling:

  • Solo — 1 account
  • Admin — 5 accounts
  • Pro — 30 accounts
  • Premier — 100 accounts, extended above that in additional-account blocks

What matters most is what is missing from that list: there is no feature difference between the tiers. Solo does not disable a WHM module, block an API call, or restrict your EasyApache profile. AutoSSL, ModSecurity, the cPanel/WHM API, DNS clustering, backup configuration — identical everywhere. You are paying for two things: how many cPanel accounts may exist at once, and the class of server the license is valid on.

The one thing that feels like a feature gate sits at the bottom of the range: a reseller account is itself a cPanel account, so a one-account license cannot host resellers. That is arithmetic, not a restriction.

What counts as an account

The unit the license counts is a cPanel account: its own username, its own home directory, its own quota. On disk that is one file under /var/cpanel/users/.

Counted:

  • ordinary accounts
  • reseller accounts
  • suspended accounts

Not counted:

  • addon domains, parked domains, subdomains
  • email accounts and FTP users
  • root and system users

To get the real number on a live server:

ls -1 /var/cpanel/users | wc -l

For a cross-check, wc -l < /etc/trueuserdomains works too: that file holds one primary domain per account, so it should normally agree. If the two numbers differ, the file is stale and that is the thing to look at first. If you need it programmatically, /usr/local/cpanel/bin/whmapi1 listaccts returns the same data with detail attached.

Suspended accounts are where most people get this wrong. You suspended eight non-paying customers last quarter; their sites are dark, they earn you nothing, and they are still holding license slots. The only thing that frees a slot is termination. On a 30-account Pro license, 24 active plus 8 suspended is 32 — you are already over the ceiling, and you will find out when you try to create account 33.

The opposite mistake deserves naming too: consolidating customers into one account to stay on a cheaper tier. Pile 40 sites into a single account as addon domains and the license really does count them as one. But those 40 sites now share a home directory, a system user, a disk quota and a backup unit. One compromised WordPress install and everything runs under the same UID, with no way to restore a single site on its own. That trade goes bad on the first incident.

Server type is half the license

cPanel licenses come in two families: virtual servers (Cloud/VPS) and physical servers (dedicated, which cPanel calls "metal").

  • Solo — sold in both virtual and physical variants
  • Admin — virtual only
  • Pro — virtual only
  • Premier — sold in both variants

The practical consequence: if you run 12 accounts on bare metal, you cannot buy Pro. Above a single account, the first option on physical hardware is Premier — a 100-account license for 12 accounts. That quietly turns a hardware decision into a licensing decision. For small and mid-sized hosts, the real gap between a KVM instance and a physical box carrying the same workload often shows up in the license tier, not in the monthly rent.

And you do not get to declare the server type. cPanel detects virtualization on the machine at installation and during license validation, and that result is part of the check. A cloud license on a machine that looks physical is refused, and so is a metal license on a machine that looks virtual. What you typed on the order form has no say in it.

Detecting server type in five seconds

Before you order, one command on the box:

systemd-detect-virt

It prints something like kvm, qemu, vmware, xen, microsoft, oracle, lxc, openvz — or none. The exit status carries the same answer: 0 when virtualization is detected, 1 when it is not. Narrow it with --vm for hypervisors only or -c for containers only.

Do not trust a single source. Confirm with a second one (run the first two as root):

  • dmidecode -s system-product-name → KVM, VMware Virtual Platform, OpenStack Nova, or a real model name like PowerEdge R640
  • cat /sys/class/dmi/id/sys_vendor → manufacturer or hypervisor
  • lscpu | grep -i hypervisor → a Hypervisor vendor: line on virtual machines

When the two agree, you are done. When they disagree, stop — you are in one of the edge cases:

  • Some providers mask the hypervisor from CPUID. systemd-detect-virt reports none on a machine that is in fact a VM; the DMI product name usually gives it away.
  • Bare-metal-as-a-service goes the other way: genuinely physical hardware whose DMI strings carry the provider's platform name.
  • If the output is openvz, lxc or docker, your problem comes before tier selection. cPanel does not support container-based virtualization, and the fix is a full-virtualization host, not a different license.

Order against the command output, not against the word printed on the provider's product page.

What going wrong looks like

Three distinct failures, three distinct symptoms:

  • Server type mismatch. Installation or the first validation marks the license invalid. Port 2087 serves a license error page instead of WHM; services keep running and customer sites stay up, but management is locked. Details land in /usr/local/cpanel/logs/license_log, and the cached license file sits at /usr/local/cpanel/cpanel.lisc. Once the license is reissued for the correct type, /usr/local/cpanel/cpkeyclt pulls it immediately instead of waiting for the scheduled check.
  • Account ceiling reached. A gentler failure: existing accounts keep working, nothing goes offline, mail keeps flowing. You simply cannot create a new one — WHM refuses account creation on the license limit. The good news is that you find out during business hours. The bad news is that you find out with a customer watching.
  • IP changed. The license binds to the server's IP address, not to a key file. Change the main IP or move to a new machine and the old binding will not validate the new host. Update the IP in the panel first, run cpkeyclt on the server, then check from the outside via verify.cpanel.net if it still looks wrong.

NAT setups add one more trap: the license belongs to the public IP the outside world sees, not the 10.x or 192.168.x address on the interface. If cPanel's NAT configuration is not set correctly during initial setup, validation goes out with the wrong address — and the error message will not tell you that is what happened.

The jump from 30 to 100

There is nothing between Pro and Premier. The day you create account number 31 you move up, and that is the only real planning decision in cPanel licensing.

  • At 20 accounts, adding five customers a year, Pro is comfortable. Close the tab.
  • In the 26-28 range, budget for the move now. Customer 31 does not consult your calendar.
  • 40 accounts split across two servers is a different bill from 40 on one. If you were going to split the load anyway, licensing rewards it; splitting purely for licensing means buying the full management cost of a second server.

On monthly licensing the jump is reversible: run Premier for a term, drop back to Pro next term if the account count falls. cPanel licenses here run month to month, and with no commitment and no cancellation fee you can move a tier up or down from one term to the next as you grow.

Decision order

  • Run systemd-detect-virt on the server and write down the answer: virtual or physical.
  • Count existing accounts with ls -1 /var/cpanel/users | wc -l, then add a realistic 12 months of growth.
  • Physical: one account means Solo, anything more means Premier.
  • Virtual: 1 account means Solo, up to 5 means Admin, up to 30 means Pro, above that means Premier.
  • Note the public IP the server presents to the internet; that is what the license binds to.

The other licenses riding along on the same box — CloudLinux and friends — do not follow these tiers at all. Each has its own counting unit and its own ceiling, which makes it a separate planning exercise from the cPanel one; the control panel licenses page shows what sits alongside cPanel on a typical build.

On vialicense a license is bound to your server's IP address rather than to a key file. Activation is automatic: it draws on prepaid balance, there is no approval step, and it is usually live within a minute. Installation is a single command on the server, with the script resolving the license from the IP. When you migrate, you change the IP yourself from the panel and the old address stops immediately. All of it — issue, renew, suspend, move IP — is also available over the REST API if you are wiring this into WHMCS or a panel of your own.

Every licence in this article is one you can order from the panel, bound to your server's IP and working within a minute.