From unstoppable-domains
Use when searching for domains, checking availability, buying or registering domains, configuring DNS records, managing a domain portfolio, listing domains for sale, responding to offers, contacting sellers, generating AI landing pages, backordering expiring domains, renewing domains, or troubleshooting Unstoppable Domains MCP/CLI/API errors.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unstoppable-domains:domainsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Complete reference for the Unstoppable Domains User API via MCP server, CLI, or REST API. For the full tool catalog with descriptions, see [tools-full.md](tools-full.md).
Complete reference for the Unstoppable Domains User API via MCP server, CLI, or REST API. For the full tool catalog with descriptions, see tools-full.md.
5000 = $50.00)ud_cart_get_url, ud_cart_add_payment_method_url, ud_authenticated_url_get, signatureNote fields) are single-use, valid 60 secondsapplyToAllDomainsInPortfolio: true for portfolio-wide operationsud_domains_search accepts up to 10 queries and 5 TLDs per call (defaults: com, net, org, ai, io). ud_tld_list shows all supported TLDs. For pending-delete/expiring inventory, use ud_expireds_list (up to 500/call).
When suggesting domain names to a user, apply these rules to every candidate:
Hard blockers (never propose these):
brew-haven.com), multi-dash (the-best-coffee-shop.com), trailing or leading dash. Hyphens signal low quality and hurt type-in recall.4you, 2fast), no suffix numbers (coffee24, domain365), no leet (c0ffee). Digit names read as spammy and date the brand.gooogle, amaz0n), even if technically available. Registrar support will field takedown complaints.Quality guidelines:
brewhaven) or meaningful compounds (cozycoffee) over literal descriptions (coffeeshopportland). Descriptive names don't scale with the brand..store for e-commerce, .io for tech, .design for studios. A .biz on a tech startup reads as low quality.Good examples: brewhaven.com, cozycoffee.co, roasted.studio. Bad examples: brew-haven.com, brew2haven.com, coffeeshopindowntownportland.com.
After searching, use marketplace.source and marketplace.status to pick the correct cart tool:
| source | status | Action |
|---|---|---|
unstoppable_domains | available | ud_cart_add_domain_registration |
unstoppable_domains | registered-listed-for-sale | ud_cart_add_domain_listed |
unstoppable_domains | registered-listed-for-offers | Cannot cart. Share purchaseUrl for offers. |
afternic | registered-listed-for-sale | ud_cart_add_domain_afternic |
sedo | registered-listed-for-sale | ud_cart_add_domain_sedo |
| any | registered-not-for-sale | Not purchasable. Use ud_lead_get to contact seller. |
Using the wrong cart tool will fail. Always check marketplace.source first.
DNS domains (.com, .org, .net, etc.) require an ICANN contact before checkout.
1. ud_domains_search -> Find available domains
2. ud_contacts_list -> Check for existing ICANN contacts
3. ud_contact_create -> Create if none (suggest account email for instant verification)
4. ud_cart_add_domain_registration -> Add to cart (max 50 domains)
5. ud_cart_get_payment_methods -> Verify payment method or sufficient credits
6. ud_cart_checkout -> Complete purchase (pass paymentMethodId if credits insufficient)
Draft contacts (ID starts with draft-) are still syncing. Wait a few seconds and re-check ud_contacts_list.
1. ud_domains_search -> Note marketplace.source and marketplace.status
2. Correct cart tool -> See table above
3. ud_cart_get -> Verify cart contents and pricing
4. ud_cart_get_payment_methods -> Check payment
5. ud_cart_checkout -> Or ud_cart_get_url for browser checkout
Only UD marketplace listings support LTO. Check search results for listingSettings.leaseToOwnOptions:
type: equal_installments or down_payment_plus_equal_installmentstermLength: 2-120 months (must not exceed maxTermLength)downPaymentPercentage: 10-90% (only for down_payment type)Pass leaseToOwnOptions to ud_cart_add_domain_listed.
For pending-delete/coming-soon domains:
1. ud_expireds_list or ud_domains_search -> Find domain + availability timestamp
2. ud_contacts_list / ud_contact_create -> Ensure ICANN contact exists
3. ud_backorder_create -> Place backorder (needs contactId + availableAfterTimestamp)
Registration fee charged only on successful catch. Domainer Club members get up to $500 overdraft. Others must prepay at unstoppabledomains.com/account-prepay. Manage with ud_backorders_list and ud_backorder_cancel.
| Tool | Purpose |
|---|---|
ud_cart_get | View cart with pricing breakdown |
ud_cart_remove | Remove items from cart |
ud_cart_get_url | Magic link for browser checkout (60s, single-use) |
ud_cart_add_payment_method_url | Magic link to add payment method |
ud_cart_add_domain_renewal | Add renewals (1-10 years, max 50 domains) |
ud_cart_add_ai_credits | Add AI credit packs |
Always check nameservers first. DNS record management only works with UD default nameservers.
1. ud_dns_nameservers_list -> Check nameserver status
2. ud_dns_records_list -> View current records
3. ud_dns_record_add -> Add records (upsert modes: append, replace, disallowed)
4. ud_domain_pending_operations -> Verify changes (DNS changes are async)
Record types: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA. TTL: 60-86400 (default: 3600).
ud_dns_record_update updates by record ID. ud_dns_record_remove deletes by record ID. ud_dns_records_remove_all requires confirmDeleteAll: true — destructive.
Google Workspace email: MX records at root (@): 1 aspmx.l.google.com., 5 alt1.aspmx.l.google.com., 5 alt2.aspmx.l.google.com., 10 alt3.aspmx.l.google.com., 10 alt4.aspmx.l.google.com. + TXT: v=spf1 include:_spf.google.com ~all
Point to web server: A record at @ with server IP, plus CNAME www -> example.com.
ud_dns_nameservers_set_custom — 2-12 hostnames. Disables DNS record management.ud_dns_nameservers_set_default — Re-enables record management. External records do NOT carry over.ud_dns_hosting_add — LISTING_PAGE (for-sale page), REDIRECT_301, REDIRECT_302. forceCompatibility: true auto-switches nameservers.ud_dns_hosting_list / ud_dns_hosting_remove — view/remove configs.ud_presets_list, ud_presets_save, ud_presets_apply, ud_presets_delete — reusable nameserver, record, and forwarding configs.
ud_portfolio_list for portfolio-wide scans/stats. Filters: searchTerm, status, expiringWithinDays, expired, minLength, maxLength, autoRenewal, tagFilters. Sorting by name/length/purchasedAt/expiresAt/listingPrice/offers/leads/watchlistCount. pageSize up to 500.
ud_domain_get for deep inspection of up to 50 named domains — lifecycle, flags, DNS, marketplace metrics, tags, pending operations.
1. ud_portfolio_list -> Check expiration dates
2. ud_cart_add_domain_renewal -> Add renewals (1-10 years, max 50)
3. ud_cart_get_payment_methods -> Verify payment
4. ud_cart_checkout -> Complete
ud_domain_auto_renewal_update — enable/disable. Needs valid payment method on file.
ud_domain_tags_add / ud_domain_tags_remove — max 10 tags/call, 20 chars each. Auto-creates. Idempotent.ud_domain_flags_update — WHOIS privacy (DNS_WHOIS_PROXY: ENABLED recommended), transfer lock (DNS_TRANSFER_OUT: DISABLED = locked, recommended).ud_domain_push — requires targetAccountId (format: adjective-noun-xxx), otpCode (6-digit MFA). Max 50 domains. Recipient accepts within 4 hours. User must have MFA enabled.
12 tools support applyToAllDomainsInPortfolio: true, bypassing the 50-domain limit: generate_lander, remove_lander, tags_add, tags_remove, flags_update, auto_renewal_update, hosting_add, hosting_remove, nameservers_set_default, nameservers_set_custom, records_remove_all, record_add.
1. ud_portfolio_list -> Confirm ownership
2. ud_listing_create -> Create listing (price, offers, validity, LTO)
3. ud_offers_list -> Monitor incoming offers
4. ud_offer_respond -> Accept or reject
Listing settings: priceInCents ($11-$2M, 0 = offers-only), expiresAt (default 90 days), isOfferFeatureEnabled, minOfferAmountInCents, isEmailAliasUsed, leaseToOwnOptions. ud_listing_update / ud_listing_cancel support bulk (max 50). Listings may require signing — signatureNote URLs are magic links.
ud_offers_list — filter by domainName, group (active/sold)ud_offer_respond — accept/reject, up to 50. Acceptance may require signing.ud_leads_list (filter by domain), ud_lead_get (get or create), ud_lead_messages_list (newest-first, cursor pagination), ud_lead_message_send (max 1000 chars). Display messages in chronological order.
Each generation costs 1 AI credit. New accounts get 5 free. ud_ai_credits_get checks balance. ud_cart_add_ai_credits to purchase more.
ud_domain_generate_lander — async, custom instructions (tone/colors/content), max 50, supports applyToAllDomainsInPortfolioud_domain_lander_status — pending/generating/processing/hosted/failed/noneud_domain_download_lander — htmlContent (single-page) or zipContent (base64 multi-file)ud_domain_upload_lander — HTML or zip, requires Domainer Club, max 1MB, replaces existingud_domain_remove_lander — destructive, supports applyToAllDomainsInPortfolio| Error | Fix |
|---|---|
| "Expected a domain" / cart tool mismatch | Check marketplace.source from search results. Use matching cart tool. |
| Domain not available | Re-run ud_domains_search. Suggest alternatives. |
| Error | Fix |
|---|---|
| Missing ICANN contact | ud_contacts_list then ud_contact_create. Use account email for instant verification. |
Contact in draft (draft-* ID) | Wait a few seconds, re-check ud_contacts_list. |
| No payment method / insufficient balance | ud_cart_get_payment_methods to check. Pass paymentMethodId or use ud_cart_add_payment_method_url. |
| Error | Fix |
|---|---|
| Cannot modify records | Domain uses custom nameservers. Switch to UD defaults or manage at external provider. |
| Changes not appearing | DNS is async. Use ud_domain_pending_operations. |
| Record already exists | Use upsertMode: "append" or "replace". |
| NO_CHANGE | Domain expired or in redemption. Check ud_domain_get. |
| Error | Fix |
|---|---|
| 401 Unauthorized | Re-authenticate: ud auth login or reconnect OAuth. |
| 403 Forbidden | Missing OAuth scope. Check Account Settings > Connected Apps. |
| MCP not connecting | Verify with claude mcp list. Check Desktop config file path. Restart after changes. |
| Error | Fix |
|---|---|
| MFA not enabled | Must enable in account security settings first. |
| Invalid OTP | Time-based — ask for fresh code. |
| Domain ineligible | Check ud_domain_get — expired, pending transfer, or non-ICANN domains can't be pushed. |
ud auth status # Check authentication
ud --env sandbox ... # Test in sandbox (no charges)
ud --output json ... # Raw JSON for debugging
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub unstoppabledomains/skills --plugin unstoppable-domains