Domain History Contact OSINT - Previous Owner + WHOIS History

io.github.AnshumanAtrey由 GitHub 帳號 AnshumanAtrey 發布v1.0.23更新於 Oct 29, 2026

Domain History Lookup - WHOIS History + Past Owner Contacts

發布方自己的服務:osint.foundation

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取安全與監控資料與分析

概覽

AI 產生的概覽

託管於 Apify 的 OSINT 伺服器,可掃描網域歷史,找回歷來擁有者、聯絡方式和註冊資訊,即使網站已下線或網域已過期。

可以做什麼
  • 對一個或多個網域執行網域歷史掃描,可選擇深度與要產生的報告區塊
  • 擷取附出處的聯絡方式:電子郵件、電話、人物與組織,每筆都附來源網址和擷取日期
  • 取得註冊與歸屬資訊:RDAP 註冊人、註冊商、事件、名稱伺服器,以及選用的 WHOIS 歷史
  • 檢視目前與歷史 DNS、憑證歷史、附地理定位的歷史 IP,以及封存中的伺服器回應標頭
  • 蒐集追蹤 ID、網站歷史版本,以及來自 urlscan.io、Arquivo.pt、Common Crawl 和公開程式碼的引用
  • 讀取依來源的涵蓋報告與摘要列,了解哪些來源有回應、為空或被限流
適用情境
適合需要查明某網域過去歸誰所有,或某個已下線、停放或被清理的網站由誰經營的情況。適用於盡職調查、詐欺調查、購買過期網域、新聞報導與法律蒐證,且每項發現都需附來源網址和日期。
執行需求
遠端 MCP 端點 mcp.apify.com,使用 OAuth 驗證;需提供 Apify API 權杖,以 Authorization Bearer 標頭傳送,執行費用計入該 Apify 帳戶。可選填 SecurityTrails 或 Whoxy API 金鑰作為輸入,以取得 WHOIS 與 DNS 歷史。存取公開封存與查詢來源的網路請求由託管執行處理。
安裝前請注意
每次執行都會產生費用:按網域收取掃描費,並依聯絡人與提及項目另外計費,建議設定支出上限。Apify 權杖可存取你的帳戶與計費。結果包含歷來擁有者的姓名、電子郵件和電話等個人資料,使用須遵守適用的隱私法規。掃描會將網域查詢傳送給第三方來源,包括網頁封存、憑證日誌和公開程式碼搜尋。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Domain History Contact OSINT - Previous Owner + WHOIS History,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.AnshumanAtrey%2Fdomain-history-contact-osint/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "domain-history-contact-osint-previous-ow": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=anshumanatrey/domain-history-contact-osint"
    }
  }
}

README

Domain History Contact OSINT - Previous Owner + WHOIS History

Domain history and previous owner lookup for dead, expired and parked domains. WHOIS history, Wayback Machine pages, and the owner's emails, phones, people and organisations, each with a source URL and capture date.

Available as an Apify Actor. $0.25 per domain scan + $0.02 per contact found. One input field, no API key needed.


What does it do?

You type a domain and press Start. You get who owned it and how to reach them, even when the website is gone, as a table where every row carries the URL and capture date it came from. It reads 14 public sources, works on domains that no longer resolve, and always finishes with a report that says which sources answered and which did not.

  • Contacts with provenance. Emails, phones, people and organisations. One dataset row per contact per source, each with sourceUrl, snapshotTimestamp, replayUrl and extractionMethod. One row is one claim you can cite.
  • People and organisations, with roles. A multilingual named-entity model reads the rendered archived pages. Each person carries a role when the page stated one ("Founder", "Geschäftsführer"), a worksFor when a company sat next to the name, a relation flag (site = part of the site itself, mention = named in its content) and the visible snippet the name was read from.
  • Registration. RDAP registrant and organisation where not redacted, registrar, the registrar abuse contact, creation and expiry events, nameservers. WHOIS history back to 2008 with a free SecurityTrails key, or from 2012 with a Whoxy key: pre-GDPR registrant names, emails and phones.
  • DNS now and then. Current A, AAAA, MX, NS, TXT and SOA, historical nameservers and historical IPs from passive DNS, each IP geolocated to country, city, ISP and AS number. SaaS verification tokens in TXT are flagged because they tie a domain to named vendors.
  • Certificate history. Every hostname that ever appeared in a certificate for the domain. Certificates outlive domains.
  • Past versions of the website. Archived pages sampled across the domain's whole lifetime and weighted toward contact, about, team, imprint, careers, management and board pages.
  • Server software. The dead origin's own response headers, recovered from the archive. From a domain offline for years: Apache/1.3.36 (Unix) ... PHP/4.4.2 FrontPage/5.0.2.2635 mod_ssl/2.8.27 OpenSSL/0.9.7a.
  • Tracking IDs. Google Analytics, GTM, AdSense, Google Ads, Segment, Optimizely, Hotjar, Mixpanel and Meta pixel IDs from the archived bytes. Reverse-look these up to find every other domain the same owner ran.
  • Inbound references. Who else mentioned this domain: urlscan.io submissions, Arquivo.pt full-text archive hits, Common Crawl, and public source code on grep.app. Config files and mail settings name real addresses.
  • A per-source coverage report. Which sources answered, which held nothing, and which throttled you. Throttled is reported as unknown, not as empty.

How is it different from a contact scraper or a WHOIS history service?

This actorContact scrapers on ApifyWayback-only toolsWHOIS history services
Works when the site is offlineYesNoYesRecords only
Source URL and capture date on every contactYes, on every rowNo, flat arraysOne URL per valueNot applicable
Named people with job titlesYesNoNoRegistrant only, mostly redacted since 2018
Registration, certificates, passive DNS, public codeYesNoNoWHOIS only
Price$0.25 per scan + $0.02 per contact, $0.002 per mentionAbout $0.002 per page$0.0035 per snapshot$2 per 1,000 lookups (Whoxy) up to enterprise contracts (DomainTools)
SetupNoneNonepip or self-host for the open-source onesAccount and credits

Three measurements behind that table. On one dropped domain the archived contact page held 0 addresses, while certificate transparency returned 2,644 certificates and public code search returned 3 genuine addresses: the extra sources are where dead domains still answer. The largest contact scraper on the Store (58,952 users) returns a flat array of pages next to a flat array of emails with no mapping between them, which looks like provenance and is not. And since GDPR in 2018, the registrant on current WHOIS is redacted for most domains, so a named owner comes from archived pages, certificates and WHOIS history, not from today's record.

Two open-source tools deserve a mention. WayTrace and kronikier both mine web archives for historical contacts and both are MIT. If archives are all you need, use them. This actor exists for the case where the archive is thin and you still need an answer, which is the normal case on a fully dropped domain.

When should I use it?

  • You need to find out who owned a domain in the past, or who ran a website that is now offline.
  • A counterparty, supplier or "company" you are checking has a website that has vanished, been scrubbed or been parked, and you need the people behind it.
  • You are investigating fraud, a scam or financial crime and every finding must carry a source URL and date you can put in a report.
  • You are buying an expired domain and want to know what it used to be, who ran it, and which analytics IDs tie it to other sites.
  • You are a journalist or in legal discovery and need the Wayback Machine mined for emails and phone numbers with the capture date on each hit.
  • You want to contact the previous owner of a domain, for a purchase, a takedown, or a transfer.

What does it cost?

Pay-per-event. You pay for the scan and for what it finds; platform compute is included.

EventPriceWhen it fires
Domain scan$0.125 per GB of run memory, so $0.25 at the default 2 GBOnce per domain, at any depth. Covers the archive crawl, page rendering, the entity model, registration, DNS, certificate and reference lookups, and the coverage report
Contact with source$0.02Per row that identifies someone: an email, a phone number, a person or organisation that is part of the site, or a registrant detail from WHOIS history, certificates or public code
Mention$0.002Per row naming a person or organisation that only appears in the site's content, such as a company in a biography. A tenth of a contact, kept for context

On paid Apify plans the contact and mention prices are 10% less on Scale ($0.018 and $0.0018) and 20% less on Business and above ($0.016 and $0.0016); the domain scan fee is the same on every plan.

The summary row is free.

Typical scan costs

Row counts measured on the platform at Standard depth (Quick, the default, finds most of the same contacts from fewer pages); prices at the default 2 GB:

  • Small dead site (youthgrowyouth.in): 6 contacts + 36 mentions, $0.44
  • Sparse result (yikyakapp.com): 3 contacts, no mentions, $0.31
  • Large corporate archive (theranos.com, 231 rows): 47 contacts + 183 mentions, $1.56
  • Nothing recoverable: $0.25, the scan plus the free summary row that says why

A Quick run takes about 3 minutes at 2 GB and Standard about 6; raising memory to 4 GB roughly halves the time and doubles the scan fee. Deep depends on how much the archive holds. Set a spending limit on the run for a hard cap; the summary row says so if it was reached. A run also always finishes inside its own timeout: when the timeout comes before the scan is done, the report is written with what was read and says which pages and sources were left, as unknown rather than absent. Raise the timeout under Run options to read the rest.

Which inputs does it take?

FieldRequiredWhat it does
domainsYesOne domain, or several, one per line. Full URLs and www. are cleaned automatically
depthNoquick (about 30 archived pages, about 3 minutes, the default), standard (about 120), deep (up to 500)
sectionsNoWhich of the 8 report sections to build. All are ticked by default. Unticking "Saved copies of the old website" makes the run about 10x faster
securityTrailsApiKeyNoDated DNS history and WHOIS history back to 2008. Free tier: 2,500 queries a month, no card
whoisHistoryApiKeyNoWhoxy WHOIS history from 2012 at $0.005 per lookup. Pre-GDPR registrant names, emails and phones

What does the output look like?

Each dataset record is one contact from one source. A person row from a real run, with the sightings array cut to one entry:

json
{  "domain": "youthgrowyouth.in",  "type": "person",  "value": "Anshuman Atrey",  "role": null,  "worksFor": "Youth Grow Youth",  "relation": "site",  "pagesSeenOn": 14,  "confidence": "high",  "sourceType": "wayback",  "sourceUrl": "https://youthgrowyouth.in/businesses/",  "snapshotTimestamp": "20230605184117",  "replayUrl": "https://web.archive.org/web/20230605184117id_/https://youthgrowyouth.in/businesses/",  "extractionMethod": "ner",  "occurrences": 40,  "firstSeen": "20230605184117",  "lastSeen": "20240328173211",  "snippet": "Copyright © 2023 Youth Grow Youth | Created with ❤ by Anshuman Atrey",  "sightings": [    {      "sourceType": "wayback",      "sourceUrl": "https://youthgrowyouth.in/businesses/",      "snapshotTimestamp": "20230605184117",      "replayUrl": "https://web.archive.org/web/20230605184117id_/https://youthgrowyouth.in/businesses/",      "extractionMethod": "ner",      "pageId": 1,      "context": { "role": null, "worksFor": "Youth Grow Youth", "snippet": "Copyright © 2023 Youth Grow Youth | Created with ❤ by Anshuman Atrey" }    }  ]}

An email row. This address was hidden behind Cloudflare's email obfuscation on the page and decoded:

json
{  "domain": "youthgrowyouth.in",  "type": "email",  "value": "[email protected]",  "confidence": "medium",  "sourceType": "wayback",  "sourceUrl": "https://youthgrowyouth.in/businesses/",  "snapshotTimestamp": "20230605184117",  "replayUrl": "https://web.archive.org/web/20230605184117id_/https://youthgrowyouth.in/businesses/",  "extractionMethod": "cloudflare-xor",  "occurrences": 54,  "firstSeen": "20230605184117",  "lastSeen": "20240328173211"}

The last row for each domain is a summary, so a domain with nothing recoverable still tells you why:

json
{  "domain": "youthgrowyouth.in",  "type": "summary",  "value": "40 contact(s). 6 of 8 sections complete. 2 section(s) have gaps - check the notes for which to re-run.",  "occurrences": 40,  "status": "nxdomain",  "firstSeen": "2023-06-05",  "lastSeen": "2024-05-24",  "reportKey": "REPORT-youthgrowyouth.in"}

The full report is the run's OUTPUT record (Console: the Output tab; API: the default key-value store, key OUTPUT). Shortened:

json
{  "domain": "youthgrowyouth.in",  "status": { "state": "nxdomain", "isDead": true, "aliveFrom": "2023-06-05", "aliveUntil": "2024-05-24" },  "results": {    "contacts":     { "found": 40, "breakdown": { "email": 2, "organization": 29, "person": 9 }, "items": ["..."] },    "ownership":    { "status": "not_registered", "registrar": null, "events": ["..."], "whoisHistory": "when a key is set" },    "subdomains":   { "found": 3, "certificatesAnalysed": 12, "items": ["..."] },    "hosting":      { "lastKnownIp": "…", "dnsHistory": { "historicalIps": [{ "ip": "…", "country": "…", "isp": "…" }] } },    "old_pages":    { "found": 30, "capturesInArchive": 38, "coveringYears": ["2023", "2024"], "items": ["..."] },    "server_tech":  { "items": ["LiteSpeed"] },    "tracking_ids": { "items": [{ "value": "G-XXXXXXXX", "kind": "google-analytics-ga4", "proof": "…" }] },    "mentions":     { "urlscan": "…", "arquivo": "…", "publicCode": "…", "commonCrawl": "…" }  },  "coverage": { "plainEnglish": "6 of 8 sections complete.", "bySection": { "contacts": { "status": "complete" }, "mentions": { "status": "incomplete", "note": "grep.app unreachable. This is UNKNOWN, not absent. Re-run." } } }}

Common questions

Q: How do I find out who owned a domain in the past? Run this actor on the domain. The contacts table lists the people and organisations that appeared on the archived site with relation: site, the emails and phones with the page and date each came from, and the registration record. Add a free SecurityTrails key and the ownership section gains dated WHOIS history back to 2008.

Q: Does it work if the website is offline or the domain has expired? That is the point. A dead domain is the expected input. The run always completes with a populated table and report; if a source held nothing the report says so, and if the archive throttled the run it says the data is unknown rather than absent, so you re-run instead of concluding there was nothing there.

Q: Is WHOIS history included, and is it free? Current registration (RDAP) is always included and free. Historical WHOIS is a paid dataset everywhere; this actor accepts your own key so you pay the provider directly and nothing on top. SecurityTrails gives 2,500 queries a month on its free tier with no card. Whoxy charges $0.005 per lookup and nothing when a domain has no history.

Q: How accurate are the people and organisation names? The entity model was chosen by a bake-off across a WordPress blog, a hand-built site and a German Impressum, 13 ground-truth names: 12 of 13 recovered, one false positive, removed by a two-word rule. On theranos.com's 2013 to 2015 archive it returned the full board and executive team with no site-specific code. Every name carries its snippet, so you read the evidence yourself, and relation separates the site's own people from names in its articles.

Q: What does "UNKNOWN, not absent" mean? archive.org, grep.app and crt.sh all rate-limit or fail on occasion. When that happens the affected section is marked incomplete with the reason, and the summary row repeats it. An empty section with status complete means the source answered and there was genuinely nothing.

Q: Why did my run return only a summary row? Nothing was recoverable for that domain from the sources you selected. Read the summary row: it says whether the sources were checked and empty, or unreachable. If unreachable, re-run later. If empty, try Deep depth or add a WHOIS history key.

Q: Can I scan many domains at once? Yes, one per line in the domains field. Each domain gets its own block of rows and its own REPORT-<domain> record; OUTPUT holds the list.

Q: What about single-page apps and JavaScript-heavy sites? Archived HTML is rendered in a headless browser and inline scripts run, so JavaScript-injected contacts are recovered. Script bundles hosted on the dead origin cannot load, so a site that drew everything from an external bundle will yield less. Certificates, DNS, registration and public code still answer.

Q: Is this legal to use? Every source is public: web archives, certificate transparency logs, registration records, passive DNS and public code. Nothing is fetched from the live site beyond a DNS lookup. Use it for legitimate investigation, due diligence, research and recovery, and handle personal data under the law that applies to you.


About the maintainer (priority response within 1-2 hours)

Built and maintained by Anshuman Atrey (@AnshumanAtrey).

  • Purple-team security researcher, 5x hackathon winner
  • Co-founder of Walrus Securitas (AI cybersecurity SaaS) and The Drone Syndicate (autonomous defence drones)
  • Author of the canonical OSINT actor portfolio on Apify Store: 15 shipped actors covering email, phone, username, IP and domain, network, secret, social, LinkedIn, domain history and Indian fintech OSINT

Custom feature requests shipped within 1-2 hours (priority)

If you have a use case this actor does not cover, the maintainer ships custom additions (new fields, new modes, new sources, new output formats) directly into this actor, typically within 1-2 hours for priority requests during active hours and within 24 hours overnight, for legitimate security research, OSINT investigation, compliance, fraud detection and authorised penetration testing. This is direct one-to-one service from the maintainer, not a contractor queue.

Fastest contact channels (ranked by response speed):

  1. LinkedIn DM -> linkedin.com/in/anshumanatrey, typically under 1 hour during active hours
  2. GitHub issue on this actor's repo
  3. Apify Console DM to @anshumanatrey
  4. Email via atrey.dev

The maintainer also takes paid custom OSINT and security-tooling engagements through atrey.dev: bespoke scanners, vendor-specific integrations, India-specific compliance pipelines (UPI, IFSC, GSTIN, PAN, Aadhaar), and end-to-end OSINT systems beyond what a single actor can express.


Sibling actors in the same OSINT portfolio

When your need extends beyond this actor's scope, the matching sibling is maintained by the same author on the same 1-2 hour priority custom-feature-request SLA via LinkedIn:

ActorUse case
holehe-email-osintEmail -> registered accounts across 120+ platforms
theharvester-osintDomain -> emails + subdomains + IPs from 54+ public sources
social-analyzerUsername -> profiles across 900+ social sites with confidence scoring
phoneinfoga-phone-osintInternational phone -> country, footprint URLs, OSINT trail
nmap-scannerNetwork -> port + service + version detection, NSE scripts
netintelIP or domain -> unified WHOIS + DNS + GeoIP + ASN + ports
bug-bounty-finderDomain -> active HackerOne + Bugcrowd + security.txt programs
instagram-profile-intel-no-loginInstagram username -> bio emails + phones + 25 fields (no login)
telegram-channel-scraperPublic Telegram channel -> posts, media links, inline buttons, reactions (no login)
gitleaks-github-secret-scannerGitHub -> leaked API keys across 30+ services
betterleaks-cloudGitHub + S3 -> leaked secrets with live vendor-API validation
upi-id-osintIndian phone or VPA -> active UPI IDs + bank-registered name from NPCI
linkedin-harvesterEmail -> best-match public LinkedIn profile URL + confidence score

Documentation

Last updated

2026-09-11 (version 1.0)

來源:README.md,提交 31e5dcd

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

5
  1. v1.0.23最新Oct 29, 2026
  2. v1.0.22Oct 7, 2026
  3. v1.0.21Oct 6, 2026
  4. v1.0.20Sep 25, 2026
  5. v1.0.19Sep 24, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Osint 整合