# Domain Availability Research

**When to use:** Before registering a domain — research which names are available, check WHOIS/DNS, generate creative alternatives, and compare pricing.

---

## Workflow: 3-Prong Validation

Do NOT rely on a single check. The registry WHOIS database can lag or return stale data. Always run all three checks:

### Check 1 — VeriSign WHOIS (authoritative for .com/.net/.edu)

```bash
whois <domain> 2>&1 | grep "No match for domain"
```

- **Available:** `No match for domain "EXAMPLE.COM"` — domain is not registered
- **Taken:** Returns registry domain ID, creation date, expiry, name servers
- **Rate note:** On fresh installs, `apt-get install -y whois` first
- **Limitation:** Only covers .com, .net, .edu domains at the VeriSign registry level. For other TLDs (.io, .org, .co, .app, etc.), use a registrar's check endpoint or DNS lookup instead.

### Check 2 — DNS NXDOMAIN verification

```bash
nslookup <domain> 2>&1 | grep "NXDOMAIN"
```

- **Available:** Returns `NXDOMAIN` — no DNS records exist
- **Taken:** Returns one or more IP addresses
- Works for ANY TLD, not just .com
- A DNS lookup returning `NXDOMAIN` but WHOIS showing "No match" confirms availability from two angles

### Check 3 — HTTP redirect/resolve check

```bash
curl -sk -o /dev/null -w '%{http_code} %{redirect_url}' https://<domain> 2>&1
```

- Sometimes a domain is registered but parked (HTTP 200/302 lander page) — means it's taken but possibly for sale
- NXDOMAIN from Check 2 + timeout/slow from Check 3 = definitely available
- A fast 200/302 response means someone owns it or a registrar has a landing page up

### Important: DNS vs WHOIS discrepancies

A domain can show "No match" in WHOIS yet resolve in DNS. This happens with:
- Very recent registrations (WHOIS database hasn't propagated yet — up to 24h lag)
- Domain was just registered but the WHOIS caching layer hasn't refreshed
- **Resolution:** If WHOIS says "No match" but DNS resolves, the domain was likely registered within the last few hours. Mark as "likely taken — verify again in 24h."

---

## Generating Creative Domain Names

### Formula patterns

| Pattern | Example | Why It Works |
|---------|---------|-------------|
| `{theme}{keyword}.com` | `sharkfantasy.com` | Direct, brandable |
| `{theme}ff.com` | `sharkattackff.com` | "FF" = fantasy football shorthand |
| `{theme}draft.com` | `jawsdraft.com` | Highlights the draft mechanic |
| `{theme}league.com` | `chumleague.com` | Wordplay: chum = shark bait |
| `{theme}szn.com` | `jawsszn.com` | Sports seasons slang (SZN) |
| `{wordplay}league.com` | `toothyleague.com` | Fun, playful, memorable |
| `{compound}league.com` | `finomenalleague.com` | "Fin" + phenomenal |
| `{anatomy}picks.com` | `dorsalpicks.com` | Shark anatomy + draft picks |
| `{slang}league.com` | `sharkattackseason.com` | "Season" = sports league |
| `{chum-themed}{keyword}.com` | `chumdraft.com`, `predapick.com` | Short, wordplay, edgy |

### Criteria for good names
- ≤15 characters ideal (fits URLs, social handles, easy to type)
- No hyphens if possible (people forget them, look spammy)
- Avoid numbers unless part of brand (e.g., Web3 names with 3)
- Easy to spell after hearing it once (the "radio test")
- Avoid trademarked terms (e.g., "Feeding Frenzy" — EA owns it)
- Avoid names that sound like existing products or confuse the brand

---

## Registrar Pricing Reference (as of Jul 2026)

| Registrar | .com (1yr) | Notes |
|-----------|-----------|-------|
| **Cloudflare** | **$10.46** | At-cost, no markup — best value. Registration/renewal/transfer all same price. |
| Namecheap | ~$10–$14 | Often has first-year promos, reliable API |
| Porkbun | ~$10–$12 | Good mid-tier, simple interface |
| GoDaddy | ~$12–$18 | Renewals higher; good for premium/auction domains |
| HugeDomains | Premium | Marketplace for already-registered domains, often $1K+ |

**Best practice:** Use Cloudflare Registrar for new registrations if the site will use Cloudflare DNS anyway. If another registrar, transfer to Cloudflare later.

### Premium/aftermarket domains
- `fantasyfrenzy.com` → HugeDomains (likely $1K+)
- `apexshark.com` → GoDaddy Auctions ($2,500 or $834/mo lease-to-own)
- Before pursuing a premium domain, check if an available creative alternative exists first (usually does at $10.46)

---

## Venue-Specific Domain Availability Checks

### Cloudflare Registrar API (requires token with Registrar Admin permission)

```bash
ACCT_ID=$(curl -s "https://api.cloudflare.com/client/v4/accounts" \
  -H "Authorization: Bearer $TOKEN" | python3 -c "import sys,json;print(json.load(sys.stdin).get('result',[{}])[0].get('id',''))")

curl -s "https://api.cloudflare.com/client/v4/accounts/$ACCT_ID/registrar/domains/example.com/check" \
  -H "Authorization: Bearer $TOKEN"
```

Returns: `available`, `can_register`, `premium`, `supported_tld`, `fees.registration_fee`, `fees.renewal_fee`, `fees.transfer_fee`.

**Pitfalls:**
- This is GET, not POST. POST returns "Page not found"
- Domain name goes in URL path, not as query param or request body
- Requires `Account → Registrar → Admin` permission token (standard DNS-only token won't work)
- See `cloudflare-dns-and-domains` umbrella skill for full token setup

---

## Deliverable Format

After researching, compile a ranked report with:

1. **SECTION A: Initial List** — the domains the user asked about, each with status + note
2. **SECTION B: Creative Alternatives** — original ideas generated by the research, checked for availability
3. **SECTION C: Top Recommendations** — 3-5 ranked picks with rationale
4. **SECTION D: Strategy** — which to register now vs. consider vs. skip
5. **Pricing** — Cloudflare at-cost as baseline ($10.46/.com), note premiums

### Rating scale
- ⭐⭐⭐⭐⭐ = Short (≤12 chars), brandable, descriptive, no issues
- ⭐⭐⭐⭐ = Good option, slightly longer or less obvious
- ⭐⭐⭐ = Decent but long or less catchy
- ⭐⭐ = Functional but not ideal
- ⭐ = Skip (taken, premium, confusing)

---

## Pitfalls

- **WHOIS not installed** — on minimal Linux installs, `whois` may not be present. Run `apt-get install -y whois` first.
- **WHOIS rate limits** — VeriSign applies rate limiting at high query volumes (exact threshold undocumented). If queries start failing with connection errors, space them out or use DNS as a lighter alternative. For 20+ domains, batch with a loop + 0.5s delay.
- **Premium domain price shock** — a "taken" domain at a marketplace like GoDaddy or HugeDomains can cost $500-$5,000+. Always check creative alternatives first at $10.46.
- **"No match" with DNS resolution** — domain was likely registered in the last few hours. Cross-check again in 24h.
- **New TLDs (.app, .dev, .io, etc.)** — WHOIS check via VeriSign only covers .com/.net/.edu. For other TLDs, use DNS NXDOMAIN + Cloudflare check API + registrar's own lookup. Many new TLDs require HSTS preloading (.app, .dev) which can cause redirect issues with http-only test pages.
