Domains

Typo and lookalike domain finder

Generate the lookalikes of your domain and see which are already registered or resolving.

Free, no accountLive check

The registrable name you want protected, not a hostname under it.

Try

Result

Fill in the form and press Find lookalike domains. The verdict and the detail appear here.

What this is

This typosquatting checker builds the names a person could plausibly type or misread instead of yours - a dropped letter, two letters swapped, a neighbouring key, a character that reads the same, your exact name under another ending - and then asks the network which of them are already resolving or registered.

A lookalike domain is only useful to someone else if a reader fails to notice it. That is why the ending swap and the character that reads the same sit at the top of the list here: acme.co and acrne.com contain nothing a glance at a URL bar would catch, while a neighbouring-key slip like axme.com is caught by anyone who reads what they typed.

Two states matter and they are not the same. A permutation answering with an A record has something served from it today. A permutation with a registration record and no A record is held by someone who has pointed it nowhere, which is a decision that can be reversed in minutes.

The open-source incumbents here are good and free. dnstwist generates far more permutation classes than this, including Unicode homoglyphs, and can hash each lookalike’s page and screenshot to score how closely it copies yours; CIRCL runs a public Typosquatting Finder with selectable algorithms. What neither does is register the names you decide to hold, which is the step this page is built to hand you.

How to read the result

The table is ordered closest first, and the "How it differs" column says which permutation class produced each name, so you can see at a glance whether the taken ones are the invisible kind or the kind a reader would catch.

Read "State" literally. "Answers with an address" means an A record came back, not that a copy of your site is there. "Registered, no address" means a registry holds a record and the name resolves to nothing. "No registration record" is the registry’s own 404 and is the one you can act on by registering the name yourself.

When more permutations are generated than a run checks, the whole list is offered as a file. That list is the thing to keep: re-running this in six months and comparing is how a newly registered lookalike gets noticed before it is pointed at anything.

This check belongs on the same schedule as the rest of a portfolio review; our guide Holding a domain portfolio: renewals, status codes and the names that attack yours covers where it fits alongside tracking your own renewals and reading EPP status codes.

Common mistakes

What goes wrong most often, and how to tell.

  • Registering every permutationA four-letter name generates dozens of plausible misspellings and a longer one generates hundreds. Holding all of them costs a renewal every year for names nobody would ever type; holding the ending swaps and the homoglyphs costs very little and covers the permutations a reader cannot see.
  • Ignoring a registered name because it resolves to nothingA name held with no A record is the quietest state a lookalike has, and the one that changes without any announcement. An MX record on it is enough to start collecting email meant for you, and no page needs to exist for that to work.
  • Treating an A record as proof of phishingMost resolving lookalikes are parking pages a registrar put there by default. Deciding what a name is doing needs someone to look at it, and a dated record of what was served is also what a dispute would turn on.
  • Checking once and calling it doneThis is a snapshot of one afternoon. Permutations are registered and dropped continuously, so the useful habit is a saved list and a repeat check, not a single clean result filed away as settled.

Questions

What people ask about this tool.

  • The ones a reader would not notice: your exact name under a different ending, and the homoglyph permutations where one character has been replaced by something that reads identically. A neighbouring-key slip is caught by the person who made it, so it matters far less than a name that looks right.
  • Comparing two sites means fetching both, normalising the HTML and hashing it, or rendering screenshots and comparing perceptual hashes. dnstwist does exactly that with ssdeep, tlsh and pHash, and it is the right tool for it; this page stops at which permutations exist and who holds them.
  • No. Only ASCII substitutions such as rn for m or a zero for an o are generated here. A domain registered with a Cyrillic character in place of a Latin one is encoded as punycode and needs a curated Unicode confusable table to generate, which dnstwist maintains and this does not.
  • Under paragraph 4(a) of the UDRP a complaint must establish three things together: the name is identical or confusingly similar to a mark you have rights in, the registrant has no rights or legitimate interests in it, and it was registered and is being used in bad faith. Evidence of what the name serves, with dates, is what the third point rests on.
  • A run asks at most twenty lookups, the same ceiling the availability checker uses for names. A lookalike that answers with an address costs one lookup; one with no address costs two, a DNS query and then a registry query - so a run where most names are unregistered checks about half as many as one where they all resolve. A lookup is a question, not always a single request: a DNS question goes to a second public resolver if the first one does not answer, which is the one case a run sends more requests than it asked questions. The findings say how many of the generated names were checked, and the full list is offered as a file so the remainder can be checked in bulk or kept as a watch list.

Sources

Every fixed value here comes from the provider’s own documentation. These pages change, so each says the day it was last read.

Use it from the API

The same check, as one request.

Request
curl -X POST https://resellerhq.com/api/tools/typo-lookalike-domain-finder \
  -H "Content-Type: application/json" \
  -d '{"domain":"acme.com","endings":["com","net","org","co"]}'
Response
{
  "tool": "typo-lookalike-domain-finder",
  "input": {
    "domain": "acme.com",
    "endings": [
      "com",
      "net",
      "org",
      "co"
    ]
  },
  "result": {
    "verdict": {
      "tone": "danger",
      "headline": "1 of 10 lookalikes of acme.com already resolve",
      "summary": "Look at what each resolving name serves first; the findings say what to keep as evidence."
    },
    "findings": [
      {
        "id": "lookalike-resolving",
        "severity": "fail",
        "title": "1 lookalike answers with an address",
        "detail": "acrne.com (203.0.113.10) already resolves to an address, so something is served there right now. That something can be a parking page, a registrar hold page or a copy of your site - an A record alone does not say which.",
        "fix": "Open each one and keep what you see. A UDRP complaint has to show all three of WIPO’s criteria - a name identical or confusingly similar to a mark you have rights in, no legitimate interest of the registrant, and registration and use in bad faith - and a dated screenshot is the evidence for the third.",
        "copy": "acrne.com",
        "copyLabel": "Copy resolving lookalikes"
      },
      {
        "id": "unregistered-lookalikes",
        "severity": "info",
        "title": "9 lookalikes have no registration record",
        "detail": "These names are unregistered at their registry today, so each is a name anyone can take tomorrow. The closest of them are the ones worth holding yourself - the ending swap and the homoglyph first, because those are the two a reader does not notice at all.",
        "fix": "Register the closest few in your own account before someone else does. ResellerHQ holds them alongside your main name, on the same renewal calendar, so a defensive registration is not a separate thing to remember.",
        "copy": "acme.net\nacme.org\nacme.co\n4cme.com\nacm3.com\ncme.com\name.com\nace.com\nacm.com",
        "copyLabel": "Copy names to register"
      },
      {
        "id": "permutations-capped",
        "severity": "info",
        "title": "28 permutations generated, 10 checked",
        "detail": "A name of this length has more plausible misspellings than one run pays for, so the 10 closest were looked up and the rest are listed below unchecked. One run asks at most 20 lookups, the same ceiling the availability checker uses for names - and a lookalike with no address of its own costs two of them, a DNS query and then an RDAP one, which is why a run of all-unregistered names checks fewer names than one where they resolve."
      }
    ],
    "parts": [
      {
        "kind": "table",
        "title": "The closest permutations, checked",
        "columns": [
          "Lookalike",
          "How it differs",
          "State",
          "What answered"
        ],
        "rows": [
          [
            "acme.net",
            "Your name, a different ending",
            "No registration record",
            "-"
          ],
          [
            "acme.org",
            "Your name, a different ending",
            "No registration record",
            "-"
          ],
          [
            "acme.co",
            "Your name, a different ending",
            "No registration record",
            "-"
          ],
          [
            "4cme.com",
            "A character that reads the same",
            "No registration record",
            "-"
          ],
          [
            "acrne.com",
            "A character that reads the same",
            "Answers with an address",
            "203.0.113.10"
          ],
          [
            "acm3.com",
            "A character that reads the same",
            "No registration record",
            "-"
          ],
          [
            "cme.com",
            "A character dropped",
            "No registration record",
            "-"
          ],
          [
            "ame.com",
            "A character dropped",
            "No registration record",
            "-"
          ],
          [
            "ace.com",
            "A character dropped",
            "No registration record",
            "-"
          ],
          [
            "acm.com",
            "A character dropped",
            "No registration record",
            "-"
          ]
        ],
        "mono": [
          0
        ],
        "proseColumns": [
          3
        ],
        "note": "An A record and a registration record are all this reads; neither says what a site serves."
      },
      {
        "kind": "record",
        "title": "Every permutation generated, including the unchecked ones",
        "value": "acme.net\nacme.org\nacme.co\n4cme.com\nacrne.com\nacm3.com\ncme.com\name.com\nace.com\nacm.com\ncame.com\namce.com\nacem.com\nqcme.com\nwcme.com\nscme.com\nzcme.com\naxme.com\nadme.com\nafme.com\navme.com\nacne.com\nacje.com\nacke.com\nacmw.com\nacmr.com\nacms.com\nacmd.com",
        "note": "28 names, closest first. Paste the rest into the availability checker, or keep the file as the list to watch.",
        "download": {
          "filename": "lookalikes-acme.com.txt",
          "mediaType": "text/plain"
        }
      }
    ],
    "lookups": [
      {
        "label": "A for acme.net",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for acme.net",
        "value": "no registration found (404)"
      },
      {
        "label": "A for acme.org",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for acme.org",
        "value": "no registration found (404)"
      },
      {
        "label": "A for acme.co",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for acme.co",
        "value": "no registration found (404)"
      },
      {
        "label": "A for 4cme.com",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for 4cme.com",
        "value": "no registration found (404)"
      },
      {
        "label": "A for acrne.com",
        "value": "203.0.113.10"
      },
      {
        "label": "A for acm3.com",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for acm3.com",
        "value": "no registration found (404)"
      },
      {
        "label": "A for cme.com",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for cme.com",
        "value": "no registration found (404)"
      },
      {
        "label": "A for ame.com",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for ame.com",
        "value": "no registration found (404)"
      },
      {
        "label": "A for ace.com",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for ace.com",
        "value": "no registration found (404)"
      },
      {
        "label": "A for acm.com",
        "value": "no A record (no_records)"
      },
      {
        "label": "RDAP for acm.com",
        "value": "no registration found (404)"
      }
    ],
    "limits": [
      "No visual or fuzzy-hash similarity comparison. dnstwist fetches each lookalike, hashes its HTML with ssdeep or tlsh and its screenshot with a perceptual hash, and scores how closely it copies you; it also detects a rogue MX host set up to intercept misdirected email. This is permutation coverage and registration status, and both of those are free and well-served elsewhere - dnstwist and CIRCL’s Typosquatting Finder are strong incumbents.",
      "ASCII permutations only. A Cyrillic а standing in for a Latin a is the homoglyph attack people actually mean, and generating those needs a researched Unicode table and punycode, which dnstwist has and this does not.",
      "Five classes of permutation: a swapped ending, an ASCII homoglyph, a dropped character, two characters swapped, and a neighbouring QWERTY key. Hyphenation, insertion, repetition, dictionary words and a supplied TLD list - all of which dnstwist generates - are not here, and an AZERTY or Dvorak typist slips in a direction this does not model.",
      "At most 20 lookups per run, the closest names first by the ordering above: a lookalike that answers with an address costs one lookup and one with no address costs two, so this run checked 10 of the 28 names generated. The unchecked remainder is listed rather than looked up. One lookup is one question asked, not always one request - a DNS question is put to a second public resolver if the first does not answer, so a run where resolvers are failing can send up to twice as many requests as it asks questions.",
      "Only the first label is permuted, and everything after it is kept as the ending. That is right for acme.co.uk and wrong for shop.acme.com, where the first label is a subdomain nobody registers separately.",
      "A permutation can be a name no registry will sell - a single character, a reserved string, a premium listing - and it is still generated and checked, with the registry’s answer reported as it comes back."
    ]
  }
}

Resell domain registration across the endings your customers ask for, at your own price.

Get started

Company names and logos are trademarks of their owners, shown only to identify each service.