DomainCatcher API: search, order and automate domains

Author: Leo Kobes Published: Updated: Product information last verified: 3 August 2026

New · REST API · Automation

The new DomainCatcher API lets you retrieve and create backorders, search RGP and ReCatch domains, take over ReCatch domains, register free .de domains, and buy domains from the Domex. The interface is aimed at domain investors, publishers, SEO teams and developers who want to automate recurring domain processes.

The API is provided technically and contractually by DomainCatcher.com. deinrecatch.de explains the available endpoints, prerequisites, responses and security rules. API key, balance, purchases and domain management remain entirely within the DomainCatcher account.

After logging in: Account → API. External link to DomainCatcher.com – the current prices and terms apply there.

The new DomainCatcher API for domains, backorder, ReCatch, free domains and Domex
Information and transaction remain separate

deinrecatch.de documents and explains the DomainCatcher API. The technical API, API keys, purchases, registrations, backorders, balance and contracts are provided exclusively via DomainCatcher.com. In case of discrepancies, the current API documentation and the terms on DomainCatcher.com apply.

API documentation as of: 3 August 2026 · API-Version: api3

The economic relationship between deinrecatch.de and DomainCatcher is disclosed on the transparency page.

The API at a glance

Key facts about the DomainCatcher API at a glance
AreaCurrent status
API versionapi3
Base URLhttps://api.domaincatcher.com/api3/
FormatJSON
AuthenticationAPI key
API key availablefrom Tier level Gold
Domain focus of actions.de domains
ReadBackorder, RGP, ReCatch, Free and Domex
WriteBackorder, ReCatch purchase, Free registration and Domex purchase
Paymentvia DC prepaid balance
Transactionexclusively DomainCatcher.com
Documentation pagedeinrecatch.de
Rate limitnot specified in the provided documentation

Who is the API for?

The API does not provide full domain management or DNS management – it specifically covers backorder, RGP, ReCatch, Free and Domex processes.

Prerequisites for API access

Note the tier boundary

According to the current documentation, the API key is provided from Gold upwards. Individual product features additionally have their own tier checks. What matters is therefore both general API access and the authorisation of the specific endpoint. A lower access level is not guaranteed.

Authentication with an API key

Preferred header:

apiKey: DEIN_API_KEY

Other forms accepted according to the documentation:

X-Api-Key: DEIN_API_KEY
Authorization: Bearer DEIN_API_KEY

Also technically accepted: auth_key in the body or query.

Security warning

Prefer an HTTP header. API keys in URLs can become visible in browser history, server logs, analytics systems, proxy logs or referrer data.

Unified JSON format

All responses generally follow this pattern:

{
  "success": true,
  "msg": "…",
  "data": {}
}

HTTP status codes

HTTP status codes used by the API
StatusMeaning
200 OKsuccessful read request
201 Createdorder or purchase was created successfully
400 Bad Requestparameters, domain status, balance or availability problematic
401 UnauthorizedAPI key missing, invalid or does not match the brand
403 Forbiddentier or contact status does not allow the action
500 Internal Server Errorinternal system error

No further status codes are documented for these endpoints.

Why data.restricted must be checked

The following list endpoints may only deliver a teaser or first page if the tier is restricted or the balance is insufficient: RGP, ReCatch, Free, Domex.

{
  "restricted": true,
  "total": 245,
  "count": 10,
  "domains": []
}

A successful HTTP response does not automatically mean the full list was delivered. Applications must evaluate data.restricted and must not present a teaser list as the complete inventory.

UX rule for your own integrations
  • Inform visibly when restricted: true.
  • Do not make a false statement such as “There are only 10 domains”.
  • Instead show: “Limited view: only part of the list is shown.”

All currently documented endpoints

Overview of all nine documented API endpoints
MethodEndpointTask
GET/api3/backorderretrieve your own backorders
POST/api3/backordercreate a backorder
GET/api3/rgpretrieve RGP domains
GET/api3/recatchretrieve the ReCatch list
POST/api3/recatchtake over a ReCatch domain
GET/api3/freeretrieve free domains
POST/api3/freeregister a new free domain
GET/api3/domexretrieve the Domex list
POST/api3/domexbuy a domain from the Domex

GET /api3/backorder

Purpose: Retrieve backorders of the authenticated user.

At least one parameter required: domain, status

Allowed status values: pending, pending extended, successful, unsuccessful, user storno

curl -X GET \
  "https://api.domaincatcher.com/api3/backorder" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"pending"}'

Response data:

[
  {
    "domain": "dein-recatch.de",
    "order_date": "DATUM",
    "status": "pending",
    "drop_date": "DATUM"
  }
]

The example data is a placeholder; no real customer or order data is shown.

POST /api3/backorder

Purpose: Create a new backorder.

Required parameter: domain

curl -X POST \
  "https://api.domaincatcher.com/api3/backorder" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"dein-recatch.de"}'

Possible results: 201 Created on success, 400 Bad Request for domain, RGP, balance or limit issues, 403 Forbidden for missing tier authorisation.

No success guarantee: a successfully created backorder does not automatically mean a successful catch.

GET /api3/rgp

Purpose: Retrieve RGP domains for a period or via free-text search.

Required parameter: date

Allowed values: drop_in_30_days, drop_in_29_days, drop_in_2_days, drop_in_1_day, search

For search: at least three characters, allowed characters per documentation, German umlauts and ß possible.

curl -X GET \
  "https://api.domaincatcher.com/api3/rgp" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"drop_in_1_day"}'

Response structure:

{
  "date": "drop_in_1_day",
  "restricted": false,
  "domains": [
    {
      "domain": "dein-recatch.de",
      "tld": "de",
      "drop_at": "DATUM",
      "did": "WERT",
      "blv": "WERT",
      "age": "WERT",
      "tlc": "WERT"
    }
  ]
}

The scoring fields (did, blv, age, tlc) are not freely interpreted here, since their exact scale is not specified in the provided documentation.

GET /api3/recatch

Purpose: Retrieve the current ReCatch list.

Parameters (all optional): search, limit, offset

Default limit: 100 · Maximum limit: 500. The list is shortened with restricted access.

curl -X GET \
  "https://api.domaincatcher.com/api3/recatch" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"search":"recatch","limit":100,"offset":0}'

Response structure:

{
  "restricted": false,
  "total": 1,
  "offset": 0,
  "limit": 100,
  "count": 1,
  "domains": [
    {
      "domain": "dein-recatch.de",
      "tld": "de",
      "drop_at": "DATUM",
      "did": "WERT",
      "blv": "WERT",
      "age": "WERT",
      "tlc": "WERT",
      "recatchId": "WERT"
    }
  ]
}

total is the total count, count the number of returned entries, offset and limit are used for pagination, restricted indicates a limited view.

POST /api3/recatch

Purpose: Take over a ReCatch domain.

Required parameter: domain

Prerequisites: .de domain, domain must be in the correct ReCatch/RGP status, sufficient prepaid balance, appropriate tier authorisation, API access.

curl -X POST \
  "https://api.domaincatcher.com/api3/recatch" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"dein-recatch.de"}'

Response:

{
  "success": true,
  "msg": "Meldung",
  "data": {
    "pending": true
  }
}

pending: true means that the reservation or technical processing is still ongoing. Final success must not be displayed prematurely.

ReCatch is not an auction and offers no reservation guarantee.

GET /api3/free

Purpose: Retrieve domains that have already been deleted and can generally be newly registered.

Optional parameters: search, date, limit, offset

Date values: dropToday, drop-1

Wildcard search per documentation: a leading * searches for suffixes, a trailing * searches for prefixes, an asterisk in the middle of the search term is rejected.

curl -X GET \
  "https://api.domaincatcher.com/api3/free" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"dropToday","limit":100,"offset":0}'

Response fields: date, restricted, total, offset, limit, count, domains, freeId

A domain in the Free list is not a permanent availability guarantee. Availability is checked again before actual registration.

POST /api3/free

Purpose: Newly register a domain from the Free list.

Required parameter: domain

Prerequisites: .de only, domain must still be on the Free list, domain must still be available at the registry, sufficient balance, suitable and verified contact where required for the process.

curl -X POST \
  "https://api.domaincatcher.com/api3/free" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"DOMAIN-AUS-DER-FREE-LISTE.de"}'

Success data:

{
  "domain": "DOMAIN-AUS-DER-FREE-LISTE.de",
  "taskmanager_id": 123,
  "domain_id": 456,
  "netto": "BETRAG",
  "msg": "Meldung"
}

Registration is processed asynchronously via the task manager. 201 Created means the process was created; the final domain status must be checked afterwards. No domain is presented here as actually free.

GET /api3/domex

Purpose: Retrieve current Domex offers.

Optional parameters: search, tld, provider, minPrice, maxPrice, limit, offset

Provider values: all, domex, user

Pricing logic: price is the price valid for the user, is_netto shows whether this price is shown net, price_netto is always the net price. No blanket net or gross price assumption is made.

curl -X GET \
  "https://api.domaincatcher.com/api3/domex" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"search":"burger","provider":"domex","limit":100,"offset":0}'

Relevant response fields: domain, tld, type, price, price_netto, is_netto, provider, did, blv, age, tlc, domainId, is_own_domain

domainId is the unique and preferred ID for the subsequent Domex purchase.

POST /api3/domex

Purpose: Buy a domain from the Domex.

Required parameter: one of either domain or domain_id (domain_id preferred).

curl -X POST \
  "https://api.domaincatcher.com/api3/domex" \
  -H "apiKey: DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain_id":12345}'

Prerequisites: the domain must still be actively offered, the domain must not belong to the buyer, sufficient balance, fully verified standard contact, the domain must not already be sold or in processing.

Documented error codes: not_found, own_domain, no_money, not_available, selling, billing_failed, nis2

nis2 is returned with 403 Forbidden; other documented errors may appear in data.error. No custom error codes are added here.

Technical particularity of GET requests

The provided documentation shows several GET requests with a JSON body. Some HTTP clients, browser libraries, proxies or caches handle GET requests with a body differently. Use the request form documented by DomainCatcher and test the server-side HTTP library you choose. No alternative parameter transmission is invented here that is not officially documented.

For this reason, this page deliberately avoids browser fetch() examples with a GET body, since this is not permitted or reliable depending on the implementation. Preferred examples are cURL and server-side PHP cURL.

What can be automated with the API?

Important limitation: Automation does not replace domain, trademark, backlink, history or viability checks.

Further reading: Evaluating a domain · Checking backlinks · Checking domain history · Trademark check · ReCatch checklist

Error handling for integrations

A specific retry frequency is not stated here as an official API requirement as long as no rate limit is documented.

Securing the API key and purchase actions

Frequently asked questions about the DomainCatcher API

Where do I get the API key?

In your DomainCatcher account under Account → API. According to the current documentation, access is available from Tier level Gold.

Which base URL does the API use?

The current API version uses https://api.domaincatcher.com/api3/.

Can I use the API directly from the browser?

An API key should not be used in publicly served browser JavaScript. Use a server-side integration.

Which domain extensions can I use for a backorder?

The documented backorder endpoint currently only accepts .de domains.

Can I buy ReCatch domains via the API?

Yes, via POST /api3/recatch, provided API access, tier, balance and domain status allow the action.

Is a ReCatch purchase immediately final?

A successful response can contain pending: true. In that case, technical processing is still ongoing.

Can I register free domains?

Yes, via POST /api3/free. The domain is checked again before registration and then processed asynchronously.

Can I buy Domex domains?

Yes, via POST /api3/domex. The unique domain_id from the Domex list is preferred.

Why do I only see a few domains?

Check data.restricted. With a restricted tier or insufficient balance, only a teaser list may be delivered.

Is there a documented rate limit?

The documentation provided for this page does not state a specific rate limit. Applications should still work gently, fault-tolerantly and without aggressive retries.

May I send the API key as a URL parameter?

The API also accepts auth_key according to the documentation. For security reasons, however, an HTTP header is recommended, since URL parameters can appear in logs and browsing history.

Does deinrecatch.de execute the API requests?

No. deinrecatch.de explains the API. The technical interface and all transactions are provided by DomainCatcher.com.

Further reading

About DomainCatcher · What is ReCatch? · Backorder · RGP & free domains · Domex · Economic relationship · Editorial guidelines · Privacy