Domain industry

EPP status codes (domain status)

Standardized codes indicating the current state of a domain, such as whether it can be transferred, deleted, or modified.
← Back to glossary

What are EPP status codes?

EPP (Extensible Provisioning Protocol) status codes are standardized indicators that describe the current state of a domain name. These codes appear in RDAP and WHOIS responses, telling you whether a domain can be transferred, modified, deleted, or is subject to special restrictions.

Categories of status codes

EPP status codes fall into two categories:

Client status (set by registrar)

Prefixed with "client", set by the domain's registrar at the registrant's request:

  • clientTransferProhibited
  • clientDeleteProhibited
  • clientUpdateProhibited
  • clientHold

Server status (set by registry)

Prefixed with "server", set by the registry, often for policy enforcement:

  • serverTransferProhibited
  • serverDeleteProhibited
  • serverUpdateProhibited
  • serverHold

Common status codes explained

ok

status: ok

The standard status for an active domain with no restrictions. Domain can be modified, transferred, or deleted normally.

clientTransferProhibited

status: clientTransferProhibited

Registrar has locked the domain from transfers. Prevents unauthorized transfers. Must be removed before initiating a transfer.

Common reason: Security lock set by registrant

clientDeleteProhibited

status: clientDeleteProhibited

Domain cannot be deleted. Protects against accidental or malicious deletion.

Common reason: Registrant protection

clientUpdateProhibited

status: clientUpdateProhibited

Domain contact/nameserver info cannot be modified. Prevents unauthorized changes.

Common reason: Security lock

clientHold

status: clientHold

Domain does not resolve (removed from zone). Set by registrar.

Common reasons: Payment issues, verification required, abuse investigation

serverTransferProhibited

status: serverTransferProhibited

Registry has locked transfers. Often during first 60 days after registration/transfer or during disputes.

Common reason: ICANN 60-day lock, legal dispute

serverHold

status: serverHold

Domain does not resolve. Set by registry.

Common reasons: Legal order, registry policy violation, fraud investigation

pendingDelete

status: pendingDelete

Domain is scheduled for deletion and will be released for registration.

Implication: Domain will be available soon

pendingTransfer

status: pendingTransfer

Transfer is in progress.

Timeline: Usually 5-7 days to complete

redemptionPeriod

status: redemptionPeriod

Domain has expired and is in redemption. Can be restored for a fee.

Typical duration: 30 days

Status codes in RDAP

DomScan returns status codes in API responses:

{

"domain": "example.com",

"available": false,

"registry_status": [

"client transfer prohibited",

"client delete prohibited",

"server transfer prohibited"

]

}

Interpreting multiple status codes

Domains typically have multiple status codes. Example:

clientTransferProhibited

clientUpdateProhibited

clientDeleteProhibited

serverTransferProhibited

This domain is:

  • ✓ Fully locked (maximum protection)
  • ✗ Cannot transfer (unlock required)
  • ✗ Cannot modify (unlock required)
  • ✗ Cannot delete (unlock required)

Status codes for domain buyers

When evaluating a domain for purchase:

StatusConcern LevelMeaning
okLowNormal, can transfer
clientTransferProhibitedLowOwner must unlock
serverTransferProhibitedMediumMay be recent registration/transfer
serverHoldHighPossible legal issues
pendingDeleteN/AWill be available publicly soon
redemptionPeriodMediumCurrent owner might restore

Status codes for security

For domain security, ensure these are set:

Minimum recommended:
clientTransferProhibited
Maximum protection (registry lock):
clientTransferProhibited

clientUpdateProhibited

clientDeleteProhibited

serverTransferProhibited

serverUpdateProhibited

serverDeleteProhibited

Registry lock requires manual verification for any changes and is used for high-value domains.

Checking domain status

# Using DomScan

curl "https://domscan.net/v1/status?name=example&tlds=com"

# Using RDAP directly

curl "https://rdap.verisign.com/com/v1/domain/example.com" | jq '.status'

Status codes are essential for understanding what actions are possible with a domain and identifying potential issues before purchase or transfer.

Put this knowledge to work

Use DomScan's API to check domain availability, health, and more.