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 集成