A quick search on a domain runs the lookup. A quick search on a brand runs the scan. See Quick search.
Availability: Expert Search, included in every edition.
Cost: no metered allowance. With an API key, each call that returns
2xx uses 1 unit of your monthly API Calls allowance, and a non-2xx response is refunded. Every call also counts toward the per-second rate limit. See Rate limits.
Look up a domain
phishing_search checks nine phishing and blocklist feeds for a domain. The answer comes back in the same response.
source takes one of these feed names, spelled exactly:
Phishtank · Phishhunt · Openphish · Phishing Army · Phish Stats · Hagezi CTI Feed · ShadowWhisperer BlockLists · Mitchellkrogza Phishing List · Malware Filter
The response holds a count of matching entries across all pages and the entries of this page in results. There are no next or previous links: page with page until you have read count entries.
domain— the domain the feed lists.url— the listed URL.db— the feed that lists it, one of thesourcenames.created_at— when the entry was recorded, in UTC.date_fromanddate_tofilter on it.
Scan the feeds for a term
The scan reads DarknetSearch’s own copies of four phishing feeds and keeps every URL that contains your term.
How the scan matches:
- Case-sensitive substring of the whole URL.
acmematcheshttps://acme-login.com/verifyandhttp://login.example/acme/.Acmedoes not match either. - A full domain only matches URLs that contain it literally.
acme.commissesacme-login.com. Send the shortest distinctive lowercase token of your brand. - About the last 90 days. The feed copies are refreshed once a day, and an entry is dropped 90 days after DarknetSearch first stored it.
1
Start the scan
create_phishing_search_request takes one field, search_term: required, up to 255 characters.201 with the scan:id. A scan you start here runs once and does not refresh. is_monitoring, alert_cycle and is_email are monitoring settings this scan does not use. is_reporting and report_id are filled only on scans that a report started.2
Poll until it ends
Fetch the scan with
get_phishing_search_request until status is finished.status is in_progress while the scan runs and finished when it ends. There is no failed state: a scan that hits an error also ends finished, with the URLs matched so far. Poll every 10 seconds or slower.3
Read the URLs
list_phishing_search_result returns the URLs of one scan. Pass the scan id as searchrequest.searchrequestis required.pagestarts at1.page_sizedefaults to100, max1000.- The response holds
count,next,previousandresults.nextandpreviouspoint at an internal service, so page by raisingpageuntilnextisnull.
What each scan result means
Each result is one URL.link, source, date_created, id and searchrequest mean the same on every row. The other fields depend on the feed, so read source first.
link— the URL the feed lists.source— the feed it came from.date_created— the date DarknetSearch first stored the feed entry (YYYY-MM-DD).id— the result ID, for the single-result and delete calls.searchrequest— the scan it belongs to.
verified and online are the feed’s status when the scan ran. For URLhaus, online is the status when DarknetSearch first stored the entry (date_created). Keeping only rows where verified or online is true drops every OpenPhish and Phishunt row, so read them together with source.
get_phishing_search_result with its id.
To follow a host from a result, search it in New domain registrations to see when it was registered, or in SSL transparency logs to see its certificates.
Monitor a domain
To receive new feed entries for a domain without repeating the lookup, create a monitor on the Phishing service (11 in the service list) with {"domain": "acme.com"} as args. It runs the same lookup as phishing_search, so each match carries domain, url, db and created_at. See Create and manage monitors and Read and triage monitor matches.
List and delete scans
list_phishing_search_request returns your organization’s scans, newest first.
pagestarts at1.page_sizedefaults to20, max100.orderingtakescreate_date,-create_date,update_dateor-update_date. Default-create_date.
204 and are permanent. Delete a scan only after it is finished.
delete_phishing_search_resultremoves one result.delete_phishing_search_requestremoves the scan and all of its results.