Passive discovery sources

Subdomain discovery (passive_enum) asks subfinder’s sources. Some need no key and are always used: anubis, commoncrawl, crtsh, digitorus, hudsonrock, rapiddns, scanmalware, shodanct, sitedossier, thc, threatcrowd, waybackarchive. The rest are queried only when their key is set in .env, one per line with nothing after the value — a trailing comment becomes part of the key. The worker checks this list against what subfinder actually reads at start and warns in its log if a source has been renamed, so a key is never silently ignored.

The tables follow the order of .env.example. Each link is where the account is created or the key is found.

Certificate transparency and DNS history

Variable Service
CERTSPOTTER_API_KEY https://sslmate.com/certspotter/ — key under your account
DNSDB_API_KEY https://www.farsightsecurity.com/solutions/dnsdb/ (DomainTools); free community key at https://www.farsightsecurity.com/dnsdb-community-edition/
DNSDUMPSTER_API_KEY https://dnsdumpster.com/ — sign in, then the API page
DNSREPO_API_KEY https://dnsrepo.noc.org/
MERKLEMAP_API_KEY https://www.merklemap.com/ — API keys in the dashboard
SECURITYTRAILS_API_KEY https://securitytrails.com/app/account/credentials
WHOISXMLAPI_API_KEY https://whoisxmlapi.com/ — My products → API key

Internet-wide scan indexes

Censys and FOFA take two parts; the worker joins them the way subfinder wants (ID:SECRET and EMAIL:KEY). Set both halves or neither — half is ignored.

Variable Service
CENSYS_API_ID / CENSYS_API_SECRET https://search.censys.io/account/api
FOFA_EMAIL / FOFA_API_KEY https://en.fofa.info/ — personal center → API
FULLHUNT_API_KEY https://fullhunt.io/ — settings → API
NETLAS_API_KEY https://app.netlas.io/ — profile → API key
ONYPHE_API_KEY https://www.onyphe.io/ — my account → API key
QUAKE_API_KEY https://quake.360.net/ — personal center → API key
SHODAN_API_KEY https://account.shodan.io/
ZOOMEYE_API_KEY https://www.zoomeye.org/ — profile → API key (subfinder calls this source zoomeyeapi)

Threat intelligence and reputation

Variable Service
ALIENVAULT_API_KEY https://otx.alienvault.com/api — settings → OTX key
LEAKIX_API_KEY https://leakix.net/ — account → API
THREATBOOK_API_KEY https://x.threatbook.com/ — member center → API
URLSCAN_API_KEY https://urlscan.io/user/profile/
VIRUSTOTAL_API_KEY https://www.virustotal.com/gui/my-apikey

Recon platforms and aggregators

Hackertarget, reconeer and submd work without a key and return more with one. IntelX takes two parts, joined as HOST:KEY; the host is shown next to the key and looks like 2.intelx.io.

Variable Service
BEVIGIL_API_KEY https://bevigil.com/osint-api
BUFFEROVER_API_KEY https://tls.bufferover.run/
BUILTWITH_API_KEY https://api.builtwith.com/
C99_API_KEY https://api.c99.nl/
CHAOS_API_KEY https://cloud.projectdiscovery.io/ — ProjectDiscovery Cloud → API key
CHINAZ_API_KEY https://apidatav2.chinaz.com/
DIGITALYAMA_API_KEY https://digitalyama.com/
DOMAINSPROJECT_API_KEY https://domainsproject.org/
DRIFTNET_API_KEY https://driftnet.io/ — account → API
HACKERTARGET_API_KEY https://hackertarget.com/ — membership → API key
INTELX_HOST / INTELX_API_KEY https://intelx.io/account?tab=developer
PROFUNDIS_API_KEY https://profundis.io/
PUGRECON_API_KEY https://pugrecon.com/
RECONEER_API_KEY https://reconeer.com/
REDHUNTLABS_API_KEY https://redhuntlabs.com/ — attack surface recon API
ROBTEX_API_KEY https://www.robtex.com/api/
RSECLOUD_API_KEY https://rsecloud.com/
SUBMD_API_KEY https://submd.io/
WINDVANE_API_KEY https://windvane.lptr.top/
Variable Service
GITHUB_TOKEN https://github.com/settings/tokens — a classic token with no scopes is enough

Checking what is configured

The worker logs the sources it has credentials for at start:

passive sources configured  count=3  sources="[censys github shodan]"

A variable set here but missing from that line was not read: check the spelling against .env.example, and that nothing follows the value on its line.