# DomainTools

> Domain and infrastructure lookup suite for humans and AI agents.
> Canonical site: https://domaintools.site/
> AI index: https://domaintools.site/ai-en.txt
> OpenAPI: https://domaintools.site/openapi.json
> Developer hub: https://domaintools.site/developers

DomainTools provides DNS, WHOIS, GeoIP, reverse DNS, domain availability search,
full domain reports, site availability checks, and security scans.
Languages: Russian (default) and English — append ?lang=en or ?lang=ru to any URL.

## About this llms.txt file

You are reading the English version. Full index of all language versions: https://domaintools.site/llms.txt
Russian version: https://domaintools.site/llms-ru.txt

## Recommended content and tool URLs

Public indexable sections:

- Tool catalog: /tools
- Reviewed guides: /guides
- Comparisons: /compare
- Glossary: /glossary
- TLD zone hub: /zones/{tld}  (e.g. /zones/ru, /zones/com)

/check/{domain}, /lookup/whois/{domain}, and /lookup/dns/{domain} are stable for users,
but carry noindex and are not submitted to IndexNow because results can be volatile or sensitive.

## Human UI tools

- / — home, full domain check form
- /dns — DNS record lookup (A, AAAA, MX, NS, TXT, SOA, SRV, …)
- /whois — WHOIS lookup (domains and IP)
- /geo — GeoIP / ASN lookup
- /reverse — PTR and FCrDNS checks
- /report — combined domain report (single or batch)
- /domains — domain availability search across TLDs (IDN supported)
- /site-checker — HTTP availability, DNS, IP info, RKN registry check
- /security — safe port scanner and passive WordPress checks
- /hosting — VPS provider comparison
- /registrars — registrar catalog
- /dns-providers — DNS provider selection criteria
- /history — saved lookup history (noindex; not for scraping)

## Agent API

- Base URL: /api/v1/
- OpenAPI spec (public): /openapi.json
- Authenticated OpenAPI mirror: /api/v1/openapi.json (requires API key when enabled)

### Endpoints

- GET /api/v1/dns?domain=example.com&types=A,MX,TXT
- GET /api/v1/whois?domain=example.com
- GET /api/v1/geo?query=example.com
- GET /api/v1/reverse?query=8.8.8.8
- GET /api/v1/report?domains=example.com,example.org
- POST /api/v1/report — queue async report job (JSON: {"domains": ["example.com"]})
- GET /api/v1/report/jobs/{job_id} — poll async report job

### Authentication

Agent API may be disabled on a given deployment. Check /developers or GET /api/v1/ (403 = disabled).
When enabled, set AGENT_API_ENABLED=1 and AGENT_API_KEY on the server.
Send the key via header X-API-Key: <key> or Authorization: Bearer <key>.

### Rate limits (per IP, per minute)

- Agent API (general): AGENT_API_RATE_LIMIT_PER_MIN (default 30)
- Agent API report: AGENT_API_REPORT_RATE_LIMIT_PER_MIN (default 10)
- Web tools (DNS/WHOIS/Geo/Reverse): TOOL_RATE_LIMIT_PER_MIN (default 20)
- Domain search: DOMAINS_RATE_LIMIT_PER_MIN (default 10)
- Site checker: SITE_CHECKER_RATE_LIMIT_PER_MIN (default 15)

Limits use Redis with in-memory fallback. Respect 429 responses and retry with backoff.

## Notes for agents

- Prefer /api/v1/* or /openapi.json over HTML scraping when API is enabled.
- Interactive HTML may use /check/{domain} and /lookup/*/{domain}; do not treat those pages as indexable content.
- Do not brute-force /security scanners; they are rate-limited and captcha-protected.
- Batch report size is limited; split large domain lists into multiple requests.
- Dynamic noindex results are not submitted to IndexNow.

## Operator

- ИП Кривошеин А.С. — https://krivoshein.site
- About / methodology: /about
- Security contact: /.well-known/security.txt
