datapulse_live_rdap_bulk
datapulse:dnsOutput: JSONRead-onlyBulk 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
| Parameter | Type | Description |
|---|---|---|
domainsrequired | 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[].queryrequired | 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[].force | boolean | Bypass 90-day cache. |
domains[].metadata | map<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.