Skip to content

Domains ​

Registered domains and their contacts (product family domain, scope console-domains beta, or user / user:read / products:read).

MethodPath
GET/domainsyour domains
GET/domains/checkcheck availability
GET/domains/{domain}one domain with its registry properties
GET/domains/{domain}/contacts/editthe domain and the contacts you can choose
PUT/domains/{domain}/contactschange admin, tech and billing contact
PUT/domains/{domain}/nameserverschange the name servers
GET/domains/{domain}/glue-records/editthe domain's glue records
POST/domains/{domain}/glue-recordscreate a glue record
DELETE/domains/{domain}/glue-records/{glue_record}delete a glue record
PUT/domains/{domain}/transfer/auth-codecreate a new transfer auth code
PUT/domains/{domain}/transfer/transfer-locktoggle the transfer lock
GET, POST/contactslist, create contacts
GET, PUT, DELETE/contacts/{contact}read, change, delete a contact

New domains are ordered through orders (family domain, see Order attributes).

List and read ​

bash
curl https://console.anikeen.com/api/v1/domains \
  -H "Authorization: Bearer $ANIKEEN_TOKEN" -H "Accept: application/json"

The list is paginated and sorted by name. GET /domains/{domain} adds properties, the domain's data at the registrar. A reseller's end customer does not see the reseller's subscription, price or billing state.

Every domain carries provisioning_status beta: provisioning while it is being registered or transferred (then properties is null and every other request on it answers 409, error: provisioning), null when ready - see Products being set up.

A transfer stays provisioning (with transferring: true) until it is complete - transfers take days (the current owner or registrar may have to confirm). As soon as the domain has arrived in our account it becomes ready and product.ready is sent (checked hourly). A transfer that is rejected or still not complete after 10 days becomes failed; support checks it with the registrar and contacts you (nothing is refunded automatically).

If the registrar does not answer a registration or transfer request (timeout), the request is never sent twice and the order is not refunded on a guess: the domain stays provisioning until the registrar confirms it (registered, or the transfer arrived) or support has checked it at the registrar (failed meanwhile). Only a refusal by the registrar fails the order and refunds it.

Check availability ​

http
GET /v1/domains/check?domain=example.de
GET /v1/domains/check?domain=example
domainResult
with a TLD (example.de)one entry for this domain and the matching product, if the TLD is offered
without a TLD (example)one entry per featured TLD (example.de, example.com, …)

Each entry has domain, product and status (the registrar's answer). A TLD that is not offered gives an empty list. Results are cached for 15 minutes.

Contacts of a domain ​

GET /domains/{domain}/contacts/edit returns {domain, contacts} - the domain (with properties) and your contacts, which you can assign. Then:

http
PUT /v1/domains/{domain}/contacts
{"admin_contact": "<handle>", "tech_contact": "<handle>", "billing_contact": "<handle>"}

Each field is optional and takes a contact handle. → 204; 409 when the registrar refused the change.

Name servers ​

http
PUT /v1/domains/{domain}/nameservers
{"nameserver0": "ns1.example.net", "nameserver1": "ns2.example.net"}
Field
nameserver0, nameserver1required
nameserver2 … nameserver4optional

→ 204; 500 when the registrar refused the change.

Glue records ​

http
POST /v1/domains/{domain}/glue-records
{"hostname": "ns1.example.de", "ip_addresses": "192.0.2.10,2001:db8::10"}
Field
hostnamerequired, max. 255
ip_addressesrequired, comma-separated list

→ 204; 409 with the registrar's message on failure. GET …/glue-records/edit lists the existing glue records; delete one with DELETE …/glue-records/{glue_record}.

Transfer ​

Auth code ​

http
PUT /v1/domains/{domain}/transfer/auth-code

Creates a new auth code at the registrar. The code itself is not part of the response - only the confirmation and its expiry. You find the code on the domain's transfer page in the Console.

json
{"message": "Auth code created.", "auth_code_expires_at": "…"}

Transfer lock ​

http
PUT /v1/domains/{domain}/transfer/transfer-lock

Toggles the registrar transfer lock and returns the new state:

json
{"transfer_lock": false}

Both answer 409 while the domain is being transferred, or when the registrar refused.

Contacts ​

Contacts are the people and organisations registered for your domains.

FieldRules
first_namerequired, max. 255
last_namerequired, max. 255
addressrequired, max. 255
cityrequired, max. 255
postal_coderequired, max. 32
countryrequired, two-letter country code (e.g. DE)
emailrequired, e-mail address
phonerequired, max. 64
bash
curl -X POST https://console.anikeen.com/api/v1/contacts \
  -H "Authorization: Bearer $ANIKEEN_TOKEN" -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"first_name":"Erika","last_name":"Mustermann","address":"Musterstraße 1","city":"Berlin","postal_code":"10115","country":"DE","email":"erika@example.de","phone":"+49.301234567"}'

PUT /contacts/{contact} takes the same fields (all required). DELETE /contacts/{contact} → 204. The list is paginated and sorted by handle.

Anikeen Console documentation