datapulse_live_dns_bulk
Live LookupScope:
datapulse:dnsOutput: JSONRead-onlyBulk DNS lookup for up to 1000 domains
Description
Submit multiple domains for DNS lookup in a single request (up to 1000).
IMPORTANT: This tool is ALWAYS ASYNC. It returns job receipts only — NOT lookup results. After submitting, retrieve individual results by calling datapulse_live_dns(domain=…) for each domain — completed lookups return the cached result instantly.
NOTE: DNS always forces fresh lookups — cached count is always 0.
For single domains, use datapulse_live_dns instead.
Returns:
- accepted/rejected/cached: the API’s submission counts over the items sent (rejected_local is not included)
- batch_id: UUID grouping all accepted domains
- dns_query_hashes: the API’s flat list of DNS row keys (formerly domain_hashes; per-lookup keys, not canonical domain hashes — see submitted[].domain_hash)
- job_ids: Array of job IDs for tracking
- errors: the API’s own rejection codes only; [] whenever nothing survived local validation to be refused upstream — check rejected_items and rejected_local instead
- submitted: One entry per lookup sent: index (position in your domains array), query (the A-label domain, www. kept), record_type, dns_query_hash (the key the DNS row is stored under: www. kept, record type folded in) and domain_hash (the canonical www-stripped domain hash that joins with datapulse_domain_overview and datapulse_live_domain_health), plus job_id and cached exactly when the API’s per-item report carries them (nothing is inferred)
- rejected_items: what the API refused: index, query (the domain as sent) and error (the API’s code)
- rejected_local: what was refused before the request (not a valid name, or blank): index, query (the domain as you gave it) and error (the reason); NOT counted in rejected — read both lists to find every failure
- duplicates: index, query, and first_index of the lookup it repeats; submitted once accepted + cached + rejected + len(rejected_local) + len(duplicates) equals the number of items you passed. One bad item never fails the batch.
For usage guidance, call datapulse_help(topic="dns")
Parameters
| Parameter | Type | Description |
|---|---|---|
domainsrequired | object[] | Array of domains to look up. Maximum 1000 per request. Min items: 1Max items: 1000 |
domains[].domainrequired | string | The domain name to look up (e.g., ’example.com’). Min length: 1 |
domains[].force | boolean | Bypass 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. |
domains[].record_type | string | DNS record type to query. If omitted, queries default types. AAAAACNAMEMXNSTXTSOAPTRSRVCAADNSKEYDSRRSIGNSECTLSANAPTRSSHFP |
Input schema (JSON)
{
"additionalProperties": false,
"properties": {
"domains": {
"description": "Array of domains to look up. Maximum 1000 per request.",
"items": {
"properties": {
"domain": {
"description": "The domain name to look up (e.g., 'example.com').",
"minLength": 1,
"type": "string"
},
"force": {
"description": "Bypass 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"
},
"record_type": {
"description": "DNS record type to query. If omitted, queries default types.",
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"NS",
"TXT",
"SOA",
"PTR",
"SRV",
"CAA",
"DNSKEY",
"DS",
"RRSIG",
"NSEC",
"TLSA",
"NAPTR",
"SSHFP"
],
"type": "string"
}
},
"required": [
"domain"
],
"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.