MCP documentation menu

datapulse_live_rdap

Live LookupScope: datapulse:dnsOutput: JSONRead-only

Live RDAP registration data — domains and IPs (v4/v6), synchronous

Description

Live RDAP lookup — returns the registration data the Scrape API holds or fetches.

Supports domain names (including IDN and punycode) and IP addresses (v4 and v6). RDAP only knows registered names, so the hostname part is removed: a domain is reduced to its registrable name under the full Public Suffix List, private suffixes included (www.Example.COM. -> example.com; microsoft.jp.net is kept and the back-end decides which registry answers), and submitted_domain then echoes what you sent. This is the only kind of tool that removes hostname labels; the DNS tools ask for the exact name. Reserved addresses (loopback, RFC 1918, link-local, documentation ranges) and CIDR ranges are refused with the reason.

The response is the API’s RDAP envelope as sent ({query, source, datetime, results, …}) plus three fields of this tool’s: sent (what was asked for), type (“domain” or “ip”) and submitted_domain. results holds every observation the API returned, in its order; a result carrying an error field is the API’s own report of a failed lookup (an unregistered name, a TLD without RDAP) and is returned as-is. Names, nameservers, EPP status codes and country codes are case-folded; nothing else about a value changes.

For domains, the Scrape API serves a cached summary when it has one (its own cache or the DataPulse database) and otherwise performs a live lookup; force=true bypasses the cache. The envelope’s source says which answered: “cache”, “datapulse” (a crawl, dated by researchdate, can be weeks old) or “live”; query is “/rdap/<name>”. Domain results include: name, ianaid, registrationdate, expiration_date (optional), last_changed (optional), status, dns, abuse_email, abuse_phone.

NOTE: No registrant (owner) contact data — GDPR-redacted since 2018. abuse_email/abuse_phone are the REGISTRAR’s abuse desk, not the domain owner. There is no reverse-WHOIS; see datapulse_help(topic="registrant_lookup").

For IP addresses (v4/v6), the Scrape API answers from its cache when it has a recent RIR result and otherwise queries the RIR; force=true refreshes. IP results always carry network_name, start_address, end_address and researchdate; handle, type, cidr, country, organization, registration_date, last_changed, status, abuse_email, abuse_phone and port43 appear when the RIR publishes them (ARIN omits country, LACNIC omits cidr, AFRINIC/APNIC may omit abuse contacts).

TIP: For full domain research (DNS + RDAP + web scrape), prefer datapulse_domain_overview(domain=…) which combines all three in one call.

Always synchronous — results are returned directly. No polling required.

Give exactly one of query or domain_hash. domain_hash reads the row a datapulse_live_rdap_bulk submission stored, without a new lookup: the envelope comes back with domain_hash beside it (no sent or type), and a hash with no row is a not-found error.

For multi-query submission (up to 1000), use datapulse_live_rdap_bulk.

NOTE: Some ccTLDs run no RDAP server, so a lookup under them returns the API’s “No RDAP servers found” error rather than registration data.

For usage guidance, call datapulse_help(topic="rdap")

Parameters

ParameterTypeDescription
domain_hashstring
Read a stored RDAP row instead of looking it up: the domain_hash from a datapulse_live_rdap_bulk receipt (submitted[].domain_hash). Give this or query; force does not apply.
Min length: 64Max length: 64Pattern: ^[a-fA-F0-9]{64}$
forceboolean
Bypass cache and force a fresh lookup via the Scrape API.
Default: false
querystring
Domain name or IP address (v4/v6) to look up (e.g., ’example.com’, ‘8.8.8.8’, ‘2601:249:8080:5296::35’). A CIDR range is not accepted: look up one address inside it and the RIR answers with the whole allocation. Give this or domain_hash.
Min length: 1Max length: 253
Input schema (JSON)
{
  "additionalProperties": false,
  "properties": {
    "domain_hash": {
      "description": "Read a stored RDAP row instead of looking it up: the domain_hash from a datapulse_live_rdap_bulk receipt (submitted[].domain_hash). Give this or query; force does not apply.",
      "maxLength": 64,
      "minLength": 64,
      "pattern": "^[a-fA-F0-9]{64}$",
      "type": "string"
    },
    "force": {
      "default": false,
      "description": "Bypass cache and force a fresh lookup via the Scrape API.",
      "type": "boolean"
    },
    "query": {
      "description": "Domain name or IP address (v4/v6) to look up (e.g., 'example.com', '8.8.8.8', '2601:249:8080:5296::35'). A CIDR range is not accepted: look up one address inside it and the RIR answers with the whole allocation. Give this or domain_hash.",
      "maxLength": 253,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object"
}

Generated from the live server (DataPulse MCP 1.0.0) on October 7, 2026.