domains
PUT /v1/domains/default-registrant
Set the owner the organization's new domains are registered to.
Authentication
Send an API key as a bearer token. The key must carry the billing.payment.manage permission; a key without it is refused with 403, not 404.
Where your organisation id goes
This endpoint takes org_id as a query parameter. Leave it out and the call covers your whole tenancy subtree; send it to narrow the call to one organisation.
Your organisation id is on the API keys screen in your dashboard, beside the key itself. It is the same id in every call you make.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X PUT https://api.zinndigital.com/v1/domains/default-registrant \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "first": <string>, "last": <string>, "email": <string>, "phone": <string>, "street": <string[]>, "city": <string>, "postcode": <string>, "country": <string> }'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
Replaces the organization's default registrant. Checkout refuses a basket that registers or transfers a domain with 422 REGISTRANT_REQUIRED while the organization has no complete default and the request names no registrant, so this is how an integration sets it ahead of buying. Never rewrites an existing domain. A default already recorded as the owner of a domain is kept as it is and a new record becomes the default; change an existing domain's owner with updateDomainContact, which drives the registrar. The phone is stored in the EPP +CC.NUMBER form and must carry its country code. Requires billing.payment.manage — the permission that places an order.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
org_id (query) | Uuid | No | The organization to change; defaults to the caller's own. |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
first | string | Yes | — |
last | string | Yes | — |
org_name | string | No | — |
email | string | Yes | — |
phone | string | Yes | International form with the country code (+44 20 7946 0000, 0044… also accepted). Stored and returned as EPP +CC.NUMBER (+44.2079460000). |
street | string[] | Yes | — |
city | string | Yes | — |
state | string | No | May be blank — most of the world has no state. |
postcode | string | Yes | — |
country | string | Yes | — |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
registrant | Registrant | null | Yes | The organization's default registrant, or null when none is set. |
complete | boolean | Yes | Whether a registrar would accept it. A checkout that registers or transfers a domain needs true here or a registrant in its own body. |
missing | string[] | Yes | The required fields that are blank. Empty when complete. |
Errors this endpoint can return
401 · 403 · 422 · 429