domains

POST /v1/domains/{domainId}/auth-code

Reveal a domain's EPP transfer code.

All domains endpoints

Authentication

Send an API key as a bearer token. The key must carry the domains.dns.manage permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X POST https://api.zinndigital.com/v1/domains/{domainId}/auth-code \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

Returns the domain's EPP/auth code, which **authorizes transferring the domain to another registrar**. It is fetched from the registrar on demand, returned once, and never stored or logged by us; the response is `no-store`. A `POST` deliberately, despite reading: revealing a credential must not be something a page load, a prefetch, a browser-history entry or a cache can trigger. The reveal is audit-logged (the code itself never is). Requires `domains.dns.manage`. **422 where the registrar publishes no auth-code endpoint at all** (the Cloudflare route). The refusal names the way out rather than simply declining — a customer is entitled to leave, so support fetches the code rather than the transfer being delayed.

Parameters

NameTypeRequiredWhat it is
domainId (path)UuidYesThe domain's id.

Response

NameTypeRequiredWhat it is
auth_codestringYesThe EPP/auth code. **A credential** — it authorizes moving the domain to another registrar. Do not store, log or display it beyond the confirmation that requested it.
expires_atstringYesHow long to treat the displayed code as current. A presentation bound, not a promise of invalidation — most registrars do not publish a real lifetime.

Errors this endpoint can return

401 · 403 · 404 · 422 · 429 · 503