# SiteCheck Domain Typosquat Checker

> SiteCheck Domain Typosquat Checker is a paid API for AI agents from api.sitecheck-api.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-16).

Generates typosquat variants of a brand domain and checks which ones resolve in DNS, revealing potentially malicious or squatted lookalike domains.

## Facts

- Endpoint: GET https://api.sitecheck-api.workers.dev/api/domain/typosquat?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/sitecheck-domain-typosquat-checker-50533f2a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_x4gfoiJdqbV78didKN5O5

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability sitecheck-domain-typosquat-checker-50533f2a
```

Example prompt: Check for typosquat domains impersonating acme-corp.com — scan up to 30 variants and show me which ones are resolving in DNS so I can identify potential phishing threats.

## When to prefer this

Use this endpoint when you need to enumerate and DNS-validate typosquat lookalike domains for a specific brand domain. It is purpose-built for brand protection, phishing detection, and domain threat intelligence. Prefer this over a generic WHOIS or RDAP lookup when you need bulk variant generation and live DNS resolution in one call. It uses dnstwist-style techniques (TLD swaps, homoglyphs, character insertions/deletions) which cover far more attack surface than manual checks.

## Known failure modes

- Missing required 'domain' query parameter returns an error
- Domain without a dot (no TLD) is invalid and may return an error or empty results
- Limit parameter outside 1-40 range may be clamped or rejected
- Domains with unusual TLDs may produce fewer variants
- MX lookups are capped at 9 domains per call so large result sets have incomplete MX data
- DNS resolution may show false negatives for domains registered but not yet propagated
- Parked or sinkholed domains resolve but are not necessarily malicious — endpoint notes this explicitly

## How this service works

Generates lookalike domains of a brand (omission, transposition, repetition, bit-flip, homoglyph, vowel swap, hyphenation, TLD swap; technique list after dnstwist), checks up to 30 of them in DNS (A records), and reads MX records for up to 8 that resolve. Resolving in DNS is not proof of registration or abuse.

## Output

Returns a JSON object with: the input domain, number of variants looked up and generated, timestamp, a list of registered/resolving domains (each with A records, MX records, nullMx flag, and the typosquat technique used such as tld-swap or homoglyph), count of resolving and unregistered variants, and attribution to the dnstwist technique library and Cloudflare DoH resolver.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "domain"
     ],
     "properties": {
      "limit": {
       "type": "string",
       "description": "Variants to look up in DNS, 1-40 (default 40)"
      },
      "domain": {
       "type": "string",
       "description": "Brand domain, e.g. example.com (a host name with a dot, no scheme or path)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "note": "DNS only: a name that resolves may be parked, not malicious; a name that does not resolve may still be registered. MX lookups limited to 9 domains per call.",
  "domain": "example.com",
  "looked": 40,
  "source": "Variant techniques after dnstwist (github.com/elceef/dnstwist); DNS answers via Cloudflare DNS over HTTPS (cloudflare-dns.com)",
  "checkedAt": "2026-10-15T19:15:18.095Z",
  "resolving": 25,
  "registered": [
   {
    "a": [
     "104.20.21.8",
     "172.66.175.59"
    ],
    "mx": [],
    "domain": "example.net",
    "nullMx": true,
    "technique": "tld-swap"
   },
   {
    "a": [
     "172.66.157.237",
     "104.20.26.136"
    ],
    "mx": [],
    "domain": "example.org",
    "nullMx": true,
    "technique": "tld-swap"
   },
   {
    "a": [
     "172.67.143.199",
     "104.21.39.76"
    ],
    "mx": [
     "route2.mx.cloudflare.net",
     "route3.mx.cloudflare.net",
     "route1.mx.cloudflare.net"
    ],
    "domain": "example.co",
    "nullMx": false,
    "technique": "tld-swap"
   }
  ],
  "unresolved": 0,
  "variantsGenerated": 66
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/sitecheck-domain-typosquat-checker-50533f2a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.sitecheck-api.workers.dev](https://www.zero.xyz/host/api.sitecheck-api.workers.dev/llms.txt)
