MCP documentation menu

datapulse_live_rdap_bulk

Live LookupScope: datapulse:dnsOutput: JSONRead-only

Bulk RDAP lookup for up to 1000 domains/IPs

Description

Submit multiple domains or IP addresses for RDAP lookup in a single request (up to 1000).

Supports domain names and IP addresses (v4 and v6).

IMPORTANT: This tool is ALWAYS ASYNC. It returns job receipts only — NOT lookup results. After submitting, retrieve individual results by calling datapulse_live_rdap(query=…) for each query — completed lookups return the cached result instantly.

NOTE: bulk consults the Scrape API’s own 90-day cache (not the DataPulse database the single tool checks first), so cached is usually nonzero; force=true bypasses it.

NOTE: Results are registrar-level only — registrant (owner) contact data is GDPR-redacted.

For single queries, use datapulse_live_rdap instead.

Every item is validated before submission: a malformed or blank query, a single label, a registrable domain with an underscore (exa_mple.com) or a reserved address (loopback, RFC 1918, link-local, documentation ranges) is reported in rejected_local and the rest of the batch still goes through; a query repeated in the batch is submitted once and listed in duplicates. Domains are reduced to the registrable name under the full Public Suffix List (www.example.com -> example.com; microsoft.jp.net kept). A CIDR range is rejected: submit one address inside it. A domain whose TLD has no RDAP server (.de, for example) passes validation here — this server does not carry the IANA bootstrap list — and its job then fails with “No RDAP servers found”; datapulse_live_rdap reports that immediately.

Returns:

  • accepted/rejected/cached: the API’s submission counts (rejected_local is not included)
  • batch_id: UUID grouping all accepted queries
  • submitted: One entry per query sent: index (position in your domains array), query as submitted, domain_hash (hex SHA-256 of that query — the name is historical: for an address it is the hash of the address text — and the key its result is stored under), plus job_id and cached exactly when the API’s per-item report carries them (nothing is inferred)
  • rejected_items: index, query as you sent it, and the API’s reason
  • rejected_local: index, query, and the reason it was refused before the request
  • duplicates: index, query, and first_index of the item it repeats
  • domain_hashes / job_ids: the API’s flat lists, in its order (domain_hashes holds the same per-query hashes, addresses included)
  • errors: the API’s own rejection codes only; it is [] whenever nothing survived local validation to be refused upstream, so check rejected_items and rejected_local, not errors

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

Parameters

ParameterTypeDescription
domains
required
object[]
Array of queries to look up. Each item can be a domain name or IP address (v4/v6). Maximum 1000 per request.
Min items: 1Max items: 1000
domains[].query
required
string
Domain name or IP address (v4/v6) to look up (e.g., ’example.com’, ‘8.8.8.8’, ‘2601:249:8080:5296::35’).
Min length: 1
domains[].forceboolean
Bypass 90-day cache.
domains[].metadatamap<string, string>
Custom key-value metadata stored with the result. Shared with every caller of this deployment and returned to anyone who retrieves the row; never put credentials or personal data here.
Input schema (JSON)
{
  "additionalProperties": false,
  "properties": {
    "domains": {
      "description": "Array of queries to look up. Each item can be a domain name or IP address (v4/v6). Maximum 1000 per request.",
      "items": {
        "properties": {
          "force": {
            "description": "Bypass 90-day cache.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom key-value metadata stored with the result. Shared with every caller of this deployment and returned to anyone who retrieves the row; never put credentials or personal data here.",
            "type": "object"
          },
          "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').",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "minItems": 1,
      "type": "array"
    }
  },
  "required": [
    "domains"
  ],
  "type": "object"
}

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