DomainOpsDomainOps

WHOIS Status Codes Explained: What Each EPP Status Means and When to Worry

WHOIS status codes explained: what clientTransferProhibited, clientHold, serverHold, redemptionPeriod and pendingDelete mean — and when to worry.

DomainOps Team··6 min read

WHOIS status codes are the most useful — and most ignored — lines in a WHOIS record. They're EPP (Extensible Provisioning Protocol) statuses set by either your registrar (client*) or the registry (server*), and they tell you precisely what state a domain is in: locked, on hold, mid-transfer, or five days from being deleted forever. If you only learn to read one part of a WHOIS record, make it this one, because a status code is often the earliest external signal that something has gone wrong with a domain.

Here's what they look like in the wild:

bash
whois example.com

   Domain Name: EXAMPLE.COM
   Registrar: RESERVED-Internet Assigned Numbers Authority
   Updated Date: 2025-08-14T07:01:34Z
   Creation Date: 1995-08-14T04:00:00Z
   Registry Expiry Date: 2026-08-13T04:00:00Z
   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
   Name Server: A.IANA-SERVERS.NET
   Name Server: B.IANA-SERVERS.NET

Three statuses, all client*, all prohibitions. For a stable production domain, that's exactly what you want to see.

DomainOps domain Security tab showing WHOIS/EPP status codes grouped by category
DomainOps parses the raw status codes into a domain's Security tab — grouped by category, so a missing lock or an unexpected hold stands out at a glance.

client vs server: who set the status

The prefix tells you who applied the code:

  • client* — set by the registrar, usually at your request or as a default. You (or your registrar's dashboard) can typically change these.
  • server* — set by the registry, above the registrar. You cannot remove these yourself; they usually indicate either premium protection (registry lock) or a serious problem (legal dispute, abuse complaint, UDRP proceedings).

A server* prohibition you didn't pay for deserves immediate investigation.

The WHOIS status codes that matter

Status codeSet byMeaningWorry level
okRegistryNo restrictions at all — including no transfer lockLow, but suboptimal: the domain is unlocked
clientTransferProhibitedRegistrarTransfers to another registrar are blockedNone — this is good. It's your main anti-hijack defence
clientDeleteProhibited / clientUpdateProhibitedRegistrarDeletion / record changes blocked at the registrarNone — standard lock hygiene
clientHoldRegistrarDomain removed from the DNS zone — it stops resolvingHigh. Usually unpaid renewal, unverified registrant email (ICANN verification), or abuse
serverHoldRegistryRemoved from the zone by the registry itselfVery high. Legal action, abuse, or registry compliance — escalate immediately
serverTransferProhibited etc.RegistryRegistry-level locksFine if you bought registry lock; alarming if you didn't
pendingTransferRegistryA transfer to another registrar is in progressHigh if you didn't initiate it — possible hijack attempt, reject it fast
autoRenewPeriodRegistryThe domain expired and was auto-renewed by the registry; the registrar can still reverse itMedium — renewal payment may not have actually gone through
redemptionPeriodRegistryDeleted by the registrar; 30-day window to restore for a feeVery high — recovery costs $80–$200+ and the clock is running
pendingDeleteRegistryFinal 5 days before the domain is purged and dropsCritical — unrecoverable. Prepare to re-register at the drop
inactiveRegistryNo nameservers delegated — the domain can't resolveMedium — fine for a just-registered domain, wrong for anything live
addPeriod / renewPeriod / transferPeriodRegistryShort grace windows after registration / renewal / transferNone — informational

The ones that mean "act today"

clientHold is the status we see most often in real incidents. The domain is still registered to you, but the registrar has pulled it from the zone — site down, email bouncing. The two usual causes are a failed renewal payment and ICANN's registrant email verification: change your WHOIS contact email and ignore the verification message for 15 days, and the registrar is obliged to suspend the domain. The fix is usually quick once you know, which is rather the point — most people find out from customers instead of from WHOIS.

redemptionPeriod and pendingDelete mean the expiry process is in its endgame. Redemption is recoverable at a price; pending delete is not. Details in our redemption period deep dive.

pendingTransfer on a domain you didn't try to move is the signature of a transfer-out you should be rejecting — whether that's a hijack attempt or a colleague acting without telling anyone.

The quiet red flag: ok

Counter-intuitively, a bare ok status isn't great news. It means no restrictions — including no clientTransferProhibited. An unlocked domain can be transferred away by anyone who obtains the auth code, and unlocking is step one of every domain hijack and most renewal-scam transfers. Production domains should carry the full set of client prohibitions; ok should only appear briefly, while you're deliberately transferring a domain.

Multiple statuses are normal

Domains routinely carry several codes at once — the three client* prohibitions together are standard, and a domain mid-expiry might show clientHold alongside clientTransferProhibited. Read them as a set: locks plus nothing else is healthy; locks plus a hold or a pending state is a domain telling you its story.

Watching status codes at scale

Checking one domain's status is a ten-second whois. Checking fifty domains weekly is a chore nobody actually does, which is why status changes — a lock silently dropped, a clientHold applied overnight, a pendingTransfer nobody requested — go unnoticed until something breaks. Status codes change for reasons; the change is the alert.

DomainOps tracks WHOIS status codes alongside expiry dates for every domain it monitors and flags changes the next time it checks — and if you want a quick one-off sweep of a list right now, the free bulk WHOIS checker will show status and expiry for a whole portfolio in one pass.

whoisdomains