- Choose openSquat for a GPL-3.0 CLI you can inspect and script against your own domain list, or for low-cost hosted keyword alerts. openSquat's free Community plan includes one daily email alert, paid plans start at USD 29 a month, and Slack and Microsoft Teams alerts start at USD 49 a month. The free daily feed and the Community and Starter plans are for non-commercial use only. 1–16
- Choose Have I Been Squatted for continuous detection of malicious domains, starting from lookalikes it generates, with registration, hosting and mail evidence where available, and rules that alert, block or request a Takedown. 17–27
- Use both if you already match keywords with openSquat and want Have I Been Squatted to generate lookalikes of your own domains, enrich each hit and drive the response. 3–9,18–22,25–27
At a glance#
| Have I Been Squatted | openSquat | |
|---|---|---|
| What you get | ||
| What you get | Detection and response for malicious domains17 | Open-source CLI with local keyword matching3 |
| Hosted service | ||
| Hosted service | Monitoring, enrichment, rules and Takedown requests25–27 | |
| Lookalike discovery | ||
| Lookalike discovery | Permutations, certificate transparency, newly registered domains, business context19–20 | Keyword match by edit distance and substring against candidate domains3–9 |
| Newly registered domains | ||
| Newly registered domains | Vendor states gTLD zone files, past 30 days20 | |
| Schedule | ||
| Schedule | Vendor states at least once every 24 hours20 | |
| Alerts and case status | ||
| Alerts and case status | ||
| Alert channels | ||
| Alert channels | ||
| Enrichment on results | ||
| Enrichment on results | Registration, DNS, ports, page semantics, HAR21–22 | |
| Response workflow | ||
| Response workflow | ||
| Price | ||
| Price | Free CLI and Community plan; paid plans from USD 29 a month10 | |
A local CLI, hosted plans and a hosted platform#
openSquat comes in two parts. openSquat Core is a command-line tool you install and run yourself, and hosted plans, from a free Community plan to paid tiers, run on openSquat's own servers. Have I Been Squatted runs only as a hosted service. 2–3,10–13,18–19
openSquat Core is GPL-3.0 code that you can inspect and change, and its default mode matches keywords in a local process, so brand keywords stay on your machine. That mode downloads a free daily feed with no account and uses a checksum file to skip unchanged downloads. The free feed is for personal and research use only, and a company can point openSquat at its own domain file or URL instead. 1–9,11,14,28
The hosted plans run keyword searches on openSquat's servers through an API, which the CLI can also call with an API key. Results come back with per-domain IDN and Unicode fields, and optionally a similarity rating, a risk level, a threat score and threat tags. The free Community plan allows five queries a day with one day of history and 10 results per query. Starter, Professional and Business cost USD 29, 49 and 199 a month, or USD 290, 490 and 1,990 a year. They raise the monthly quota to 300, 1,000 and 10,000 queries, the history window to as much as 30 days and the results to as many as 500 per query. Community and Starter are for non-commercial use, and Professional and Business include a commercial license. 2–4,8,10–13,15–16,29,35,40
Every openSquat hosted plan can schedule daily keyword alerts by email, from one alert on Community to 10 on Business, and Professional and Business also post alerts to Slack and Microsoft Teams. An MCP server on any plan lets an AI assistant run the same searches against the plan's quota. openSquat's home page also advertises a dashboard search with one-click CSV export. A larger newly registered domain feed, NRD Lite, is a separate subscription at USD 39 a month or USD 390 a year. The CLI can download a paid feed with an API key and match it locally. 3–4,10,12–14,16,28–29,33,41–42
Have I Been Squatted is a hosted product, and you do not run a scanner yourself. The twistrs library its permutations are built on is open source under the MIT license, while monitoring, enrichment and response run in the hosted service. Ad-hoc Typosquat and Analyze lookups are free, Domain Monitoring and rules sit on a public self-serve subscription, and a 14-day free trial is available. Takedowns and the email, network, SIEM and canary products are bought through sales. Analysts can also work from AI agents through the MCP server or the Slack app. Organization writes need an admin and the right scopes, MCP marks write tools so the client asks for confirmation, and Slack writes wait for Approve or Deny. 18–21,43–50
How each tool finds lookalike domains#
Both parts of openSquat match keywords you supply against a list of candidate domains, and Have I Been Squatted generates and gathers the candidates itself. By default the openSquat CLI downloads the free feed of about 100,000 newly registered domains per day and runs local Levenshtein distance and substring matching against it. The distance threshold is a confidence level from 0 to 4, and a match also fires when the keyword appears inside the full domain name. Homograph handling transliterates non-Latin characters to Latin before the distance check, so a Cyrillic lookalike can still match. 3–11,19–20,28–29,51

This run checks one keyword, haveibeensquatted, against one daily feed and writes a results file. 3,12–13,38–39
$ opensquat -k keywords.txt --dns -o results.txt -t txt
[*] keywords total: 1
[*] Total domains: 100,000
[*] Threshold: high confidence
+---------- Summary Squatting ----------+
[*] Domains flagged: 0
[*] Domains result: results.txt
[*] Running time: 2.44 seconds
The run covers one day's feed of 100,000 domains, so a lookalike registered on another day is outside it. Running openSquat daily from cron covers each new feed as it arrives. The larger paid feed, your own domain file and the hosted API's history window of up to 30 days each widen the candidate set. openSquat states that its service processes more than 300,000 newly registered domains a day from zone files for over 1,000 TLDs, against about 100,000 in the free feed. The hosted API can also return a risk level, a threat score from 0 to 100, and tags for phishing keywords, homographs, high-abuse TLDs and domains under three days old. openSquat also states that the hosted service scores each domain with Levenshtein distance, homoglyph analysis, IDN decoding and phishing keyword patterns. 3–13,15,28–29,35,40
Have I Been Squatted discovers lookalikes without a keyword or permutation list to maintain. Domain Monitoring combines generated permutations, including homoglyphs, bitsquats and TLD swaps, with certificate transparency and newly registered domains. Have I Been Squatted states that newly registered matches come from gTLD zone files covering the past 30 days, and that lookups run at least once every 24 hours after you add a domain. 19–20,22
Domain protection
Detect adversary infrastructure while it is being staged.
Have I Been Squatted helps security teams detect lookalike domains, certificate and DNS changes, and staging infrastructure, investigate the evidence, and coordinate takedowns.
What happens after a match#
The openSquat CLI hands you a results file, its hosted plans send a daily alert per keyword, and Have I Been Squatted keeps each result in a hosted queue with alert statuses and responses. The CLI writes its matches to a TXT, JSON or CSV file. Optional flags add a Quad9 DNS check, VirusTotal votes, a phishing-domain list, a port check on 80 and 443, and a crt.sh lookup in doppelganger mode. No notification, webhook or email code was found in the CLI. 3–4,10,12–14,34–39
openSquat's hosted alerts send a daily email per keyword that lists up to 25 matches and attaches a CSV of every match. On Professional and Business, openSquat also posts the same alerts to Slack and Microsoft Teams through incoming webhooks. Each alert keeps a run history with the full match list in the dashboard. No allowlist, alert status field, or named SIEM, SOAR or ticketing connector was found in the CLI code or the hosted pages reviewed. 3–4,10,12–14,33,38–39
Picture a one-person security team that protects three brand names. With the CLI, they keep a keyword file, run openSquat from cron after each daily feed update, and feed the JSON or CSV output into their own pipeline. On a Professional plan, they can instead set up to five daily keyword alerts that arrive by email, Slack or Teams. Either way, reporting a lookalike to its host or registrar is a separate job for the team. 3–4,10–16,33,38–39
Have I Been Squatted keeps state between lookups. Each result can carry RDAP registration data, hosting details, DNS records, mail readiness, open ports and a capture of the website, and an analyst can open the page in an isolated browser. Rules turn those observations into alerts with statuses and digests. A rule can raise an alert, notify Slack, send a finding to a SIEM, push the domain to a block list, mark the matched result Malicious with a note, or request a Takedown. Network Enforcement sends flagged domains to gateways, endpoints, mail filters and a hosted domain feed. 18–27,30–32,45,52–60

For the same three-brand team, the difference shows up on the second day a lookalike resolves. In Have I Been Squatted the match is already enriched and its alert status is tracked, so an admin can request a Takedown from the alert. An analyst reviews every request, and Have I Been Squatted reports the domain to its host and registrar. 18–19,30,61–63

Where openSquat is the better choice#
openSquat fits when you want to own a scriptable keyword check end to end. The code is free under GPL-3.0, anyone can read and change it, and default matching keeps brand keywords on the machine that runs the scan. Homograph transliteration, optional enrichment flags, and TXT, JSON or CSV output drop into an existing cron pipeline. The project is actively maintained, and recent releases treat downloaded phishing lists as untrusted input and stop API keys leaking on redirects. This suits an engineer who wants to inspect or change the matching code and already has a workflow for scheduling, triage and response. 1–4,14,34–37,51,64–65
openSquat's hosted plans fit a team that wants daily keyword alerts without running code. Prices are public and self-serve, from a free Community plan to USD 199 a month for Business, and the MCP server works on every plan. openSquat's Slack and Microsoft Teams alerts start on the USD 49 a month Professional plan, which also includes a commercial license. In Have I Been Squatted, Slack and webhook connectors come with the Business plan at USD 799.99 per domain a year, and Microsoft Teams is listed as coming soon. If keyword alerts in Slack or Teams are all you need, openSquat costs less today. 3–4,10,12–16,18,25,33
Where Have I Been Squatted is the better choice#
Choose Have I Been Squatted when you want malicious domains found and handled without maintaining a keyword list. Lookalikes of your own domains are the way in. Domain Monitoring watches continuously, generates permutations such as homoglyphs, bitsquats and TLD swaps, and adds certificate transparency and newly registered domains. Discover lists unregistered permutations that could later be used for phishing or impersonation, and Analyze checks any other suspicious domain on demand. 17–22,44–46,66–67
Each hit comes with the evidence to triage it. Results can carry RDAP registration data, hosting and ASN, DNS records, mail readiness and open ports, and an analyst can inspect a served page in a live, isolated browser session. Rules from the maintained library, or your own in the Upsilon query language, can raise an alert, send the finding to a SIEM, block the domain or request a Takedown that an analyst reviews. No screenshot capture or takedown workflow was found in the openSquat CLI or on its hosted plan pages. 3–4,10,12–14,18–27,33,45,52–55,62
Scripting stays available. The Public API streams lookup, analyze and certificate transparency search results as NDJSON, with scoped API keys and a Python SDK. A scheduled job or pipeline can call Have I Been Squatted directly. A company can start monitoring, hunting tools, rules and alerts self-serve with a free trial. Takedowns and the network, email and SIEM products are added through sales. 18,20–21,44–47,66,68
Have I Been Squatted does not suit teams that require self-hosted scanning, or that only need a free local pass over one day's newly registered domains. openSquat matches keywords locally against a supplied domain file, although its feed downloads and optional lookups need network access. Have I Been Squatted also does not monitor social media, app stores, the dark web, ads or leaked credentials. 3–9,14,34–37,43,69–70
FAQ#
Yes. Besides the free GPL-3.0 CLI, openSquat sells hosted plans. The free Community plan allows five API queries a day and one daily email alert. Paid plans from USD 29 a month add queries, results per query and alerts, and Professional and Business also extend the history window. On Professional and Business, openSquat also delivers alerts to Slack and Microsoft Teams. An MCP server is available on every plan. 1–4,10–16,33,65
For a daily keyword check, yes. The CLI covers it for a team that already schedules jobs and routes results, and the hosted plans send daily keyword alerts by email, Slack or Teams. Neither part was found to track alert status, capture the sites it finds or request takedowns. Compare that with Have I Been Squatted's Domain Monitoring, enrichment and rules before you treat openSquat as the whole workflow. 3–4,10–14,18–19,21–22,26–27,33,38–39
The openSquat CLI matches your keywords by edit distance and substring against candidate domains from the daily feed, a local file or a URL. Its README lists typosquatting and bitsquatting among the threats it covers. Because a domain that contains the keyword also matches, the CLI catches the keyword under another TLD or with added words. openSquat's hosted API also searches newly registered domains for a keyword, with a fuzziness setting for one- or two-edit typos. Its product page lists TLD squatting and combo-squatting among the techniques the matcher catches. No permutation or bitsquat generator was found in the CLI code or the hosted API documentation. Have I Been Squatted generates named permutation kinds, including bitsquatting, homoglyph and TLD swaps. 3–9,22,51
The free feed file states that commercial use is prohibited, while the GPL-3.0 code itself is free to run. A company can supply its own domain list with -d, point -u at another URL, or subscribe to the paid NRD Lite feed. openSquat's pages disagree on whether NRD Lite covers commercial use. The free-feeds page marks paid feeds as licensed for commercial use, while the NRD Lite plan says commercial licensing is available separately, so confirm the terms with openSquat. For the hosted API, the Community and Starter plans are for non-commercial use only, and the commercial license starts at Professional. 1–12,16,28–29,41–42,65
Have I Been Squatted runs managed Takedowns with analyst review and reports domains to their hosts and registrars. No public documentation of self-service or managed takedowns was found for openSquat's CLI or hosted plans. Its output is a results file or an alert for you to act on. 3–4,10,12–14,18,33,38–39,61–63
Sources and corrections
Each numbered marker on this page links to its sources below. Each source shows the date it was last checked. If a fact is wrong or out of date, send a correction. A correction is checked against the source and the page is updated.
- 1.GitHub. “GitHub repository metadata (`gh api`).” Accessed . https://api.github.com/repos/atenreiro/opensquat
- 2.atenreiro. “LICENSE.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/LICENSE
- 3.atenreiro. “openSquat Core README.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/README.md
- 4.atenreiro. “Changelog.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/CHANGELOG
- 5.atenreiro. “squatting_detector.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/squatting_detector.py
- 6.atenreiro. “validations.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/validations.py
- 7.atenreiro. “arg_parser.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/arg_parser.py
- 8.openSquat. “API reference, lookalike endpoint parameters.” Accessed . https://opensquat.com/docs
- 9.openSquat. “Domain Lookalike API, threat types.” Accessed . https://opensquat.com/products/domain-lookup-api
- 10.openSquat. “Pricing, API Plans and Compare tabs, monthly and yearly.” Accessed . https://opensquat.com/pricing
- 11.openSquat. “Free NRD feed file (downloaded; header and counts).” Accessed . https://feeds.opensquat.com/opensquat-nrd-latest.txt
- 12.openSquat. “openSquat home page.” Accessed . https://opensquat.com/
- 13.openSquat. “Integrations, email, Slack and Teams alerts.” Accessed . https://opensquat.com/integrations
- 14.atenreiro. “app.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/app.py
- 15.atenreiro. “api_client.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/api_client.py
- 16.openSquat. “openSquat Terms of Service, last updated March 2026.” Accessed . https://opensquat.com/terms
- 17.Have I Been Squatted. “Homepage (footer tagline).” Accessed . https://haveibeensquatted.com/
- 18.Have I Been Squatted. “Pricing.” Accessed . https://haveibeensquatted.com/pricing
- 19.Have I Been Squatted. “Domain monitoring guide.” Accessed . https://docs.haveibeensquatted.com/features/domain-monitoring/
- 20.Have I Been Squatted. “Domain Monitoring.” Accessed . https://haveibeensquatted.com/platform/monitoring
- 21.Have I Been Squatted. “Changelog.” Accessed . https://haveibeensquatted.com/changelog
- 22.Have I Been Squatted. “Domain signals.” Accessed . https://docs.haveibeensquatted.com/reference/signals/domain/
- 23.Have I Been Squatted. “Atlas observations: registration data by TLD.” Accessed . https://mcp.haveibeensquatted.com/mcp
- 24.Have I Been Squatted. “Platform.” Accessed . https://haveibeensquatted.com/platform
- 25.Have I Been Squatted. “Integrations.” Accessed . https://haveibeensquatted.com/platform/integrations
- 26.Have I Been Squatted. “Rules engine guide.” Accessed . https://docs.haveibeensquatted.com/guides/rules-engine/
- 27.Have I Been Squatted. “Network Intelligence guide.” Accessed . https://docs.haveibeensquatted.com/features/network-intelligence/
- 28.atenreiro. “feed_manager.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/feed_manager.py
- 29.openSquat. “Community feeds, free and paid comparison.” Accessed . https://opensquat.com/free-feeds
- 30.Have I Been Squatted. “Administration guide.” Accessed . https://docs.haveibeensquatted.com/guides/administration/
- 31.Have I Been Squatted. “Alert digest guide.” Accessed . https://docs.haveibeensquatted.com/guides/digest/
- 32.Have I Been Squatted. “Connectors.” Accessed . https://docs.haveibeensquatted.com/integrations/
- 33.openSquat. “About openSquat, commercial intelligence.” Accessed . https://opensquat.com/about
- 34.atenreiro. “dns_resolvers.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/dns_resolvers.py
- 35.atenreiro. “phishing.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/phishing.py
- 36.atenreiro. “vt.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/vt.py
- 37.atenreiro. “port_check.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/port_check.py
- 38.atenreiro. “cli.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/cli.py
- 39.atenreiro. “output.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/output.py
- 40.openSquat. “Threat Signals feed.” Accessed . https://opensquat.com/products/suspicious-domains
- 41.openSquat. “Premium feed endpoint, unauthenticated response.” Accessed . https://api.opensquat.com/v1/feeds/nrd-lite
- 42.openSquat. “Newly Registered Domains, NRD Lite plan.” Accessed . https://opensquat.com/products/newly-registered-domains
- 43.Have I Been Squatted. “twistrs repository (README and LICENSE).” Accessed . https://github.com/haveibeensquatted/twistrs
- 44.Have I Been Squatted. “Agents.” Accessed . https://haveibeensquatted.com/platform/agents
- 45.Have I Been Squatted. “Access control reference.” Accessed . https://docs.haveibeensquatted.com/reference/access-control/
- 46.Have I Been Squatted. “MCP server.” Accessed . https://docs.haveibeensquatted.com/ai/mcp/
- 47.Have I Been Squatted. “Network Intelligence.” Accessed . https://haveibeensquatted.com/platform/network-intelligence
- 48.Have I Been Squatted. “Slack app.” Accessed . https://docs.haveibeensquatted.com/ai/slack/
- 49.Have I Been Squatted. “Reports guide.” Accessed . https://docs.haveibeensquatted.com/features/reports/
- 50.Have I Been Squatted. “MCP server (OAuth scopes).” Accessed . https://docs.haveibeensquatted.com/ai/mcp/#oauth-scopes
- 51.atenreiro. “homograph.py.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/opensquat/homograph.py
- 52.Have I Been Squatted. “Passive DNS guide.” Accessed . https://docs.haveibeensquatted.com/features/passive-dns/
- 53.Spamhaus. “Spamhaus passive DNS endpoint, unauthenticated probe.” Accessed . https://beta-pdns.spamhaus.com/api/v3/login
- 54.Have I Been Squatted. “Atlas investigations.” Accessed . https://docs.haveibeensquatted.com/features/atlas-investigations/
- 55.Have I Been Squatted. “Atlas investigations (add domains and indicators).” Accessed . https://docs.haveibeensquatted.com/features/atlas-investigations/#steer-an-investigation
- 56.Have I Been Squatted. “Webhooks.” Accessed . https://docs.haveibeensquatted.com/integrations/webhooks/
- 57.Have I Been Squatted. “Network Enforcement.” Accessed . https://haveibeensquatted.com/platform/network-enforcement
- 58.Have I Been Squatted. “Domain feed integration.” Accessed . https://docs.haveibeensquatted.com/integrations/domain-feed/
- 59.Have I Been Squatted. “CrowdStrike Falcon integration.” Accessed . https://docs.haveibeensquatted.com/integrations/crowdstrike-falcon/
- 60.Have I Been Squatted. “Microsoft Defender for Endpoint integration.” Accessed . https://docs.haveibeensquatted.com/integrations/microsoft-defender-endpoint/
- 61.Have I Been Squatted. “Takedowns guide.” Accessed . https://docs.haveibeensquatted.com/features/takedowns/
- 62.Have I Been Squatted. “Takedowns.” Accessed . https://haveibeensquatted.com/platform/takedowns
- 63.Have I Been Squatted. “FAQ (stalled takedowns).” Accessed . https://haveibeensquatted.com/faq#takedowns-stall
- 64.GitHub. “Commits and contributors (`gh api`).” Accessed . https://api.github.com/repos/atenreiro/opensquat/commits
- 65.atenreiro. “pyproject.toml.” Accessed . https://github.com/atenreiro/opensquat/blob/8476845019a3888d66a159f5abb5c4b23d6f9df4/pyproject.toml
- 66.Have I Been Squatted. “API: Analyze a URL.” Accessed . https://docs.haveibeensquatted.com/guides/api/analyze/#analyze-a-url
- 67.Have I Been Squatted. “Tools: Analyze (URL analysis note, served without sign-in).” Accessed . https://haveibeensquatted.com/app/tools?mode=analyze
- 68.Have I Been Squatted. “API.” Accessed . https://docs.haveibeensquatted.com/guides/api/
- 69.Have I Been Squatted. “Solutions.” Accessed . https://haveibeensquatted.com/solutions
- 70.Have I Been Squatted. “Brand protection.” Accessed . https://haveibeensquatted.com/solutions/brand-protection