# Domain Checker

Check domain registration in batches using public RDAP APIs, without keys or login.

- Repository: https://github.com/davidondrej/skills (4238 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add davidondrej/skills --skill domain-checker -g -a claude-code -y`
Codex: `npx skills add davidondrej/skills --skill domain-checker -g -a codex -y`
Cursor: `npx skills add davidondrej/skills --skill domain-checker -g -a cursor -y`
Gemini CLI: `npx skills add davidondrej/skills --skill domain-checker -g -a gemini-cli -y`

## Description

Check domain registration in batches using public RDAP APIs, without keys or login. Use only when the user explicitly invokes /domain-checker.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Domain checker

Run the bundled Python 3 checker without packages, credentials or a browser. Resolve `scripts/check_domains.py` relative to this SKILL.md, regardless of the working directory.

```sh
python3 <skill-dir>/scripts/check_domains.py example.com example.dev example.ai --json
```

Use complete domains, not bare brand names or URLs; expand each name/TLD combination. Only domains directly under a TLD are supported (e.g. `.com`, `.dev`, `.ai`, `.cloud`), not multi-label suffixes such as `.co.uk`.

The script discovers endpoints through IANA and queries public registries, not registrar shopping carts. Use small batches; concurrency is capped at 4 requests.

## Read the results

JSON output is an array of `{domain, status, detail}` objects. Without `--json`, output is a short list and elapsed time.

- `REGISTERED`: matching registration record found.
- `NOT_FOUND`: registry reports no record. **Not confirmed available:** reservations, registration rules or premium pricing may prevent purchase.
- `UNAVAILABLE`: registry explicitly reports a reservation or registration restriction.
- `UNKNOWN`: unsupported registry, malformed response, timeout or HTTP error. Never treat as available.
- `INVALID`: malformed name or input outside the helper’s scope.

Report briefly as a live snapshot, preserving exact domains and statuses. Explain `UNKNOWN` reasons. On rate limits, wait before retrying; do not increase concurrency. Bootstrap failure exits nonzero: no checks completed.

Read registry error bodies: a 404 may report a reservation, while Verisign may return an empty RDAP 404. The helper handles both but detects only some reservation wording. Neither DNS absence nor RDAP redirect-service errors prove availability.

Use a registrar for final purchase availability or premium quotes. Registration checks do not establish whether another company uses the name or provide trademark clearance.

The rest: https://github.com/davidondrej/skills/blob/HEAD/skills/research-and-web/domain-checker/SKILL.md
