acme-login.com is often registered days or weeks before the first phishing mail or fake sign-in page goes out. This source shows you those registrations while they are still new.
It collects newly registered domains from 9 feeds: WHOIS and registrar lists, newly-registered-domain threat feeds and certificate transparency logs. The index keeps one record per domain, so a domain that several feeds report appears once.
Every call is synchronous. The answer comes back in the same response.
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.
When your license is not active, all four endpoints return 403:
Pick an endpoint
Search by keyword
Send your brand asdomain to domain_search_keyword. To search several terms in one call, separate them with commas.
- The term is lowercased.
- Subdomains and the public suffix are removed, including two-part suffixes such as
.co.uk.acme.comandlogin.acme.comboth search foracme. - Duplicate names are dropped, so
acme.com,login.acme.comruns one search. - The name is matched as a case-insensitive substring anywhere in the registered domain.
acmereturnsacme-login.comandportal.acme-login.com.
ab is rejected, with or without a suffix.
Omit start_date and end_date to search the whole index.
Narrow the matches
Three optional conditions cut the noise of a substring match. When you pass more than one, a domain must meet all of them.Result cap
Request parameters
Dates without a timezone are read as UTC.
What comes back
The envelope carries the paging state. The domains are inresults.
count— matches across all pages. At most10000on a keyword search.total_pages— pages available at the currentpage_size.next/previous— the URLs of the adjacent pages on this API, ornullat the ends.results— one record per domain:domain— the registered domain.source— the feed that first reported it.created_at— when the index first recorded it, as an ISO 8601 UTC timestamp.
created_at is when the index first recorded the domain, not the registrar’s registration timestamp. When several feeds report the same domain, the first one to report it is the source, and later reports add no new record.Reading the results
Each hit is a registration, not an attack. The name tells you what it imitates:- Sign-in names.
acme-login,acme-ssoandacme-verifyimitate a login page. - Payment and support names.
acme-billingandacme-supportimitate invoices, refunds or help desks. - Typos and other TLDs. A swapped character or a different TLD next to
acme.comcatches mistyped addresses and mail. - Your own registrations. A regional site or campaign domain your organization registered matches too.
- SSL transparency logs show whether certificates have been issued for it.
- Phishing references show whether phishing feeds list it.
- Domain monitoring generates look-alike variations of your domain and checks them against new registrations and certificate logs for you.
Monitor new registrations
To receive new matches without repeating the search, create a monitor on the Domain Search service (16 in the service list) with your terms as args:
Browse the daily feed
domain_search_list returns every new domain in a date range, with no keyword. The response has the same shape as the keyword search.
- It takes no
domain. Filter withstart_date,end_dateandsource. - Omitted dates default to today (UTC), not to the whole index. Set them for any other day.
- It has no 10,000 cap.
countis every domain in the range.
page_size, or export the range in one file.
Export
domain_search_export returns a file instead of JSON. The columns are Domain, Source, Created At and Updated At, with timestamps in ISO 8601.
domain decides what the file holds:
- With
domain, the file holds every match for those terms. The keyword rules apply, the dates are optional bounds, and there is no 10,000 cap. - Without
domain, the file holds the date range, which defaults to today (UTC).
source and ordering work as on the search endpoints. file_format is csv (default) or xlsx. The server names the file domain_registrations_<terms> or domain_registrations_<start>_to_<end>.
Feeds
Nine feeds supply new domains, once a day:Whoisfreaks · Shreshta Labs Weekly · Shreshta Labs Monthly · CENK NRD · SSL Logs · Whoisextractor · Codepunch · Hagezi NRD7 · Opensquat
source also accepts three older feed names: NITT, xRuffKez NRD 14-day and xRuffKez NRD 14-day DGA. These feeds no longer deliver new domains, so filtering on them returns only older records.
source takes these names in two ways:
- Keyword search, list and export take one or more names, comma-separated, in any letter case. An unknown name returns
400. - Stats takes one name, spelled exactly as listed here.
source off unless you are checking a specific feed.
Feed volume and health
domain_search_stats reports how many domains each feed delivered and whether its last run worked. Check it when a search returns nothing: a failing feed leaves a gap in the window you searched.
start_date and end_date default to today (UTC). The counts cover the feed runs in that range.
totals—unique,duplicateandtotal_fetchedacross the range.uniquedomains were new to the index.duplicatedomains were already in it.by_day— the same three counts per day, each day with its ownby_sourcebreakdown.by_source— the three counts per feed across the range, sorted by feed name.sources_health— the current state of each feed:name,is_healthy,last_run_at,last_status_codeandlast_error. It does not depend on the date range.
is_healthy: false means the feed’s last run failed, so its coverage is missing until a run succeeds. last_run_at: null means the feed has not run yet.