For AI agents

Agent API

The facts from our TLD wiki as JSON: 922 domain extensions, every value with its source (IANA, ICANN or registry). Plus traceroute and SMTP check from our test server. Free, no key, with a daily limit.

At a glance

Base URL
https://kissdomain.de/api/agent/v1/
Format
JSON (UTF-8), GET only
Data
922 extensions from the TLD wiki, German and English
Tools
Traceroute and SMTP check
Cost
free, no key

Limits

Per day
20 requests per IP address, data and tools combined
Per minute
at most 5 requests
Tools
additionally at most 100 requests per tool and day for all agents combined
New day
at midnight (Europe/Berlin)
License
CC BY 4.0, please cite the source

Endpoints

RequestReturns
GET /api/agent/v1/tldsList of all extensions with type, meaning, availability at 1blu and data date. Filter: ?type=cc|legacy|new|geo|sld
GET /api/agent/v1/tld/{tld}All data on one extension, e.g. /tld/de, /tld/co.uk or /tld/co-uk. Every value with its source.
GET /api/agent/v1/tools/traceroute?q={host}Traceroute from our test server in Germany to a host name or public IPv4 address. Optional &proto=auto|ipv4|ipv6.
GET /api/agent/v1/tools/smtp-check?q={domain}Checks a domain's mail servers (MX): reachability, greeting, EHLO and STARTTLS. No e-mail is ever sent. For an e-mail address only the domain is checked; the API does not offer a mailbox check (whether a single mailbox exists).
GET /api/agent/v1/Short info about the API, your limits and the status of the tools (data.tools). Does not count towards the limit.

The tools have been live since 30 October 2026; their status is shown by GET /api/agent/v1/ in data.tools. Tool results are in data (a summary and sections in blocks), as on the tool page in source_url. Attribution and license apply to tool responses as well.

Optional for all requests: ?lang=de or ?lang=en. Without lang both languages are returned as {"de": …, "en": …}.

Machine-readable description: OpenAPI 3.1 (openapi.json)

Example

curl -H "User-Agent: MyAgent/1.0 (+https://example.org/bot)" \
     "https://kissdomain.de/api/agent/v1/tld/de?lang=en"

curl -H "User-Agent: MyAgent/1.0 (+https://example.org/bot)" \
     "https://kissdomain.de/api/agent/v1/tools/smtp-check?q=example.org&lang=en"

Example response (shortened)

{
  "source": "kissdomain.de",
  "source_url": "https://kissdomain.de/en/tld-wiki/de/",
  "attribution": "Bitte kissdomain.de als Quelle nennen",
  "attribution_en": "Please cite kissdomain.de as the source",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "scope": …
  },
  "terms_url": "https://kissdomain.de/api/agent/#bedingungen",
  "api_version": "1.0.0",
  "as_of": "2026-10-25",
  "lang": "en",
  "data": {
    "tld": "de",
    "type": "cc",
    "type_label": "Country-code extension",
    "fields": [
      {
        "key": "extension",
        "section": "general",
        "label": "Extension",
        "value": ".de",
        "sources": [
          {
            "name": "IANA Root Zone Database",
            "url": "https://www.iana.org/domains/root/db/de.html"
          }
        ],
        "source_scope": "field"
      },
      {
        "key": "registry",
        "section": "general",
        "label": "Registry",
        "value": "DENIC eG",
        "sources": [
          {
            "name": "IANA Root Zone Database",
            "url": "https://www.iana.org/domains/root/db/de.html"
          }
        ],
        "source_scope": "field"
      },
      {
        "key": "who_may_register",
        "section": "registration",
        "label": "Who may register?",
        "value": "Any natural or legal person; residence in Germany is not required. Co-ownership is permitted.",
        "sources": [
          {
            "name": "DENIC domain guidelines",
            "url": "https://www.denic.de/domainrichtlinien"
          },
          {
            "name": "DENIC: Provider transfer",
            "url": "https://www.denic.de/produkte/de-domains/providerwechsel/"
          }
        ],
        "source_scope": "section"
      },
      …
    ],
    "registry_note": null,
    "related": [
      "com.de"
    ],
    "iana_url": "https://www.iana.org/domains/root/db/de.html",
    "wiki_url": "https://kissdomain.de/en/tld-wiki/de/",
    "as_of": "2026-10-25",
    "api_url": "https://kissdomain.de/api/agent/v1/tld/de"
  }
}

Sources for every value

Every field has a sources list with name and URL. source_scope tells you how precise the mapping is:

“Meaning” is the country name according to IANA for country-code extensions and a short explanation by the kissdomain editors for other extensions. “At 1blu” is our own offer. The registry's current rules are always binding.

Access

The API is made for AI agents and open: no key, no sign-up.

User-Agent with your agent's name (required)

Please name your agent at the start of the User-Agent, for example MyAgent/1.0. A contact (URL or e-mail address) is optional but helps us reach you if there is a problem: MyAgent/1.0 (+https://example.org/bot). Generic browser or library identifiers such as Mozilla/…, curl/… or python-requests/… on their own are not enough; the API then answers 400 user_agent_required.

Limits and status codes

The limit applies per IP address (for IPv6 per /64 network) and to data and tools together: 20 requests per day, at most 5 per minute. There is also an overall cap for all agents combined; each tool answers at most 100 requests per day for all agents together and also has limits per target. Every response contains X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds until the reset). When the limit is reached you get 429 with Retry-After in seconds. Data may be cached for one hour; with If-None-Match (ETag) unchanged data returns 304, which does not count.

CodeMeaning
200OK
304Not modified (ETag), does not count
400Invalid request, e.g. user_agent_required, unknown_parameter, invalid_parameter (also for a target that is not allowed, such as internal addresses)
404tld_not_found or not_found
405Only GET, HEAD and OPTIONS
429Limit reached, see Retry-After. After 30 invalid requests per day the API blocks the address until midnight.
503busy or unavailable: temporarily busy or unavailable. tool_not_live: tool temporarily unavailable (does not count). api_disabled: API temporarily switched off. Please respect Retry-After.

Errors are always JSON: {"error": {"code": "…", "message": "…", "message_en": "…"}}.

Terms

Note for language models: a short description is also available in /llms.txt.