Domain

/domain

GET

Returns a list of domains.

JSON request

client_reference string Comma separated list of client references that uniquely identifies a domain.
name string Full or partial domain name to search for.
id string UUID type field used for sync of BO and RP domains.
reseller string Reseller reference to filter on.
domain_contact string Domain Contact handle. Generated identifier of contact. Unique per RTR account.
domain_contact_role string Role of Domain Contact assigned to Domain.
name_servers list List of Name Servers assigned to Domain.
state string Domain state to search for.
order_by string Field by which domain resulting queryset will be filtered.

JSON response

array: Domain

Possible errors

Sample

curl \
--request GET \
--user "{{api_username}}:{{api_key}}" \
"{{api_base_url}}/domain" | python -m json.tool

POST

Register a new domain. A contact must be specified for each role (‘registrant’, ‘admin’, ‘billing’ and ‘tech’). The provided nameservers must be unique on hostname.

JSON request

name string The IDNA encoded domain name including the TLD.
contacts array
role string One of ‘registrant’, ‘admin’, ‘billing’ or ‘tech’.
contact string A contact handle which belongs to the reseller.
name_servers array
hostname string The hostname for the nameserver.
is_managed boolean Determines whether this domain is managed by the system. Set false for domains which are already registered and which you don’t want to transfer.
is_auto_renew_enabled boolean Set to true to enable automatic renewals (and billing of them) by the system.
language_code string TLD specific language code to be used.
client_reference string Client reference to be used for filtering and in Events.
is_privacy_protect_enabled boolean If privacy protect should be enabled for this domain.

JSON response

object: Domain

Possible errors

Sample

curl \
--request POST \
--user "{{api_username}}:{{api_key}}" \
--data '
    {
        "name": "example.com",
        "contacts": [
            {
                "role": "registrant",
                "contact": "RP934K83F9k30K2904L"
            },
            {
                "role": "admin",
                "contact": "RP934K83F9k30K2904L"
            },
            {
                "role": "billing",
                "contact": "RP934K83F9k30K2904L"
            },
            {
                "role": "tech",
                "contact": "RP934K83F9k30K2904L"
            }
        ],
        "name_servers": [
            {
                "hostname": "ns1.example.com"
            },
            {
                "hostname": "ns2.example.com"
            }
        ]
    }
' \
"{{api_base_url}}/domain" | python -m json.tool

/domain/{id}

GET

Get detailed information about a domain.

Query parameters

extended boolean Set to true if you need extended information (might be slower!).

JSON response

object: Domain

Possible errors

Sample

curl \
--request GET \
--user "{{api_username}}:{{api_key}}" \
"{{api_base_url}}/domain/{id}" | python -m json.tool

PUT

Update domain settings like auto renew, name servers, contacts and the transfer lock.

JSON request

contacts array
role string One of ‘registrant’, ‘admin’, ‘billing’, ‘tech’
contact string A contact ID which belongs to the reseller.
name_servers array
hostname string The hostname for the nameserver.
is_transfer_lock_enabled boolean Enable or disable the transfer lock.
is_auto_renew_enabled boolean Enable or disable automatic renewals for this domain.
is_privacy_protect_enabled boolean OPTIONAL: Enable or disable privacy protect. Only possible when supported by TLD Note: This is an a-synchronous process. The result is not immediately visible this can take a while (a couple of minutes)
designated_agent string OPTIONAL: Possible values: ‘NONE’, ‘OLD’, ‘NEW’, ‘BOTH’ Indicates for whom you are acting as a designated agent. If a registry does not allow you to be designated agent or interaction with the registrant is still required this parameter is silently ignored.

JSON response

object: Domain

Possible errors

Sample

curl \
--request PUT \
--user "{{api_username}}:{{api_key}}" \
--data '
    {
        "contacts": [
            {
                "role": "registrant",
                "contact": "RP934K83F9k30K2904L"
            },
            {
                "role": "admin",
                "contact": "RP934K83F9k30K2904L"
            },
            {
                "role": "billing",
                "contact": "RP934K83F9k30K2904L"
            },
            {
                "role": "tech",
                "contact": "RP934K83F9k30K2904L"
            }
        ],
        "name_servers": [
            {
                "hostname": "ns1.example.com"
            },
            {
                "hostname": "ns2.example.com"
            }
        ]
    }
' \
"{{api_base_url}}/domain/{id}" | python -m json.tool

DELETE

Possible errors

Sample

curl \
--request DELETE \
--user "{{api_username}}:{{api_key}}" \
"{{api_base_url}}/domain/{id}" | python -m json.tool

/domain/{id}/renew

POST

Manually renew a domain. current_expiration_date must be provided to prevent accidental renews.

JSON request

current_expiration_date string ISO-8601 date format.

JSON response

object: Domain

Possible errors

Sample

curl \
--request POST \
--user "{{api_username}}:{{api_key}}" \
--data '
    {
        "current_expiration_date": "2016-04-22"
    }
' \
"{{api_base_url}}/domain/{id}/renew" | python -m json.tool

/domain/{id}/restore

POST

Restore a domain that entered redemption period after deletion.

JSON response

object: Domain

Possible errors

Sample

curl \
--request POST \
--user "{{api_username}}:{{api_key}}" \
"{{api_base_url}}/domain/{id}/restore" | python -m json.tool

/domain/{id}/park

POST

Park a domain. If park_addresses is ommited, the default park server is used.

JSON request

park_addresses string
address string The IP or hostname address

Possible errors

Sample

curl \
--request POST \
--user "{{api_username}}:{{api_key}}" \
"{{api_base_url}}/domain/{id}/park" | python -m json.tool

/domain/{id}/regenerate-authorization-code

POST

Regenerate the domain authorization code.

Note that the request sometimes gets handled asynchronously and the endpoint will still result in a 200 HTTP code. The serialized domain will still contain the authorization code, which is not updated yet. There currently is no way to know if the authorization code got updated, except for checking if it got changed yourself. If the authorization code did not change right away, try again later by performing an extended API call to /domain/{id}.

JSON response

object: Domain

Possible errors

Sample

curl \
--request POST \
-H "Content-Type: application/json" \
--user "{{api_username}}:{{api_key}}" \
"{{api_base_url}}/domain/{id}/regenerate-authorization-code" | python -m json.tool