Check a domain's registrar-lock state through the API

Use GET /v2/domains/{domainId}/lock to inspect the stored registrar-lock state for an owned domain. This is a read operation and does not unlock or transfer the name.

01 Read the lock

  1. Authenticate with domains:read permission.
  2. Find the exact domain in the current inventory and use its returned identifier.
  3. Send the GET request and inspect the returned state fields.
  4. Check whether a lock change or synchronization is still pending before drawing a conclusion.
API request example
GET /v2/domains/DOMAIN_ID/lock

02 Example: read lock information without automatically unlocking a domain

Use the server-side PHP request helper in the API getting-started article in the authorised integration, with a domains:read credential. Replace DOMAIN_ID with the identifier from the exact owned domain. This request has no mutation body and cannot itself remove transfer protection.

Code or configuration example
$domainId = 'DOMAIN_ID';
$result = nabtechRequest('GET', '/v2/domains/' . rawurlencode($domainId) . '/lock');
if ($result['http_status'] !== 200) {
    throw new RuntimeException('Lock information is unavailable.');
}
$lockInformation = $result['response']['data'] ?? null;
// Display the documented returned state; do not invent a default of unlocked.

Read the result: Read the returned desired and observed state according to the installed contract. A missing or unresolved value is an unknown state, not evidence that a registrar transfer is permitted. Keep pending changes visible until their outcome has been reconciled.

A removable registrar lock is only one transfer condition. Registry restrictions, timing, verification and the authorisation code can still matter. Use the separate approved unlock operation only when the owner actually intends that change, and verify the existing provider outcome first.

Why can a domain have different desired and observed lock states?

The module tracks changes that may be queued at the provider. A desired lock value or pending state is not necessarily the confirmed registrar result. Read the resource and relevant operation or job together, then synchronize when the supported workflow requires a fresh provider observation.

If the response lacks a meaningful lock state, do not invent an unlocked value. Investigate provider support and the domain's synchronization history.

03 Understand transfer restrictions

A removable registrar lock is one part of transfer eligibility. Registry restrictions, a recent registration or transfer, a change-of-registrant lock, a dispute or an invalid authorisation code can still prevent a transfer. Turning off the normal lock does not bypass those conditions.

Conversely, a locked domain can continue serving its website and email. The lock controls registrar transfer protection, not whether A, MX or other DNS records resolve.

04 Use the result safely

Show the customer whether protection is enabled and whether a change is pending. If they intend to transfer, link to the separate unlock and transfer workflows. Avoid automatically unlocking every domain during a portfolio inventory.

If a transfer is no longer needed, keep or restore the intended protection through the authorised PUT operation. Reading a lock does not require requesting an EPP code, so do not expose a transfer secret just to populate a status page.

05 Troubleshoot

Check account ownership, identifier and permission for a 403 or 404. For a stale value, inspect the last operation and synchronization. Send support the domain and redacted request reference without including credentials.

  • 0 Users Found This Useful
  • domain-nexus, development
Was this answer helpful?

Related Articles

Get started with the current Nabtech Domain Nexus v2 API

The current Nabtech reseller API uses Domain Nexus v2. It provides domain ordering and...

Renew a domain through the Domain Nexus v2 API

Renew an owned domain with POST /v2/domains/{domainId}/renew. The request uses the current...

Request and retrieve a domain EPP authorisation code through the API

The current EPP workflow uses POST /v2/domains/{domainId}/epp-code to request an authorisation...

Read stored domain contact assignments through the v2 API

Use GET /v2/domains/{domainId}/contacts to read the contact assignments stored for a domain in...

Read a domain's desired nameservers through the v2 API

Use GET /v2/domains/{domainId}/nameservers to read the desired nameserver records stored for an...