ELITEDOMAINS API Documentation

Postman collection → OpenAPI spec →

Introduction

The ELITEDOMAINS API allows you to manage domains, handles, and catcher orders programmatically through a simple REST API.

This documentation provides all the information you need to work with the ELITEDOMAINS API.

Getting Started

To use the API, please contact our support team to enable API access for your account. Once activated, you can manage personal access tokens in your account settings.

Authentication

All API requests must include your personal access token as a Bearer token:

Authorization: Bearer {YOUR_TOKEN}

Base URL

All API requests should be made to: https://api.elitedomains.de

Sandbox Mode

Every API request can be run in Sandbox mode by adding ?sandbox=1 to the URL. In Sandbox mode, no actual changes are performed (no database writes or registry calls).

Rate Limiting

  • Standard: 100 requests/minute, 1,000 requests/day
  • During droptime (02:00-04:00): 10 requests/minute, 100 requests total

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your personal access token by visiting your account settings page in the ELITEDOMAINS dashboard. Contact support to enable API access for your account.

Catcher Management

List all catcher orders

GET
https://api.elitedomains.de
/catcher
requires authentication

Retrieve a paginated list of all domain catcher orders in your account.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number for pagination.

Example:
1
Example request:
curl --request GET \
    --get "https://api.elitedomains.de/catcher?page=1" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "current_page": 1,
    "per_page": 500,
    "data": [
        {
            "name": "example.de",
            "status": "rgp",
            "users": 3,
            "price": 5,
            "dropdate_at": "2024-03-15",
            "created_at": "2024-03-10 14:30:00"
        }
    ]
}

Add domain to catcher

POST
https://api.elitedomains.de
/catcher
requires authentication

Add a new domain to the RGP (Redemption Grace Period) catcher. Successfully caught domains will be registered using your default handle configuration.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.elitedomains.de/catcher" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\",
    \"price\": 10
}"
Example response:
{
    "message": "Domain added to catcher",
    "name": "example.de"
}
{
    "message": "Domain name is missing"
}
{
    "message": "Domain name is invalid"
}
{
    "message": "Default handle in your accounts sale settings required"
}
{
    "message": "Catcher Create not possible between 2:00 and 4:00am"
}
{
    "message": "Domain already added to catcher"
}

Remove domain from catcher

DELETE
https://api.elitedomains.de
/catcher
requires authentication

Remove a domain from your catcher order list.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://api.elitedomains.de/catcher" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\"
}"
Example response:
{
    "message": "Domain deleted",
    "name": "example.de"
}
{
    "message": "Domain name is missing"
}
{
    "message": "Domain not found"
}
{
    "message": "Catcher Delete not possible between 2:00 and 4:00am"
}

Domain Management

List all domains

GET
https://api.elitedomains.de
/domains
requires authentication

Retrieve a paginated list of all domains in your account.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number for pagination.

Example:
1
Example request:
curl --request GET \
    --get "https://api.elitedomains.de/domains?page=1" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "current_page": 1,
    "per_page": 500,
    "data": [
        {
            "name": "example.de",
            "redirector_settings": {
                "type": "landing",
                "method": "redirect_sale_page"
            },
            "authinfo": "E-Hc$f3xx",
            "auto_expire": "2024-12-31",
            "paid_until": "2024-12-31",
            "created_at": "2023-01-15T10:30:00.000000Z"
        }
    ]
}

Register or transfer a domain

POST
https://api.elitedomains.de
/domains
requires authentication

Register a new domain or transfer an existing domain to your account. Domains will be created using your default redirector and handle configuration.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.elitedomains.de/domains" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\",
    \"authinfo\": \"E-Hc$f3xx\",
    \"handle_id\": 123,
    \"period\": 12,
    \"redirector_settings\": {
        \"type\": \"landing\",
        \"method\": \"redirect_sale_page\",
        \"url\": \"https:\\/\\/example.com\",
        \"ns\": [
            \"ns1.example.com\",
            \"ns2.example.com\"
        ],
        \"dns\": [
            {
                \"type\": \"A\",
                \"name\": \"@\",
                \"value\": \"192.168.1.1\",
                \"prio\": 10,
                \"ttl\": 3600
            }
        ],
        \"options\": {
            \"dnssec-active\": \"false\",
            \"dnssec-key\": \"AwEAAa...\",
            \"dnssec-algorithm\": \"13\",
            \"dnssec-flags\": \"257\"
        }
    }
}"
Example response:
{
    "message": "Domain registered successfully",
    "name": "example.de"
}
{
    "message": "Domain transferred successfully",
    "name": "example.de"
}
{
    "message": "Domain name is missing"
}
{
    "message": "Domain name is invalid"
}
{
    "message": "Authcode invalid"
}
{
    "message": "Default handle in your accounts sale settings required"
}
{
    "message": "The request was rejected by DENIC"
}
{
    "message": "Domain already registered"
}
{
    "message": "Domain already in your account"
}

Update domain tags

POST
https://api.elitedomains.de
/domains/tags
requires authentication

Add or update tags for a specific domain in your portfolio. Tags help organize and categorize your domains.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.elitedomains.de/domains/tags" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\",
    \"tags\": [
        \"premium\",
        \"aged\",
        \"brandable\"
    ]
}"
Example response:
{
    "tags": [
        "premium",
        "aged",
        "brandable"
    ],
    "message": "Tags saved."
}
{
    "message": "Domain name is invalid"
}
{
    "message": "Domain not found"
}

Check domain availability

GET
https://api.elitedomains.de
/domains/check
requires authentication

Check if a domain is available for registration or already taken.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

name
string
required

The domain name to check.

Example:
example.de
Example request:
curl --request GET \
    --get "https://api.elitedomains.de/domains/check?name=example.de" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "name": "example.de",
    "message": "taken"
}
{
    "name": "example.de",
    "message": "free"
}
{
    "message": "Domain name is missing"
}
{
    "message": "Domain name is invalid"
}

Update a domain

PATCH
https://api.elitedomains.de
/domains
requires authentication

Update domain settings such as redirector configuration or handle assignment.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request PATCH \
    "https://api.elitedomains.de/domains" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\",
    \"redirector_settings\": {
        \"type\": \"landing\",
        \"method\": \"redirect_sale_page\",
        \"url\": \"https:\\/\\/example.com\",
        \"ns\": [
            \"ns1.example.com\",
            \"ns2.example.com\"
        ],
        \"dns\": [
            {
                \"type\": \"A\",
                \"name\": \"@\",
                \"value\": \"192.168.1.1\",
                \"prio\": 10,
                \"ttl\": 3600
            }
        ],
        \"options\": {
            \"dnssec-active\": \"false\",
            \"dnssec-key\": \"AwEAAa...\",
            \"dnssec-algorithm\": \"13\",
            \"dnssec-flags\": \"257\"
        }
    },
    \"handle_id\": 1234
}"
Example response:
{
    "message": "Domain updated"
}
{
    "message": "Domain name is missing"
}
{
    "message": "Validation error details"
}
{
    "message": "Domain not found"
}

Delete or transit a domain

DELETE
https://api.elitedomains.de
/domains
requires authentication

Delete a domain from your account or put it into DENIC transit state.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://api.elitedomains.de/domains" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\",
    \"transit\": 0
}"
Example response:
{
    "message": "Domain deleted",
    "name": "example.de"
}
{
    "message": "Domain put in transit",
    "name": "example.de"
}
{
    "message": "Domain name is missing"
}
{
    "message": "The request was rejected by DENIC"
}
{
    "message": "Domain not found"
}

Get domain AuthInfo code

GET
https://api.elitedomains.de
/domains/authinfo
requires authentication

Retrieve the AuthInfo/transfer code for a domain. If none exists, a new one will be generated.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

name
string
required

The domain name.

Example:
example.de
Example request:
curl --request GET \
    --get "https://api.elitedomains.de/domains/authinfo?name=example.de" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "Authcode exists",
    "name": "example.de",
    "authinfo": "EDxHc$f3xx",
    "expires_at": "07.04.2024 21:34:35"
}
{
    "message": "Domain name is missing"
}
{
    "message": "The request was rejected by DENIC"
}
{
    "message": "Domain not found"
}

Add domain to Sedo marketplace

POST
https://api.elitedomains.de
/domains/sedo
requires authentication

List a domain on the Sedo marketplace with a specified price. The domain will be configured for Paynow transactions.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.elitedomains.de/domains/sedo" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"example.de\",
    \"price\": 1500
}"
Example response:
{
    "message": "SEDO-Domain added or updated successfully",
    "name": "example.de"
}
{
    "message": "Domain name is missing"
}
{
    "message": "Price is required and must be greater than 0"
}
{
    "message": "Domain name is invalid"
}
{
    "message": "Domain not found in your inventory"
}
{
    "message": "An error occurred while processing the SEDO task"
}

Domain Offers

List all domain offers

GET
https://api.elitedomains.de
/offers
requires authentication

Retrieve a paginated list of all sale pages (domain offers) in your account with relevant data including status, pricing, visitors, leads, and template information.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number for pagination.

Example:
1
per_page
integer

Number of results per page. Default: 50, Max: 500.

Example:
50
type
string

Filter by offer type. Options: paynow, 4sale.

Example:
paynow
status
string

Filter by status. Options: verified, hold, not_configured, unverified, inactive, deconnect.

Example:
verified
is_internal
boolean

Filter by internal domains (true) or external domains (false).

Example:
true
template
string

Filter by template name.

Example:
slim
min_price
integer

Minimum price filter.

Example:
99
max_price
integer

Maximum price filter.

Example:
5000
min_visitors
integer

Minimum visitors in last 30 days.

Example:
10
order_by
string

Field to order by. Options: created_at, name, price, visitors, status. Default: created_at.

Example:
visitors
order_direction
string

Order direction. Options: asc, desc. Default: desc.

Example:
desc
Example request:
curl --request GET \
    --get "https://api.elitedomains.de/offers?page=1&per_page=50&type=paynow&status=verified&is_internal=1&template=slim&min_price=99&max_price=5000&min_visitors=10&order_by=visitors&order_direction=desc" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "current_page": 1,
    "per_page": 50,
    "total": 125,
    "last_page": 3,
    "data": [
        {
            "name": "example.de",
            "type": "paynow",
            "status": "verified",
            "price": 2999,
            "template": "slim",
            "created_at": "2023-01-15T10:30:00.000000Z",
            "is_internal": true,
            "redirect_status": true,
            "hide_on_marketplace": false,
            "visitors": {
                "last_30_days": 142,
                "last_7_days": 35,
                "referrer_30_days": 12
            },
            "template_data": {
                "theme-color": "blue",
                "price-suggest": "true"
            },
            "tags": [
                "premium",
                "short"
            ]
        }
    ]
}
{
    "message": "Unauthenticated."
}

Handle Management

List all handles

GET
https://api.elitedomains.de
/handles
requires authentication

Retrieve a paginated list of all contact handles in your account.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number for pagination.

Example:
1
Example request:
curl --request GET \
    --get "https://api.elitedomains.de/handles?page=1" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "current_page": 1,
    "per_page": 500,
    "data": [
        {
            "id": 123,
            "alias": "JohnPrivate",
            "type": "PERSON",
            "handle_name": "John Doe",
            "street_name": "Unter den Linden",
            "street_number": "12",
            "postalcode": "12345",
            "city": "Berlin",
            "country_id": "DE",
            "email": "[email protected]",
            "phone": "+49.16094751251",
            "created_at": "2023-01-15T10:30:00.000000Z"
        }
    ]
}

Create a new handle

POST
https://api.elitedomains.de
/handles
requires authentication

Add a new contact handle to your account. Handles are used for domain contact information at the registry.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.elitedomains.de/handles" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"alias\": \"JohnPrivate\",
    \"type\": \"PERSON\",
    \"handle_name\": \"John Doe\",
    \"street_name\": \"Unter den Linden\",
    \"street_number\": \"12\",
    \"postalcode\": \"12345\",
    \"city\": \"Berlin\",
    \"country_iso\": \"DE\",
    \"email\": \"[email protected]\",
    \"phone\": \"+49.16094751251\",
    \"general_request\": \"[email protected]\",
    \"abuse_contact\": \"[email protected]\",
    \"address_suggest\": \"keep\"
}"
Example response:
{
    "id": 123,
    "alias": "JohnPrivate",
    "type": "PERSON",
    "handle_name": "John Doe",
    "street_name": "Unter den Linden",
    "street_number": "12",
    "postalcode": "12345",
    "city": "Berlin",
    "country_id": "DE",
    "email": "[email protected]",
    "phone": "+49.16094751251",
    "created_at": "2023-01-15T10:30:00.000000Z"
}
{
    "message": "Deine Eingaben sind ungültig oder unvollständig.",
    "error": {
        "field": [
            "error message"
        ]
    }
}
{
    "message": "Unbekannter Fehler"
}

Update a handle

PATCH
https://api.elitedomains.de
/handles/{id}
requires authentication

Update an existing contact handle. Only include fields you want to update.

Headers

Authorization
Example:
Bearer {YOUR_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The handle ID.

Example:
123

Body Parameters

Example request:
curl --request PATCH \
    "https://api.elitedomains.de/handles/123" \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"alias\": \"JohnPrivate\",
    \"street_name\": \"Unter den Linden\",
    \"street_number\": \"12\",
    \"postalcode\": \"12345\",
    \"city\": \"Berlin\",
    \"country_iso\": \"DE\",
    \"email\": \"[email protected]\",
    \"phone\": \"+49.16094751251\",
    \"general_request\": \"[email protected]\",
    \"abuse_contact\": \"[email protected]\",
    \"address_suggest\": \"keep\"
}"
Example response:
{
    "id": 123,
    "alias": "JohnPrivate",
    "type": "PERSON",
    "handle_name": "John Doe",
    "street_name": "Unter den Linden",
    "street_number": "12",
    "postalcode": "12345",
    "city": "Berlin",
    "country_id": "DE",
    "email": "[email protected]",
    "phone": "+49.16094751251",
    "created_at": "2023-01-15T10:30:00.000000Z"
}
{
    "message": "Deine Eingaben sind ungültig oder unvollständig.",
    "error": {
        "field": [
            "error message"
        ]
    }
}
{
    "message": "Handle not found"
}