# Catchpoll > Catchpoll watches the .com, .io, .ai, .app, .dev, .info, .pro, .live, .cc, .me, .tv, .sh, .online, .store and .site drop lists, knows when each expiring domain will drop, rates which are > worth having, and catches them. AI agents can use it too. No catch, no fee. Status: private beta. The read API is open with a key; reserving and catching by agent is coming soon. ## Check a domain or get suggestions (no key, open during the beta) - GET https://catchpoll.com/v1/check/{domain} Live status of a name on a covered ending: registered, available, dropzone (.io), pending_delete, redemption, expired_grace; registrar and dates; Catchpoll's expected or actual drop time, name class, niches, phrase fit, value range. - GET https://catchpoll.com/v1/suggest?q=your+idea+in+plain+words&tld=com,io&niche=tech&max_length=10&days=7&limit=25 Names from the drop lists that fit the idea and are free now or dropping soon, best phrase fit first. - POST https://catchpoll.com/v1/tld-request {"tld": "co", "email": "optional", "note": "optional"} Ask for another ending (we cover .com, .io, .ai, .app, .dev, .info, .pro, .live, .cc, .me, .tv, .sh, .online, .store and .site today and add more on demand). - MCP (stateless streamable HTTP): https://catchpoll.com/mcp with tools check_domain, suggest_domains and request_tld; with a key (Authorization: Bearer cp_…, scope read) also search_domains, the /v1/search filters as a query string. claude mcp add --transport http catchpoll https://catchpoll.com/mcp 120 calls an hour per IP. ## Join the waitlist (no key) POST https://catchpoll.com/v1/waitlist Content-Type: application/json {"email": "owner@example.com", "wants": "what they are after, in plain words", "max_price_usd": 500, "agent": "your-agent-name"} Only email is required. 10 sign-ups an hour per IP. ## Read API (Authorization: Bearer cp_…) - GET https://catchpoll.com/v1/candidates?tld=io&bucket=one_word,two_word&drops_within=72h&min_rank=&limit=50 Rated names dropping soon: drop time and confidence, value, brandability, catch odds, suggested max bid. - GET https://catchpoll.com/v1/search?tld=com,net&how=auction,closeout&min_age=15&max_price=60&min_hours_left=10&len=7-14&words=2&adult=no&link_spam=no&sort=-age&limit=50 Every way to get a name right now (GoDaddy auctions and closeouts, drops, expiring names) with one set of filters: tld, len, words, class, letters_only, match (substring or /regex/), exclude_words, niche, how, venue, min_price, max_price, min_hours_left, drop_within, min_age, max_age, semrush_rd, semrush_as, link_spam, min_rank, min/max_search_volume, adult, shortlisted, tracked; sort (when, ends_at, drop_at, price, age, rank, semrush_rd, search_volume, valuation, len, name; -key for descending), limit (max 500), cursor. Check filters (only names whose check has answered, unless include_unchecked=1): mx_now=none|any, mail_provider=google,microsoft,…, spf=yes|no, dmarc=yes|no, live_mail=yes|no (every name gets these once), wayback_years=3-, blocklists=clean|not_listed|listed (URIBL, SURBL, Spamhaus DBL), lists=clean, disposable=no, name_safe=1. checks=dns,rdap,wayback,dnsbl,lists,name (or all) queues those checks for the returned page; they run in the background. Each result's checks are ok, listed, unknown, pending (queued) or not_run. Unknown is never clean. Owner-edited data: style= (e.g. mailbox), wordlist=/not_wordlist=, sort=score:. What the site was (archive.org snapshots read by an LLM): category=, past_use=none|parked|personal|real_org, sensitive_sector=no|medical|legal|finance|government|school. saved= runs your saved search. - GET https://catchpoll.com/v1/searches, GET|PUT|DELETE https://catchpoll.com/v1/searches/{name} (PUT/DELETE need scope search) Saved searches: {"query": "...", "run_at": "09:00", "checks": [...], "keep": 50, "webhook_url": "https://..."}, or {"names": [...]} for a watch. A daily run keeps only names whose checks have all answered and sends new ones to the webhook (X-Catchpoll-Signature: sha256=). GET https://catchpoll.com/v1/searches/{name}/runs/latest (or /runs/YYYY-MM-DD); POST https://catchpoll.com/v1/searches/{name}/run runs it now. - GET https://catchpoll.com/v1/names/{name}?wait=true Any name: every way to get it now, and all its checks. Queues the ones not fresh and waits up to 10 s for the fast ones (dns, rdap, dnsbl, lists, name); wayback (archive.org) comes back pending, read it again later. - GET https://catchpoll.com/v1/domains/{name}?fresh=true One name; fresh=true checks the registry first. Keys are by invitation during the beta: hello@catchpoll.com ## Coming soon MCP at https://catchpoll.com/mcp with tools list_drops, lookup_domain, quote_catch, catch_domain, get_catch, list_catches, cancel_catch, set_dns, request_delivery. Rules: quote before you catch; show the owner the price and fee and get their OK before catch_domain. ## Docs - [For agents](https://catchpoll.com/agents)