acme.com. It collects the hosts under that domain from DNS records, certificate logs and internet-wide scan data, resolves each one to an IPv4 address, and attaches the open ports, known CVEs and network owner of that address.
The scan is passive. It reads public datasets and live DNS, and never connects to services on your hosts. In the dashboard the same scan is Exposure → Attack Surface Discovery, and scans started in either place share one history and one allowance.
The flow is asynchronous: start a scan, poll it until it ends, then read the hosts and the summary.
How it differs from other searches
Infra search is not quick search. Pick by what you need back.Availability and cost
Availability: Attack Surface Mapping, included in every edition. Cost: 1 unit of your monthly Attack Surface Mapping allowance for each scan you start. The unit is taken before the scan is created and refunded ifcreate_infra_search_request returns an error. Polling, reading hosts, statistics and deletes use no scan units. A scan that ends failed keeps its unit, and so does a scan you delete.
Without the feature, or when your license is not active, the four scan endpoints (create_, list_, get_ and delete_infra_search_request) return 403:
create_infra_search_request returns 429 and no scan is created:
limit is your monthly scan allowance. A 429 whose body reads "message": "Rate limit exceeded" is the request rate limit, not the scan allowance. Retry after retry_after_seconds.
What a scan collects
The scan runs four sources in this order. Each host name and IP pair it keeps becomes one result, and the result’stype names the source that found it.
Four rules decide what comes back:
- Only the domain and its subdomains.
acme.comandvpn.acme.comare kept.acme-login.comis not. - IPv4 only. Certificate names are resolved to their first A record. A name that does not resolve is dropped.
- Each source adds new addresses. A source skips any IP an earlier source already reported.
- Enrichment comes from datasets, not probes. Every IP is looked up in Shodan’s InternetDB for open ports and CVEs.
CrtSH,KaduuLeakCenterandZoomEyehosts also get reverse DNS and network registration (ASN, provider, country).DNSDumpsterhosts carry DNSDumpster’s own network data.
Run a scan
1
Start the scan
create_infra_search_request takes one field, search_term: required, 1 to 255 characters.201 with the scan:id. A scan you start here runs once. is_monitoring, alert_cycle and is_email are monitoring settings this endpoint does not set. is_reporting and report_id are filled only on scans that a report started.2
Poll until it ends
Fetch the scan with
get_infra_search_request, passing its id in the path, until status is no longer in_progress.status takes three values:in_progress— still running.finished— done. Read the hosts.failed— done, with an error. This is final: the platform does not retry it. It can still hold the hosts found before the failure. Start a new scan to try again, which uses another unit.
in_progress.Every scan ends. A scan stops itself 50 minutes after it starts, keeps the hosts found so far, and ends
finished. The response does not mark a scan that hit this cap. A scan that stalls is set to failed 65 to 75 minutes after it starts. A scan that never starts is set to failed within 10 minutes of turning 24 hours old.3
Read the hosts
list_infra_search_result returns the hosts of one scan. Pass the scan id as searchrequest.searchrequestis required and must be a UUID. Without it the call returns400.pageis 1-based.page_sizedefaults to100, max1000.- There is no other filter, no sort parameter and no guaranteed order. Page through the list after
statusleavesin_progress: paging a running scan can skip or repeat hosts. - Page by raising
pageuntilnextisnull. ThenextandpreviousURLs point at the internal scanning service, not atclient-api.leak.center, so don’t call them.
What each host gives you
domain— the host name found.ipv4— the IPv4 address it resolves to. Can be empty.type— the source that found it. See What a scan collects.shodan_data— the Shodan InternetDB record for the IP: openports, knownvulnsas CVE IDs,cpes,hostnamesandtags. These are what Shodan last observed, not a live check. It is{}when Shodan has no record for the IP or the lookup failed.metadata— network details for the IP:reverse_dns,as(the AS number and range onDNSDumpsterhosts, the AS description on other hosts),provider(the network owner) andcountry.metadata.typeis the DNS record kind onDNSDumpsterhosts:dnsfor an A record,mxfor a mail server,hostfor a name server. On other hosts it isdnswhen the network lookup ran and empty when it was skipped, for example for a private IP.headeris always empty.date_created— the day the host was saved.id— the result ID, for the single-host and delete calls.searchrequest— the scan the host belongs to.
get_infra_search_result with its result id, not the scan id.
Summary statistics
get_infra_search_stats returns three counts for one scan. Pass the scan id as searchrequest.
servers_with_unusual_ports— hosts with at least one open port other than 25, 53, 80, 443, 465 and 587.servers_with_reported_vulns— hosts whoseshodan_datalists at least one CVE.servers_with_unusual_names— hosts whose name contains a fragment that hints at admin, dev or test, database, internal, repository, monitoring or other sensitive use, such asadmin,staging,db,vpn,intranet,repoorzabbix.
ci, db, server and static also match inside longer words. If your domain itself contains a fragment, for example ci inside financial, every host counts.
A scan with no hosts returns 404 with {"message": "No search results found for the given search request ID"}, whether it is still running or finished with nothing found. Read it as all three counts being zero.
List past scans
list_infra_search_request returns your organization’s scans, newest first, including the ones started from Attack Surface Discovery in the dashboard.
pageis 1-based.page_sizedefaults to20, max100.orderingtakescreate_date,-create_date,update_dateor-update_date. The default is-create_date.- Page the same way as the host list: raise
pageuntilnextisnull.
is_reporting: true was started by a report and did not use your Attack Surface Mapping allowance.
Clean up
Both deletes are permanent and return204. Delete a scan only after it leaves in_progress. A scan deleted while running keeps running and is saved again when it ends, so it reappears in the scan list as failed or finished with no hosts.
delete_infra_search_resultremoves one host. Statistics recount from the hosts that remain.delete_infra_search_requestremoves the scan and all of its hosts.