Appearance
Domains
Registered domains and their contacts (product family domain, scope console-domains beta, or user / user:read / products:read).
| Method | Path | |
|---|---|---|
| GET | /domains | your domains |
| GET | /domains/check | check availability |
| GET | /domains/{domain} | one domain with its registry properties |
| GET | /domains/{domain}/contacts/edit | the domain and the contacts you can choose |
| PUT | /domains/{domain}/contacts | change admin, tech and billing contact |
| PUT | /domains/{domain}/nameservers | change the name servers |
| GET | /domains/{domain}/glue-records/edit | the domain's glue records |
| POST | /domains/{domain}/glue-records | create a glue record |
| DELETE | /domains/{domain}/glue-records/{glue_record} | delete a glue record |
| PUT | /domains/{domain}/transfer/auth-code | create a new transfer auth code |
| PUT | /domains/{domain}/transfer/transfer-lock | toggle the transfer lock |
| GET, POST | /contacts | list, 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=exampledomain | Result |
|---|---|
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, nameserver1 | required |
nameserver2 … nameserver4 | optional |
→ 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 | |
|---|---|
hostname | required, max. 255 |
ip_addresses | required, 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-codeCreates 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-lockToggles 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.
| Field | Rules |
|---|---|
first_name | required, max. 255 |
last_name | required, max. 255 |
address | required, max. 255 |
city | required, max. 255 |
postal_code | required, max. 32 |
country | required, two-letter country code (e.g. DE) |
email | required, e-mail address |
phone | required, 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.