{"openapi":"3.1.0","info":{"title":"User API","description":"Search, check availability, and purchase traditional DNS domains. This API enables AI assistants to help users find and buy domain names.\n\nWhen using the API directly, you will need an API key. See [API Key setup](/user-api/overview#api-key-advanced) for instructions.","version":"1.0.0","contact":{"name":"Unstoppable Domains","url":"https://unstoppabledomains.com","email":"support@unstoppabledomains.com"},"x-logo":{"url":"https://unstoppabledomains.com/images/logos/ud-logo-icon.svg"}},"servers":[{"url":"https://api.unstoppabledomains.com","description":"Production server"}],"paths":{"/mcp/v1/actions/ud_domains_search":{"post":{"operationId":"domainsSearch","summary":"Search for available domains or check specific domain availability","description":"Search for domain availability and pricing. Can check a specific domain (e.g., \"example.com\") or search terms across multiple TLDs. Supports multiple queries in a single request for efficient batch lookups. Returns a list of matching domains with their availability status, prices, and other details. IMPORTANT: Not all ICANN TLDs are supported. Use ud_tld_list to verify TLD support before searching with specific TLDs.","tags":["Domain Search"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"oneOf":[{"type":"string","minLength":1},{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10}],"description":"Domain name(s) to search - can be a full domain name like \"example.com\" (TLD is inferred) or a search term like \"mybusiness\" (searches across TLDs). Supports array of up to 10 terms for batch operations.","example":"example.com"},"tlds":{"type":"array","items":{"type":"string"},"description":"Optional list of up to 5 ICANN TLDs to search (e.g., [\"com\", \"org\", \"io\"]). Must be supported TLDs - use ud_tld_list to verify. Defaults to popular TLDs (com, net, org, ai, io) or inferred from query.","example":["com","org","io"]},"limit":{"type":"number","minimum":1,"maximum":100,"description":"Maximum number of results to return (1-100, default: 20)","example":20},"offset":{"type":"number","minimum":0,"description":"Number of results to skip for pagination (default: 0)","example":0}}}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchDomainsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_tld_list":{"post":{"operationId":"tldList","summary":"List available TLDs","description":"List all available ICANN TLDs (top-level domains) supported by our registrar.","tags":["Domain Search"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"List of available TLDs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TldListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_portfolio_list":{"post":{"operationId":"portfolioList","summary":"List portfolio domains","description":"List domains in the authenticated user's portfolio with filtering, sorting, and pagination. By default, only ICANN (DNS) domains are returned. Returns 50 domains per page by default. If hasMore is true in the pagination response, increment the page parameter to fetch additional results.","tags":["Portfolio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"number","minimum":1,"description":"Page number, 1-indexed (default: 1)","example":1},"pageSize":{"type":"number","minimum":1,"maximum":100,"description":"Number of domains per page, 1-100 (default: 50)","example":50},"searchTerm":{"type":"string","description":"Optional search term to filter domains by name"},"status":{"type":"string","enum":["all","for-sale","unlisted"],"description":"Filter by listing status: \"all\" (default), \"for-sale\", or \"unlisted\""},"registryType":{"type":"string","enum":["dns","web3"],"description":"Filter by registry type: \"dns\" (ICANN/Web2 domains, default) or \"web3\" (blockchain domains only)"},"expiringWithinDays":{"type":"number","minimum":1,"maximum":365,"description":"Filter domains expiring within the specified number of days (1-365)","example":30},"expired":{"type":"boolean","description":"Filter for domains that have already expired"},"minLength":{"type":"number","minimum":1,"description":"Filter domains with label length >= this value"},"maxLength":{"type":"number","minimum":1,"description":"Filter domains with label length <= this value"},"autoRenewal":{"type":"string","enum":["true","false"],"description":"Filter by auto-renewal status"},"tagFilters":{"type":"array","items":{"type":"string"},"description":"Filter domains by tag names (e.g., [\"personal\", \"business\"])"},"orderBy":{"type":"string","enum":["name","length","purchasedAt","expiresAt","listingPrice","offers","leads","watchlistCount"],"description":"Sort by: \"name\", \"length\", \"purchasedAt\", \"expiresAt\", \"listingPrice\", \"offers\", \"leads\", or \"watchlistCount\""},"orderDirection":{"type":"string","enum":["asc","desc"],"description":"Sort direction: \"asc\" (ascending, default) or \"desc\" (descending)"}}}}}},"responses":{"200":{"description":"Portfolio domains list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDomainsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_get":{"post":{"operationId":"domainGet","summary":"Get comprehensive portfolio domain info","description":"Get comprehensive information for specific domains in your portfolio. Returns all data from ud_portfolio_list plus additional detail: renewal pricing, flags, DNS configuration (nameservers, hosting, DNSSEC), marketplace metrics, and pending operations. Supports bulk lookups for up to 50 domains.","tags":["Portfolio"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50,"description":"Array of domain names to get info for (e.g., [\"example.com\", \"mysite.io\"])","example":["example.com","mysite.io"]}}}}}},"responses":{"200":{"description":"Portfolio domain details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPortfolioDomainsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_contacts_list":{"post":{"operationId":"contactsList","summary":"List ICANN contacts","description":"List ICANN contacts configured for the authenticated user's account. Required for DNS domain registration (.com, .org, etc.).","tags":["Contacts"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"includeDisabled":{"type":"boolean","description":"Include disabled contacts (default: false)"}}}}}},"responses":{"200":{"description":"List of ICANN contacts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_contact_create":{"post":{"operationId":"contactCreate","summary":"Create ICANN contact","description":"Create a new ICANN contact for DNS domain registration. Required for .com, .org, .net, etc.","tags":["Contacts"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["firstName","lastName","email","phone","street","city","stateProvince","postalCode","countryCode"],"properties":{"firstName":{"type":"string","description":"Contact first name"},"lastName":{"type":"string","description":"Contact last name"},"email":{"type":"string","format":"email","description":"Contact email address"},"phone":{"type":"object","required":["dialingPrefix","number"],"properties":{"dialingPrefix":{"type":"string","description":"Phone country code (e.g., \"1\")"},"number":{"type":"string","description":"Phone number"}}},"street":{"type":"string","description":"Street address"},"city":{"type":"string","description":"City"},"stateProvince":{"type":"string","description":"State/province code"},"postalCode":{"type":"string","description":"Postal/ZIP code"},"countryCode":{"type":"string","description":"Two-letter ISO country code"},"organization":{"type":"string","description":"Company name (optional)"}}}}}},"responses":{"200":{"description":"Contact created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreateResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_get":{"post":{"operationId":"cartGet","summary":"Get shopping cart with pricing","description":"Get the current shopping cart contents with comprehensive pricing breakdown including discounts, taxes, and credits. Optionally apply a discount code. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"discountCode":{"type":"string","description":"Optional discount/promo code to apply"}}}}}},"responses":{"200":{"description":"Cart contents with pricing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_add_domain_registration":{"post":{"operationId":"cartAddDomainRegistration","summary":"Add domains to cart for registration","description":"Add one or more domains to the shopping cart for fresh registration. Returns the updated cart summary. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full domain name (e.g., \"example.com\")"},"productType":{"type":"string","description":"Product type (default: Domain)"},"quantity":{"type":"integer","description":"Registration years (1-10, default: 1)","minimum":1,"maximum":10}}},"minItems":1,"description":"Array of domains to add to the cart"}}}}}},"responses":{"200":{"description":"Updated cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddToCartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_add_domain_listed":{"post":{"operationId":"cartAddDomainListed","summary":"Add marketplace-listed domains to cart","description":"Add one or more marketplace-listed domains to the shopping cart. Supports both \"Buy it now\" (full price) and \"Lease to Own\" (monthly payments) purchases. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full domain name listed on marketplace (e.g., \"premium.com\")"},"leaseToOwnOptions":{"type":"object","description":"Optional lease-to-own options. Omit for immediate \"Buy it now\" purchase.","properties":{"type":{"type":"string","enum":["equal_installments","down_payment_plus_equal_installments"],"description":"Payment type: \"equal_installments\" or \"down_payment_plus_equal_installments\""},"termLength":{"type":"integer","minimum":2,"maximum":120,"description":"Number of monthly payments (2-120)"},"downPaymentPercentage":{"type":"number","minimum":10,"maximum":90,"description":"Down payment percentage (10-90%), required for down_payment type"}}}}},"minItems":1,"maxItems":50,"description":"Array of marketplace-listed domains to add to cart"}}}}}},"responses":{"200":{"description":"Updated cart with listed domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddListedDomainToCartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_add_domain_afternic":{"post":{"operationId":"cartAddDomainAfternic","summary":"Add Afternic marketplace domains to cart","description":"Add one or more Afternic marketplace domains to the shopping cart. For domains with marketplace.source = \"afternic\" and marketplace.status = \"registered-listed-for-sale\" from search results. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full domain name from Afternic marketplace (e.g., \"premium.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of Afternic marketplace domains to add to cart"}}}}}},"responses":{"200":{"description":"Updated cart with Afternic domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAfternicDomainToCartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_add_domain_sedo":{"post":{"operationId":"cartAddDomainSedo","summary":"Add Sedo marketplace domains to cart","description":"Add one or more Sedo marketplace domains to the shopping cart. For domains with marketplace.source = \"sedo\" and marketplace.status = \"registered-listed-for-sale\" from search results. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full domain name from Sedo marketplace (e.g., \"premium.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of Sedo marketplace domains to add to cart"}}}}}},"responses":{"200":{"description":"Updated cart with Sedo domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSedoDomainToCartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_add_domain_renewal":{"post":{"operationId":"cartAddDomainRenewal","summary":"Add domain renewals to cart","description":"Add one or more domain renewals to the shopping cart. User must own the domains to renew them. Returns the updated cart summary. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full domain name to renew (e.g., \"example.com\")"},"quantity":{"type":"integer","description":"Renewal period in years (1-10, default: 1)","minimum":1,"maximum":10}}},"minItems":1,"maxItems":50,"description":"Array of domains to add renewal to cart"}}}}}},"responses":{"200":{"description":"Updated cart with renewals","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDomainRenewalToCartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_remove":{"post":{"operationId":"cartRemove","summary":"Remove items from cart","description":"Remove one or more items from the shopping cart by product ID. Returns the updated cart. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["productIds"],"properties":{"productIds":{"type":"array","items":{"type":"number"},"minItems":1,"description":"Array of product IDs to remove from the cart"}}}}}},"responses":{"200":{"description":"Updated cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveFromCartResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_get_payment_methods":{"post":{"operationId":"cartGetPaymentMethods","summary":"Get available payment methods","description":"Get saved credit cards, account balance, and promo credits available for checkout. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Payment methods","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentMethodsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_add_payment_method_url":{"post":{"operationId":"cartAddPaymentMethodUrl","summary":"Get URL to add a payment method","description":"Get a URL to the payment management page where users can securely add a new credit card. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Add payment method URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPaymentMethodUrlResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_checkout":{"post":{"operationId":"cartCheckout","summary":"Complete cart checkout","description":"Complete checkout for cart items using saved payment method or account balance. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"paymentMethodId":{"type":"string","description":"Stripe payment method ID for card payment. Required if cart total exceeds account balance."},"useAccountBalance":{"type":"boolean","description":"Whether to apply account balance to reduce total. Defaults to true."},"discountCode":{"type":"string","description":"Optional discount/promo code to apply"},"contactId":{"type":"string","description":"ICANN contact ID for DNS domain registration. Get IDs from ud_contacts_list. If not specified, uses the most recent contact."}}}}}},"responses":{"200":{"description":"Checkout result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_cart_get_url":{"post":{"operationId":"cartGetUrl","summary":"Get checkout URL","description":"Generate a checkout URL for completing the purchase in a browser. Returns the URL along with a cart summary. Requires authentication.","tags":["Cart"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"discountCode":{"type":"string","description":"Optional discount/promo code to include in checkout URL"}}}}}},"responses":{"200":{"description":"Checkout URL and cart summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutUrlResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_listing_create":{"post":{"operationId":"listingCreate","summary":"Create marketplace listings","description":"List one or more domains for sale on the marketplace. Supports buy-now pricing, offers, and lease-to-own options.","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["domainName"],"properties":{"domainName":{"type":"string","description":"The domain name to list"},"priceInCents":{"type":"number","description":"Buy-now price in cents (0 for offers-only)"},"expiresAt":{"type":"string","description":"Listing expiration date as ISO 8601 string (e.g., \"2025-12-31\"). Must be 1-36500 days from now. Default: 90 days."},"isEmailAliasUsed":{"type":"boolean","description":"Enable message seller feature"},"listingSettings":{"type":"object","properties":{"isOfferFeatureEnabled":{"type":"boolean"},"minOfferAmountInCents":{"type":"number"},"domainDisplayName":{"type":"string","description":"Optional human-readable domain display name used in listings"}}},"leaseToOwnOptions":{"type":"object","description":"Optional lease-to-own configuration for the domain listing","properties":{"type":{"type":"string","enum":["equal_installments","down_payment_plus_equal_installments"]},"maxTermLength":{"type":"integer","minimum":2,"maximum":120,"description":"Maximum term length in months (2-120)"},"downPaymentPercentage":{"type":"number","description":"Down payment percentage (10-90), required for down_payment type"}}}}},"minItems":1,"maxItems":50}}}}}},"responses":{"200":{"description":"Listing creation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_listing_update":{"post":{"operationId":"listingUpdate","summary":"Update marketplace listings","description":"Update price, settings, or options for existing listings.","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["listings"],"properties":{"listings":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Listing ID"},"priceInCents":{"type":"number"},"expiresAt":{"type":"string","description":"New listing expiration date as ISO 8601 string (e.g., \"2025-12-31\"). Must be 1-36500 days from now."},"isEmailAliasUsed":{"type":"boolean"},"listingSettings":{"type":"object","description":"Listing-level settings such as offers and display preferences.","properties":{"minOfferAmountInCents":{"type":"number","description":"Minimum offer amount (in cents) accepted for this listing."},"isOfferFeatureEnabled":{"type":"boolean","description":"Indicates whether the offer feature is enabled for this listing."},"domainDisplayName":{"type":"string","description":"Custom display name to use for this domain in marketplace contexts."}}},"leaseToOwnOptions":{"type":"object","description":"Lease-to-own configuration options for the listing.","properties":{"type":{"type":"string","enum":["equal_installments","down_payment_plus_equal_installments"]},"maxTermLength":{"type":"integer","minimum":2,"maximum":120,"description":"Maximum term length in months (2-120)"},"downPaymentPercentage":{"type":"number","description":"Down payment percentage (10-90), required for down_payment type"}}}}},"minItems":1,"maxItems":50}}}}}},"responses":{"200":{"description":"Listing update results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateListingResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_listing_cancel":{"post":{"operationId":"listingCancel","summary":"Cancel marketplace listings","description":"Cancel one or more active marketplace listings.","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["listingIds"],"properties":{"listingIds":{"type":"array","items":{"type":"number"},"description":"Array of listing IDs to cancel","minItems":1,"maxItems":50}}}}}},"responses":{"200":{"description":"Cancellation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelListingResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_offers_list":{"post":{"operationId":"offersList","summary":"List marketplace offers","description":"List incoming offers on domains you own. Filter by domain or status.","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domainName":{"type":"string","description":"Filter by specific domain name"},"group":{"type":"string","enum":["active","sold"],"description":"Filter by group: \"active\" (pending) or \"sold\" (completed)"},"page":{"type":"number","description":"Page number (1-indexed)"}}}}}},"responses":{"200":{"description":"List of offers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListOffersResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_offer_respond":{"post":{"operationId":"offerRespond","summary":"Respond to marketplace offers","description":"Accept or reject incoming offers on your domains.","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["offers"],"properties":{"offers":{"type":"array","items":{"type":"object","required":["id","action"],"properties":{"id":{"type":"number","description":"Offer ID"},"action":{"type":"string","enum":["accept","reject"]}}},"minItems":1,"maxItems":50}}}}}},"responses":{"200":{"description":"Offer response results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RespondToOfferResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_leads_list":{"post":{"operationId":"leadsList","summary":"List domain conversation leads","description":"List conversations about domains you own or are interested in. Includes buyer-seller messaging threads.","tags":["Leads"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Filter by specific domain name (e.g., \"example.crypto\")"},"skipEmpty":{"type":"boolean","description":"Skip conversations with no messages (default: true)","default":true},"skip":{"type":"integer","description":"Number of conversations to skip (pagination offset, default: 0)","default":0,"minimum":0},"take":{"type":"integer","description":"Number of conversations to return (1-100, default: 20)","default":20,"minimum":1,"maximum":100}}}}}},"responses":{"200":{"description":"List of conversations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadsListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_lead_get":{"post":{"operationId":"leadGet","summary":"Get or create domain conversation","description":"Start or find an existing conversation with the seller of a domain. Returns existing conversation if one already exists.","tags":["Leads"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"The domain name to inquire about (e.g., \"example.crypto\")"},"buyerId":{"type":"string","description":"Optional: Encoded buyer ID for sellers responding to offers"}}}}}},"responses":{"200":{"description":"Conversation details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSellerResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_lead_messages_list":{"post":{"operationId":"leadMessagesList","summary":"List messages in a conversation","description":"Get messages in a domain conversation. Messages are returned newest-first with cursor-based pagination.","tags":["Leads"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["conversationId"],"properties":{"conversationId":{"type":"number","description":"The conversation ID"},"cursor":{"type":"string","description":"Pagination cursor for loading older messages"}}}}}},"responses":{"200":{"description":"List of messages","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMessagesListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_lead_message_send":{"post":{"operationId":"leadMessageSend","summary":"Send a message in a conversation","description":"Send a message in a domain conversation. Messages are encrypted at rest.","tags":["Leads"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["conversationId","content"],"properties":{"conversationId":{"type":"number","description":"The conversation ID"},"content":{"type":"string","maxLength":1000,"description":"Message content (1-1000 characters)"}}}}}},"responses":{"200":{"description":"Sent message details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadMessageSendResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_records_list":{"post":{"operationId":"dnsRecordsList","summary":"List DNS records for a domain","description":"List all DNS records for a domain in your portfolio. Supports filtering by record type and subdomain, with pagination.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain name (e.g., \"example.com\")"},"type":{"type":"string","description":"Filter by record type (A, AAAA, CNAME, MX, TXT, NS)"},"subName":{"type":"string","description":"Filter by subdomain (\"@\" for root, \"www\", \"*\" for wildcard)"},"cursor":{"type":"string","description":"Pagination cursor"}}}}}},"responses":{"200":{"description":"DNS records list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecordsListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_record_add":{"post":{"operationId":"dnsRecordAdd","summary":"Add DNS records (bulk)","description":"Add DNS records to one or more domains. Supports A, AAAA, CNAME, MX, TXT, NS, SRV, and CAA record types. Bulk operations up to 50 records.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["records"],"properties":{"records":{"type":"array","minItems":1,"maxItems":50,"description":"Array of DNS record configurations (1-50)","items":{"type":"object","required":["domain","type","values"],"properties":{"domain":{"type":"string","description":"Domain name (e.g., \"example.com\")"},"type":{"type":"string","description":"Record type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)"},"subName":{"type":"string","default":"@","description":"Subdomain (\"@\" for root, \"www\", \"*\" for wildcard)"},"values":{"type":"array","items":{"type":"string"},"description":"Record values"},"ttl":{"type":"number","default":3600,"description":"Time-to-live in seconds (60-86400)"}}}},"upsertMode":{"type":"string","enum":["append","replace","disallowed"],"description":"Global setting for how to handle existing records"}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_record_update":{"post":{"operationId":"dnsRecordUpdate","summary":"Update DNS records (bulk)","description":"Update existing DNS records on one or more domains. Bulk operations up to 50 records.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["records"],"properties":{"records":{"type":"array","minItems":1,"maxItems":50,"description":"Array of record update configurations (1-50)","items":{"type":"object","required":["domain","recordId","values"],"properties":{"domain":{"type":"string","description":"Domain name"},"recordId":{"type":"string","description":"Record ID from ud_dns_records_list"},"values":{"type":"array","items":{"type":"string"},"description":"New record values"},"ttl":{"type":"number","default":3600,"description":"Time-to-live in seconds (60-86400). Default: 3600"}}}}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_record_remove":{"post":{"operationId":"dnsRecordRemove","summary":"Remove DNS records (bulk)","description":"Remove specific DNS records by ID from one or more domains. Bulk operations up to 50 records.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["records"],"properties":{"records":{"type":"array","minItems":1,"maxItems":50,"description":"Array of record removal configurations (1-50)","items":{"type":"object","required":["domain","recordId"],"properties":{"domain":{"type":"string","description":"Domain name"},"recordId":{"type":"string","description":"Record ID to remove"}}}}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_records_remove_all":{"post":{"operationId":"dnsRecordsRemoveAll","summary":"Remove all DNS records (bulk)","description":"Remove ALL user-created DNS records from one or more domains. Requires explicit confirmation. Bulk operations up to 50 domains.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains","confirmDeleteAll"],"properties":{"domains":{"type":"array","minItems":1,"maxItems":50,"description":"Array of domains to remove all records from (1-50)","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Domain name"}}}},"confirmDeleteAll":{"type":"boolean","const":true,"description":"Must be exactly true to confirm this destructive operation"}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_nameservers_list":{"post":{"operationId":"dnsNameserversList","summary":"List nameservers for a domain","description":"List current nameservers and check if using UD defaults or custom nameservers.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain name"},"includeDnssec":{"type":"boolean","description":"Include DNSSEC info"}}}}}},"responses":{"200":{"description":"Nameservers list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsNameserversListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_nameservers_set_custom":{"post":{"operationId":"dnsNameserversSetCustom","summary":"Set custom nameservers (bulk)","description":"Configure external nameservers (e.g., Cloudflare, Route 53) for one or more domains. Supports up to 50 domains per request.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name","nameservers"],"properties":{"name":{"type":"string","description":"Domain name"},"nameservers":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":12,"description":"Nameserver hostnames"},"dnssec":{"type":"object","description":"Optional DNSSEC DS records"}}},"minItems":1,"maxItems":50,"description":"Array of domain configurations"}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_nameservers_set_default":{"post":{"operationId":"dnsNameserversSetDefault","summary":"Reset to UD default nameservers (bulk)","description":"Switch back to Unstoppable Domains default nameservers for one or more domains. Supports up to 50 domains per request.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Domain name"}}},"minItems":1,"maxItems":50,"description":"Array of domains"}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_hosting_list":{"post":{"operationId":"dnsHostingList","summary":"List hosting configurations","description":"List hosting/forwarding configurations (redirects, reverse proxy, hosted sites, UD Profile).","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain name"},"cursor":{"type":"string","description":"Pagination cursor"}}}}}},"responses":{"200":{"description":"Hosting configurations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsHostingListResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_hosting_add":{"post":{"operationId":"dnsHostingAdd","summary":"Add hosting configuration (bulk)","description":"Configure hosting for one or more domains: for-sale listing page, permanent redirect (301), temporary redirect (302), or reverse proxy. Supports up to 50 domains per request.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"Domain name"},"type":{"type":"string","enum":["LISTING_PAGE","REDIRECT_301","REDIRECT_302","REVERSE_PROXY"],"description":"Hosting type"},"targetUrl":{"type":"string","description":"Destination URL (required for REDIRECT_301, REDIRECT_302, REVERSE_PROXY)"},"subName":{"type":"string","description":"Subdomain to configure"},"forceCompatibility":{"type":"boolean","description":"Auto-configure UD nameservers if needed"}}},"minItems":1,"maxItems":50,"description":"Array of domain hosting configurations"}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_dns_hosting_remove":{"post":{"operationId":"dnsHostingRemove","summary":"Remove hosting configuration (bulk)","description":"Remove hosting/forwarding configuration from one or more domains. Supports up to 50 domains per request.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Domain name"},"subName":{"type":"string","description":"Subdomain to remove"},"deleteAll":{"type":"boolean","description":"Remove ALL hosting configs for this domain"}}},"minItems":1,"maxItems":50,"description":"Array of domains to remove hosting from"},"confirmDeleteAll":{"type":"boolean","enum":[true],"description":"Must be true when any domain has deleteAll: true"}}}}}},"responses":{"200":{"description":"Bulk operation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDnsOperationResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_pending_operations":{"post":{"operationId":"domainPendingOperations","summary":"Get pending operations for multiple domains","description":"Check status of DNS operations across multiple domains. Use to track changes and verify completion after bulk operations.","tags":["DNS Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Domain name"}}},"minItems":1,"maxItems":50,"description":"Array of domains to check for pending operations"},"includeCompleted":{"type":"boolean","description":"Include completed operations (last 24h)"}}}}}},"responses":{"200":{"description":"Pending operations for all domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingOperationsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_auto_renewal_update":{"post":{"operationId":"domainAutoRenewalUpdate","summary":"Enable or disable auto renewal for ICANN DNS domains","description":"Enable or disable auto renewal for ICANN DNS domains (.com, .net, .org, .io, etc.). When enabled, domains will be automatically renewed before expiration using the saved payment method. User must own the domains and have a valid payment method on file. Use ud_cart_get_payment_methods to retrieve available payment methods.","tags":["Domain Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action","domains"],"properties":{"action":{"type":"string","enum":["enable","disable"],"description":"Action to perform: \"enable\" or \"disable\" auto renewal"},"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full domain name (e.g., \"example.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of domains to update auto renewal for"},"paymentMethodId":{"type":"string","description":"Payment method ID for enabling. Use ud_cart_get_payment_methods to retrieve available payment methods. If not provided, uses default card."}}}}}},"responses":{"200":{"description":"Auto renewal update results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoRenewalUpdateResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_tags_add":{"post":{"operationId":"domainTagsAdd","summary":"Add tags to domains","description":"Add tags to domains in your portfolio. Creates new tags automatically if they don't exist. Supports bulk operations for up to 50 domains.","tags":["Domain Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains","tags"],"properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50,"description":"Array of domain names to add tags to (e.g., [\"example.com\", \"mysite.io\"])","example":["example.com","mysite.io"]},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":20},"minItems":1,"maxItems":10,"description":"Array of tag names to add (e.g., [\"Work\", \"Important\"]). Max 20 characters each.","example":["Work","Important"]}}}}}},"responses":{"200":{"description":"Tags added to domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDomainTagsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_tags_remove":{"post":{"operationId":"domainTagsRemove","summary":"Remove tags from domains","description":"Remove tags from domains in your portfolio. Supports bulk operations for up to 50 domains.","tags":["Domain Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains","tags"],"properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50,"description":"Array of domain names to remove tags from (e.g., [\"example.com\", \"mysite.io\"])","example":["example.com","mysite.io"]},"tags":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":10,"description":"Array of tag names to remove (e.g., [\"Work\", \"Old\"])","example":["Work","Old"]}}}}}},"responses":{"200":{"description":"Tags removed from domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveDomainTagsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_flags_update":{"post":{"operationId":"domainFlagsUpdate","summary":"Update domain flags","description":"Update domain flags (WHOIS privacy, transfer lock) for domains in your portfolio. Supports bulk operations for up to 50 domains.","tags":["Domain Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains","flags"],"properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50,"description":"Array of domain names to update (e.g., [\"example.com\", \"mysite.io\"])","example":["example.com","mysite.io"]},"flags":{"type":"object","description":"Flags to update","properties":{"DNS_TRANSFER_OUT":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"],"description":"ENABLED = transfers allowed, DISABLED = transfers blocked"}}},"DNS_WHOIS_PROXY":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"],"description":"ENABLED = personal info hidden, DISABLED = personal info public"}}}}}}}}}},"responses":{"200":{"description":"Flags updated for domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDomainFlagsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_push":{"post":{"operationId":"domainPush","summary":"Push domains to another user","description":"Push domains to another Unstoppable Domains user. Requires MFA (two-factor authentication) verification. The recipient must accept the transfer.","tags":["Domain Management"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains","targetAccountId","otpCode"],"properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50,"description":"Array of domain names to push (e.g., [\"example.com\", \"mysite.io\"])","example":["example.com","mysite.io"]},"targetAccountId":{"type":"string","minLength":1,"description":"Recipient's account ID in format \"adjective-noun-xxx\" (e.g., \"brave-tiger-k7m\")","example":"brave-tiger-k7m"},"otpCode":{"type":"string","pattern":"^\\d{6}$","description":"6-digit OTP code from your authenticator app","example":"123456"}}}}}},"responses":{"200":{"description":"Push initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushDomainsResponse"}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_generate_lander":{"post":{"operationId":"generateLander","summary":"Generate AI landing page for domains","description":"Trigger AI-generated landing page creation for one or more domains. Enqueues asynchronous generation jobs. Use ud_domain_lander_status to check progress.","tags":["AI Lander"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"description":"Domain name to generate a lander for (e.g., \"example.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of domains (1-50)"},"instructions":{"type":"string","maxLength":2000,"description":"Optional custom instructions to guide AI generation (e.g., tone, color scheme, content focus). Applied to all domains in the request."}}}}}},"responses":{"200":{"description":"Generation jobs enqueued","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"success":{"type":"boolean"},"jobId":{"type":"string"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_lander_status":{"post":{"operationId":"landerStatus","summary":"Check AI lander generation status","description":"Check the status of AI landing page generation for one or more domains. Returns pending, generating, processing, hosted, failed, or none.","tags":["AI Lander"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"description":"Domain name to check (e.g., \"example.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of domains (1-50)"}}}}}},"responses":{"200":{"description":"Lander status results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"status":{"type":"string","enum":["pending","generating","processing","hosted","failed","none"]},"hostingType":{"type":"string"},"error":{"type":"string"}}}}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_download_lander":{"post":{"operationId":"downloadLander","summary":"Download landing page content from domains","description":"Download existing hosted lander files from one or more domains. Single-page landers return raw HTML (htmlContent); multi-file sites return a base64-encoded zip (zipContent).","tags":["AI Lander"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"description":"Domain name to download lander content for (e.g., \"example.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of domains (1-50)"}}}}}},"responses":{"200":{"description":"Download results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"success":{"type":"boolean"},"format":{"type":"string","enum":["html","zip"],"description":"Content format: \"html\" for single-page landers, \"zip\" for multi-file sites"},"htmlContent":{"type":"string","description":"Raw HTML string (when format is \"html\")"},"zipContent":{"type":"string","description":"Base64-encoded zip file (when format is \"zip\")"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_domain_remove_lander":{"post":{"operationId":"removeLander","summary":"Remove AI landing page from domains","description":"Remove AI-generated landing pages and hosting configuration from one or more domains. Deletes GCS content and removes hosting config.","tags":["AI Lander"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"description":"Domain name to remove lander from (e.g., \"example.com\")"}}},"minItems":1,"maxItems":50,"description":"Array of domains (1-50)"}}}}}},"responses":{"200":{"description":"Lander removal results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"success":{"type":"boolean"},"operationId":{"type":"string"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"}}}}}},"401":{"description":"Authentication required"}}}},"/api/oauth/signup":{"post":{"operationId":"oauthSignup","summary":"Create an account via email and password (headless)","description":"Step 1 of headless account creation. Registers a new user with email and password, sends a verification code via email, and returns a signup_session_token. Use POST /api/oauth/signup/verify with the token and code to get OAuth tokens. Returns identical responses for new and existing users to prevent account enumeration.","tags":["Account"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string","format":"email","description":"Email address for the new account"},"password":{"type":"string","minLength":8,"description":"Password with at least 8 characters, one uppercase, one lowercase, one digit, and one special character"}}}}}},"responses":{"200":{"description":"Signup session created","content":{"application/json":{"schema":{"type":"object","properties":{"signup_session_token":{"type":"string","description":"Token to use with /api/oauth/signup/verify"},"expires_in":{"type":"number","description":"Session TTL in seconds (900)"}}}}}},"400":{"description":"Invalid email, password, or disposable email"},"429":{"description":"Rate limit exceeded"}}}},"/api/oauth/signup/verify":{"post":{"operationId":"oauthSignupVerify","summary":"Verify signup code and get OAuth tokens","description":"Step 2 of headless account creation. Exchanges the signup_session_token and the 6-character verification code (sent via email) for OAuth access and refresh tokens.","tags":["Account"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["signup_session_token","verification_code"],"properties":{"signup_session_token":{"type":"string","description":"Token from POST /api/oauth/signup"},"verification_code":{"type":"string","description":"6-character alphanumeric code from the verification email"}}}}}},"responses":{"200":{"description":"OAuth tokens issued","content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"number"},"refresh_token":{"type":"string"},"scope":{"type":"string"}}}}}},"400":{"description":"Invalid or expired session, wrong code, or too many attempts"},"429":{"description":"Rate limit exceeded"}}}},"/mcp/v1/actions/ud_backorder_create":{"post":{"operationId":"backorderCreate","tags":["Backorders"],"summary":"Create domain backorders","description":"Create backorders for one or more expiring DNS domains. The system monitors the domain and automatically registers it when it drops.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["name","contactId","availableAfterTimestamp"],"properties":{"name":{"type":"string","description":"Domain name to backorder"},"contactId":{"type":"string","description":"ICANN contact ID for domain registration"},"availableAfterTimestamp":{"type":"number","description":"Unix timestamp (ms) when the domain becomes available for registration"}}}}}}}}},"responses":{"200":{"description":"Backorder creation results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"success":{"type":"boolean"},"backorderId":{"type":"number"},"price":{"type":"number"},"serviceFee":{"type":"number"},"status":{"type":"string"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"message":{"type":"string"}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_backorder_cancel":{"post":{"operationId":"backorderCancel","tags":["Backorders"],"summary":"Cancel domain backorders","description":"Cancel one or more pending domain backorders. Refunds the Account Balance hold (minus non-refundable service fee) and removes the scheduled registration job.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["backorderIds"],"properties":{"backorderIds":{"type":"array","items":{"type":"number"},"minItems":1,"maxItems":50,"description":"Array of backorder IDs to cancel"}}}}}},"responses":{"200":{"description":"Backorder cancellation results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"backorderId":{"type":"number"},"domain":{"type":"string"},"success":{"type":"boolean"},"refundAmount":{"type":"number"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"message":{"type":"string"}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_backorders_list":{"post":{"operationId":"backordersList","tags":["Backorders"],"summary":"List user's backorders","description":"List the authenticated user's domain backorders with optional status filtering, domain search, and pagination. Status normalization is applied automatically.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"array","items":{"type":"string","enum":["pending","cancelled","in-progress","registration-pending","completed-success","completed-not-available","completed-payment-failed","completed-user-contact-invalid","failed"]},"description":"Filter by backorder status"},"query":{"type":"string","maxLength":253,"description":"Search by domain name (partial match)"},"offset":{"type":"number","minimum":0,"description":"Pagination offset (default: 0)"},"limit":{"type":"number","minimum":1,"maximum":100,"description":"Items per page (1-100, default: 20)"}}}}}},"responses":{"200":{"description":"List of backorders with pagination","content":{"application/json":{"schema":{"type":"object","properties":{"backorders":{"type":"array","items":{"type":"object","properties":{"backorderId":{"type":"number"},"domain":{"type":"string"},"status":{"type":"string"},"price":{"type":"number"},"serviceFee":{"type":"number"},"availableAfter":{"type":"number"},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}}}},"pagination":{"type":"object","properties":{"total":{"type":"number"},"count":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"hasMore":{"type":"boolean"},"nextOffset":{"type":"number","nullable":true}}}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_expireds_list":{"post":{"operationId":"expiredsList","tags":["Backorders"],"summary":"Browse the expireds/pending-delete domain marketplace","description":"List domains that are approaching expiration or have recently dropped and are available for backorder registration. Supports filtering by status, TLD, label length, backorder count, and watchlist count.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","maxLength":253,"description":"Search by domain name (exact match if contains dot) or label substring"},"status":{"type":"string","enum":["COMING_SOON","AVAILABLE_BACKORDER"],"description":"Filter by drop status: \"COMING_SOON\" (not yet dropped) or \"AVAILABLE_BACKORDER\" (already dropped)"},"tlds":{"type":"array","items":{"type":"string"},"description":"Filter by TLD extensions (e.g., [\"com\", \"net\"])"},"sortBy":{"type":"string","enum":["name","deletionAt","labelLength","watchlistCount","backorderCount"],"description":"Sort field (default: \"deletionAt\")"},"sortDirection":{"type":"string","enum":["ASC","DESC"],"description":"Sort direction (default: \"ASC\")"},"lengthRange":{"type":"array","items":{"type":"number","minimum":0},"minItems":2,"maxItems":2,"description":"Filter by label length range [min, max]. Use max=0 for no upper bound."},"bidsRange":{"type":"array","items":{"type":"number","minimum":0},"minItems":2,"maxItems":2,"description":"Filter by backorder count range [min, max]. Use max=0 for no upper bound."},"watchlistRange":{"type":"array","items":{"type":"number","minimum":0},"minItems":2,"maxItems":2,"description":"Filter by watchlist count range [min, max]. Use max=0 for no upper bound."},"offset":{"type":"number","minimum":0,"description":"Number of items to skip for pagination (default: 0)"},"limit":{"type":"number","minimum":1,"maximum":500,"description":"Maximum number of items to return (1-500, default: 50)"}}}}}},"responses":{"200":{"description":"List of expiring/dropped domains","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Full domain name"},"deletionTimestamp":{"type":"number","description":"Unix timestamp in milliseconds when the domain drops/dropped"},"status":{"type":"string","enum":["COMING_SOON","AVAILABLE_BACKORDER"]},"labelLength":{"type":"number","description":"Length of the domain label"},"watchlistCount":{"type":"number","description":"Number of users watching this domain"},"backorderCount":{"type":"number","description":"Number of active backorders"}}}},"pagination":{"type":"object","properties":{"total":{"type":"number"},"count":{"type":"number"},"offset":{"type":"number"},"limit":{"type":"number"},"hasMore":{"type":"boolean"},"nextOffset":{"type":"number"}}},"truncated":{"type":"boolean","description":"Whether the response was truncated to fit within size limits"},"truncationMessage":{"type":"string","description":"Message indicating how many results were truncated"}}}}}},"401":{"description":"Authentication required"}}}},"/mcp/v1/actions/ud_authenticated_url_get":{"post":{"operationId":"authenticatedUrlGet","tags":["Session"],"summary":"Generate an authenticated URL for browser sign-in","description":"Creates a one-time URL that automatically signs the user in and redirects to the specified page. Use this whenever the user needs to complete an action in the browser (e.g., adding a payment method, managing account settings). The URL expires after 60 seconds and is single-use.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["path"],"properties":{"path":{"type":"string","pattern":"^/","minLength":1,"description":"Page path to open in the browser, e.g. \"/account/payments/card\""}}}}}},"responses":{"200":{"description":"Authenticated URL generated","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"One-time authenticated URL (valid for 60 seconds)"},"expiresIn":{"type":"number","description":"Seconds until the URL expires"},"instructions":{"type":"string","description":"Guidance for the user"}}}}}},"401":{"description":"Authentication required"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key for authenticated operations. Obtain from your Unstoppable Domains account settings."}},"schemas":{"SearchDomainsResponse":{"type":"object","properties":{"searchQuery":{"type":"string","description":"Sanitized search term (present for single query requests)"},"searchQueries":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string"},"invalidReason":{"type":["string","null"]},"invalidCharacters":{"type":"array","items":{"type":"string"}}}},"description":"Array of search queries with metadata (present for multiple query requests)"},"searchedTlds":{"type":"array","items":{"type":"string"},"description":"TLDs that were searched"},"invalidReason":{"type":["string","null"],"description":"Validation error reason (present for single query requests)"},"invalidCharacters":{"type":["array","null"],"items":{"type":"string"},"description":"Invalid characters found (present for single query requests)"},"results":{"type":"array","items":{"$ref":"#/components/schemas/DomainResult"}},"pagination":{"type":"object","properties":{"total":{"type":"number","description":"Total number of results"},"count":{"type":"number","description":"Number of results in this response"},"offset":{"type":"number","description":"Current offset"},"limit":{"type":"number","description":"Max results per page"},"hasMore":{"type":"boolean","description":"Whether more results are available"},"nextOffset":{"type":["number","null"],"description":"Offset for next page, null if no more pages"}}},"truncated":{"type":"boolean","description":"Whether results were truncated due to size limits"},"truncationMessage":{"type":"string","description":"Message explaining truncation"}}},"DomainResult":{"type":"object","properties":{"name":{"type":"string","description":"Full domain name"},"extension":{"type":"string","description":"TLD (e.g., com, org, io)"},"label":{"type":"string","description":"Domain label without TLD"},"available":{"type":"boolean","description":"Whether the domain can be purchased through Unstoppable Domains. True for fresh registrations AND secondary market listings. False for registered domains not for sale, protected domains, invalid names, etc."},"status":{"type":"string"},"marketplace":{"type":"object","description":"Marketplace information including acquisition status and listing source.","properties":{"status":{"type":"string","enum":["available","registered-listed-for-sale","registered-listed-for-offers","registered-not-for-sale","unavailable","invalid"],"description":"Indicates how this domain can be acquired: \"available\" = fresh registration at standard/promo price; \"registered-listed-for-sale\" = already registered, listed on secondary market with fixed buy-now price; \"registered-listed-for-offers\" = already registered, listed on secondary market accepting offers (no fixed price); \"registered-not-for-sale\" = already registered, not listed for sale; \"unavailable\" = not available (protected, restricted, etc.); \"invalid\" = invalid domain name"},"source":{"type":"string","enum":["unstoppable_domains","sedo","afternic"],"description":"Marketplace where the domain can be purchased. Present for all purchasable domains. \"unstoppable_domains\" = purchase through Unstoppable Domains (fresh registrations and UD marketplace listings); \"sedo\" = purchase through Sedo (external secondary market); \"afternic\" = purchase through Afternic (external secondary market)."}},"required":["status"]},"searchQuery":{"type":"string","description":"The search term that produced this result (present in search results)"},"pricing":{"type":"object","description":"Pricing info. Present for purchasable domains except \"registered-listed-for-offers\" which have no fixed price.","properties":{"amount":{"type":"number","description":"Price in cents. For fresh registrations, may include promo discount. For secondary market listings, shows the marketplace list price."},"currency":{"type":"string","example":"USD"},"formatted":{"type":"string","example":"$9.99"},"listAmount":{"type":"number","description":"List price before promo in cents (only for fresh registrations with active promo)"},"listFormatted":{"type":"string","description":"Formatted list price (only for fresh registrations with active promo)"}}},"product":{"type":"object","description":"Product info (only present when available)","properties":{"type":{"type":"string"},"code":{"type":"string"},"id":{"type":"number"}}},"purchaseUrl":{"type":"string","description":"Direct purchase URL (only for available domains)"}}},"TldListResponse":{"type":"object","properties":{"tlds":{"type":"array","items":{"type":"string"},"description":"Array of supported TLD extensions (e.g., [\"com\", \"io\", \"org\"])"},"count":{"type":"number","description":"Total number of supported TLDs"}}},"CartResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CartItem"}},"itemCount":{"type":"number"},"pricing":{"type":"object","properties":{"totalOrderValue":{"type":"number"},"totalOrderValueFormatted":{"type":"string"},"preTaxAmountDue":{"type":"number"},"preTaxAmountDueFormatted":{"type":"string"},"salesTax":{"type":"number"},"salesTaxFormatted":{"type":"string"},"taxRate":{"type":"number"},"promoCreditsUsed":{"type":"number"},"promoCreditsUsedFormatted":{"type":"string"},"storeCreditsUsed":{"type":"number"},"storeCreditsUsedFormatted":{"type":"string"},"accountBalanceUsed":{"type":"number"},"accountBalanceUsedFormatted":{"type":"string"},"totalAmountDue":{"type":"number"},"totalAmountDueFormatted":{"type":"string"}}},"discounts":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number"},"amountFormatted":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"code":{"type":["string","null"]},"productIds":{"type":"array","items":{"type":"number"}}}}},"totalDiscounts":{"type":"number"},"totalDiscountsFormatted":{"type":"string"}}},"CartItem":{"type":"object","properties":{"productId":{"type":"number"},"productCode":{"type":"string"},"productType":{"type":"string"},"domain":{"type":["string","null"]},"originalPrice":{"type":"number"},"originalPriceFormatted":{"type":"string"},"discountAmount":{"type":"number"},"discountAmountFormatted":{"type":"string"},"promoCreditsApplied":{"type":"number"},"accountBalanceApplied":{"type":"number"},"salesTax":{"type":"number"},"fees":{"type":"array","items":{"type":"object"}}}},"AddToCartResponse":{"type":"object","properties":{"addedProducts":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"},"productId":{"type":"number"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"cart":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"}}}}},"AddListedDomainToCartResponse":{"type":"object","description":"Response for adding marketplace-listed domains to cart","properties":{"addedProducts":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean"},"productId":{"type":"number"},"purchaseType":{"type":"string","enum":["buy_now","lease_to_own"],"description":"Type of purchase"},"listingPrice":{"type":"string","description":"Formatted listing price"},"monthlyPayment":{"type":"string","description":"Formatted monthly payment (for LTO only)"},"termLength":{"type":"number","description":"Number of months (for LTO only)"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"cart":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"}}}}},"AddAfternicDomainToCartResponse":{"type":"object","description":"Response for adding Afternic marketplace domains to cart","properties":{"addedProducts":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean"},"productId":{"type":"number"},"price":{"type":"string","description":"Formatted price when available"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"cart":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"}}}}},"AddSedoDomainToCartResponse":{"type":"object","description":"Response for adding Sedo marketplace domains to cart","properties":{"addedProducts":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean"},"productId":{"type":"number"},"price":{"type":"string","description":"Formatted price when available"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"cart":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"}}}}},"AddDomainRenewalToCartResponse":{"type":"object","description":"Response for adding domain renewals to cart","properties":{"addedRenewals":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean"},"productId":{"type":"number"},"renewalPeriodYears":{"type":"number","description":"Renewal period in years"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"cart":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"}}}}},"RemoveFromCartResponse":{"type":"object","properties":{"removedProductIds":{"type":"array","items":{"type":"number"}},"removedCount":{"type":"number"},"cart":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/CartItem"}}}}}},"PaymentMethodsResponse":{"type":"object","properties":{"savedCards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Payment method ID"},"brand":{"type":"string","description":"Card brand"},"last4":{"type":"string","description":"Last 4 digits"},"expMonth":{"type":"number"},"expYear":{"type":"number"},"isExpired":{"type":"boolean"},"isDefault":{"type":"boolean"}}}},"accountBalance":{"type":"object","properties":{"amount":{"type":"number","description":"Balance in cents"},"amountFormatted":{"type":"string"}}},"promoCredits":{"type":"object","properties":{"amount":{"type":"number","description":"Promo credits in cents"},"amountFormatted":{"type":"string"}}},"summary":{"type":"object","properties":{"hasValidCards":{"type":"boolean"},"validCardCount":{"type":"number"},"hasAccountBalance":{"type":"boolean"},"hasPromoCredits":{"type":"boolean"},"totalCredits":{"type":"number","description":"Combined account balance + promo credits"},"totalCreditsFormatted":{"type":"string"},"canCheckout":{"type":"boolean"}}}}},"CheckoutResponse":{"type":"object","properties":{"success":{"type":"boolean"},"orderId":{"type":"number"},"paymentId":{"type":"number"},"summary":{"type":"object","properties":{"itemCount":{"type":"number"},"domains":{"type":"array","items":{"type":"string"}},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"},"discounts":{"type":"number"},"discountsFormatted":{"type":"string"},"creditsUsed":{"type":"number"},"creditsUsedFormatted":{"type":"string"},"salesTax":{"type":"number"},"salesTaxFormatted":{"type":"string"},"totalCharged":{"type":"number"},"totalChargedFormatted":{"type":"string"},"paymentMethod":{"type":"string"}}},"note":{"type":"string","description":"Optional note about contact selection when user has multiple contacts"}}},"CheckoutUrlResponse":{"type":"object","properties":{"checkoutUrl":{"type":"string"},"expiresIn":{"type":"number","description":"Seconds until the magic link expires (URL is single-use)"},"cartSummary":{"type":"object","properties":{"itemCount":{"type":"number"},"subtotal":{"type":"number"},"subtotalFormatted":{"type":"string"},"items":{"type":"array","items":{"type":"object"}}}},"discountCode":{"type":["string","null"]},"instructions":{"type":"string"}}},"AddPaymentMethodUrlResponse":{"type":"object","properties":{"url":{"type":"string","description":"Authenticated magic link URL to the payment management page (single-use, valid for 60 seconds)"},"expiresIn":{"type":"number","description":"Seconds until the magic link expires (URL is single-use)"},"instructions":{"type":"string","description":"Guidance for the user on how to add a card"}}},"ContactsListResponse":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Contact ID"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","description":"Partially masked email"},"phone":{"type":"string","description":"Partially masked phone"},"city":{"type":"string"},"stateProvince":{"type":"string"},"countryCode":{"type":"string"},"organization":{"type":"string"},"status":{"type":"string","enum":["active","draft","admin_disabled"],"description":"Contact status: \"active\" = ready for checkout, \"draft\" = syncing with registrar (wait a few seconds), \"admin_disabled\" = cannot be used"}}}},"count":{"type":"number","description":"Total number of contacts"},"accountEmail":{"type":["string","null"],"description":"User's account email (masked) - suggest using for new contacts for auto-verification"},"accountEmailHint":{"type":["string","null"],"description":"Tip about automatic verification when contact email matches account email"}}},"ContactCreateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"contact":{"type":"object","properties":{"operationId":{"type":"string"},"status":{"type":"string"}}},"message":{"type":"string"}}},"ListDomainsResponse":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/PortfolioDomain"}},"pagination":{"type":"object","properties":{"page":{"type":"number","description":"Current page number"},"pageSize":{"type":"number","description":"Items per page"},"totalPages":{"type":"number","description":"Total number of pages"},"total":{"type":"number","description":"Total number of domains"},"hasMore":{"type":"boolean","description":"Whether more pages exist"},"nextPage":{"type":["number","null"],"description":"Next page number if more results exist, null otherwise"}}},"truncated":{"type":"boolean","description":"Whether results were truncated due to size limits"},"truncationMessage":{"type":"string"}}},"GetPortfolioDomainsResponse":{"type":"object","properties":{"domains":{"type":"array","description":"Comprehensive info for each requested domain","items":{"type":"object","properties":{"domain":{"type":"string","description":"The domain name"},"found":{"type":"boolean","description":"Whether the domain was found in your portfolio"},"extension":{"type":"string","description":"TLD (e.g., \"com\")"},"label":{"type":"string","description":"Domain label without TLD"},"sld":{"type":["string","null"],"description":"Second-level domain"},"punycode":{"type":"boolean","description":"Whether domain uses punycode encoding"},"lifecycle":{"type":"object","description":"Domain lifecycle: dates, ownership, renewal, auto-renewal","properties":{"purchasedAt":{"type":["string","null"],"description":"Purchase date (ISO 8601)"},"expiresAt":{"type":["string","null"],"description":"Expiration date (ISO 8601)"},"transferStatus":{"type":"string","description":"Transfer status: \"none\" or \"pending\""},"isExternallyOwned":{"type":"boolean","description":"Whether domain is in registrar custody (externally owned)"},"reverse":{"type":"boolean","description":"Whether reverse resolution is enabled"},"renewal":{"type":["object","null"],"description":"Renewal eligibility and pricing","properties":{"isEligible":{"type":"boolean","description":"Whether domain is eligible for renewal"},"period":{"type":"object","properties":{"min":{"type":"number","description":"Minimum renewal years"},"max":{"type":"number","description":"Maximum renewal years"},"increments":{"type":"number","description":"Renewal year increments"}}},"pricePerYear":{"type":"number","description":"Renewal price per year in cents (USD)"},"pricePerYearFormatted":{"type":"string","description":"Formatted price (e.g., \"$12.99\")"}}},"autoRenewal":{"type":["object","null"],"description":"Auto-renewal subscription status","properties":{"status":{"type":"string","description":"Subscription status"},"expiresAt":{"type":["string","null"],"description":"Next renewal date (ISO 8601)"}}}}},"flags":{"type":["object","null"],"description":"Domain-level flags (WHOIS privacy, transfer lock, etc.)","properties":{"DNS_TRANSFER_OUT":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"]}},"description":"Transfer lock status"},"DNS_WHOIS_PROXY":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"]}},"description":"WHOIS privacy status"},"DNS_RESOLUTION":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"]}}},"DNS_DELETE":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"]}}},"DNS_UPDATE":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"]}}},"DNS_UNS_TOKENIZATION":{"type":"object","properties":{"status":{"type":"string","enum":["ENABLED","DISABLED"]}}}}},"dns":{"type":"object","description":"DNS configuration from cache (nameservers, hosting, DNSSEC)","properties":{"nameservers":{"type":["object","null"],"properties":{"status":{"type":"string","enum":["default","custom","none"],"description":"Nameserver status: default (UD-managed), custom (external), none"},"nameservers":{"type":"array","items":{"type":"string"},"description":"Nameserver hostnames"}}},"hosting":{"type":["array","null"],"items":{"type":"object","properties":{"subName":{"type":"string","description":"Subdomain name"},"type":{"type":"string","description":"Hosting type (REDIRECT_301, REDIRECT_302, UD_PROFILE)"},"targetUrl":{"type":["string","null"],"description":"Target URL for redirect"},"status":{"type":"string","description":"Hosting status (ACTIVE, INACTIVE, PENDING)"}}},"description":"URL redirects and hosting rules"},"dnssec":{"type":["object","null"],"properties":{"enabled":{"type":"boolean","description":"Whether DNSSEC is enabled"},"valid":{"type":"boolean","description":"Whether DNSSEC validation passes"}}}}},"marketplace":{"type":"object","description":"Marketplace listing and engagement metrics","properties":{"listing":{"type":["object","null"],"description":"Active listing details","properties":{"id":{"type":"number"},"price":{"type":"number","description":"Listing price in cents"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"views":{"type":"number"},"listingSettings":{"type":["object","null"]}}},"offersCount":{"type":"number","description":"Number of active offers"},"leadsCount":{"type":"number","description":"Number of buyer leads"},"watchlistCount":{"type":"number","description":"Number of users watching this domain"}}},"tags":{"type":"array","items":{"type":"string"},"description":"Tags applied to this domain"},"pendingOperations":{"type":"array","description":"Pending DNS/domain operations","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string"}}}},"error":{"type":"string","description":"Error message if retrieval failed"}}}},"availableTags":{"type":"array","items":{"type":"string"},"description":"All tags you've created (useful for adding tags to other domains)"}}},"PortfolioDomain":{"type":"object","properties":{"name":{"type":"string","description":"Full domain name (e.g., \"example.com\")"},"extension":{"type":"string","description":"TLD (e.g., \"com\")"},"label":{"type":"string","description":"Domain label without TLD"},"sld":{"type":["string","null"],"description":"Second-level domain"},"punycode":{"type":"boolean","description":"Whether domain uses punycode"},"purchasedAt":{"type":["string","null"],"description":"Purchase date (ISO string)"},"expiresAt":{"type":["string","null"],"description":"Expiration date for DNS domains (ISO string)"},"transferStatus":{"type":"string","description":"Domain transfer status:\n\u2022 \"none\" - No active transfer\n\u2022 \"pending\" - Transfer in progress"},"isExternallyOwned":{"type":"boolean","description":"Whether domain is externally owned"},"tags":{"type":"array","items":{"type":"string"},"description":"User-defined tags"},"reverse":{"type":"boolean","description":"Whether this is set as reverse resolution"},"offersCount":{"type":"number","description":"Number of active offers on this domain"},"leadsCount":{"type":"number","description":"Number of buyer inquiries/messages about this domain"},"watchlistCount":{"type":"number","description":"Number of users watching this domain"},"listing":{"type":["object","null"],"description":"Listing details if domain is for sale","properties":{"id":{"type":"number","description":"Listing ID"},"price":{"type":"number","description":"Listing price in cents"},"status":{"type":"string","description":"Listing status:\n\u2022 \"open\" - Live on marketplace, ready for purchase (user-custodied domains)\n\u2022 \"open-not-signed\" - Live on marketplace, ready for purchase (UD-custodied domains, no user action needed)\n\u2022 \"open-on-request\" - Accepting offers only, no fixed price\n\u2022 \"draft\" - Not yet published\n\u2022 \"waiting-for-approval\" - Pending wallet signature from owner\n\u2022 \"pending-admin-approval\" - Under review (high-value listings)\n\u2022 \"pending\" - Sale in progress\n\u2022 \"canceled\" - Listing was canceled\nNote: Both \"open\" and \"open-not-signed\" mean the listing is active and purchasable."},"createdAt":{"type":"string","description":"ISO date string"},"updatedAt":{"type":"string","description":"ISO date string"},"views":{"type":"number","description":"Number of page views"}}},"autoRenewal":{"type":["object","null"],"description":"Auto-renewal subscription details if enabled","properties":{"status":{"type":"string","description":"Auto-renewal subscription status:\n\u2022 \"active\" - Subscription active, will auto-renew\n\u2022 \"pending\" - Payment collected, waiting for domain registration\n\u2022 \"update_required\" - Payment method needs updating (card expired/declined)\n\u2022 \"expired\" - Subscription expired, domain renewal overdue\n\u2022 \"cancelled\" - Subscription cancelled, will not auto-renew"},"expiresAt":{"type":["string","null"],"description":"Subscription expiration date (ISO string)"}}}}},"CreateListingResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domainName":{"type":"string"},"success":{"type":"boolean"},"listingId":{"type":"number"},"status":{"type":"string"},"isLazy":{"type":"boolean"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"message":{"type":"string"},"signatureRequired":{"type":"boolean"},"signatureNote":{"type":"string"}}},"UpdateListingResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"listingId":{"type":"number"},"domainName":{"type":"string"},"success":{"type":"boolean"},"status":{"type":"string"},"isLazy":{"type":"boolean"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"message":{"type":"string"},"signatureRequired":{"type":"boolean"},"signatureNote":{"type":"string"}}},"CancelListingResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"listingId":{"type":"number"},"domainName":{"type":"string"},"success":{"type":"boolean"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"message":{"type":"string"}}},"ListOffersResponse":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Offer ID"},"domainName":{"type":"string"},"priceInCents":{"type":"number"},"priceFormatted":{"type":"string"},"buyerUserId":{"type":"string"},"buyerStatus":{"type":"string"},"sellerStatus":{"type":"string"},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}},"truncated":{"type":"boolean","description":"Indicates if the offers list was truncated to meet response size limits"},"truncationMessage":{"type":"string","description":"Optional message providing details about the truncation"}}},"RespondToOfferResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"offerId":{"type":"number"},"domainName":{"type":"string"},"action":{"type":"string"},"success":{"type":"boolean"},"priceInCents":{"type":"number"},"priceFormatted":{"type":"string"},"newStatus":{"type":"string"},"error":{"type":"string"}}}},"successCount":{"type":"number"},"failureCount":{"type":"number"},"message":{"type":"string"},"signatureRequired":{"type":"boolean"},"signatureNote":{"type":"string"}}},"LeadsListResponse":{"type":"object","properties":{"leads":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Conversation ID (use with ud_lead_messages_list)"},"domainName":{"type":"string"},"domainId":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"shortLatestMessageContent":{"type":"string","description":"Preview of latest message (truncated to 100 chars)"},"unreadMessageCount":{"type":"number","description":"Number of unread messages"},"participants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Encoded participant ID"},"role":{"type":"string","enum":["BUYER","SELLER"]}}}}}}},"total":{"type":"number","description":"Total number of conversations matching filters"},"skip":{"type":"number","description":"Number of items skipped"},"take":{"type":"number","description":"Number of items returned"}}},"ContactSellerResponse":{"type":"object","properties":{"conversation":{"type":"object","properties":{"id":{"type":"number","description":"Conversation ID"},"domainName":{"type":"string"},"domainId":{"type":"number"},"createdAt":{"type":"string"},"participants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string","enum":["BUYER","SELLER"]}}}},"isExisting":{"type":"boolean","description":"True if returning existing conversation"}}},"message":{"type":"string"}}},"LeadMessagesListResponse":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","description":"Message ID"},"content":{"type":"string"},"senderUserId":{"type":"number"},"createdAt":{"type":"string"}}}},"hasMore":{"type":"boolean"},"nextCursor":{"type":["string","null"]},"conversationId":{"type":"number"}}},"LeadMessageSendResponse":{"type":"object","properties":{"message":{"type":"object","properties":{"id":{"type":"number","description":"Message ID"},"content":{"type":"string"},"senderUserId":{"type":"number"},"createdAt":{"type":"string"}}},"conversationId":{"type":"number"}}},"DnsRecordsListResponse":{"type":"object","properties":{"domain":{"type":"string"},"records":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Record ID (may be undefined for system records)"},"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"subName":{"type":["string","null"],"description":"Record subdomain (relative name)"},"values":{"type":"array","items":{"type":"string"},"description":"Record values"},"ttl":{"type":"number","description":"Time to live in seconds"},"readonly":{"type":"boolean","description":"Whether this record is read-only and cannot be modified"},"readonlyReasons":{"type":"array","items":{"type":"string"},"description":"Reasons why the record is read-only"}}}},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":["string","null"]}}},"dnsStatus":{"type":["object","null"],"description":"Present when DNS is not managed by UD. Explains the current DNS configuration state.","properties":{"configured":{"type":"boolean","description":"Whether nameservers are set up for this domain"},"provider":{"type":["string","null"],"enum":["ud","external"],"description":"DNS provider: \"ud\" for UD-managed, \"external\" for third-party"},"message":{"type":"string","description":"Human-readable explanation and suggested next steps"}}}}},"BulkDnsOperationResponse":{"type":"object","description":"Response for bulk DNS operations (nameservers, hosting). Contains results per domain with success/failure tracking.","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean","description":"Whether the operation succeeded"},"operationId":{"type":"string","description":"Track with ud_domain_pending_operations (if successful)"},"nameservers":{"type":"array","items":{"type":"string"},"description":"Configured nameservers (for nameserver operations)"},"hasDnssec":{"type":"boolean","description":"Whether DNSSEC is configured (for nameserver operations)"},"config":{"type":"object","description":"Hosting config (for hosting operations)","properties":{"type":{"type":"string"},"subName":{"type":["string","null"]},"targetUrl":{"type":["string","null"]}}},"subName":{"type":"string","description":"Subdomain removed (for hosting remove operations)"},"deletedAll":{"type":"boolean","description":"Whether all configs were removed (for hosting remove)"},"error":{"type":"string","description":"Error message (if failed)"}}}},"successCount":{"type":"number","description":"Number of successful operations"},"failureCount":{"type":"number","description":"Number of failed operations"}}},"DnsNameserversListResponse":{"type":"object","properties":{"domain":{"type":"string"},"nameservers":{"type":"array","items":{"type":"string"},"description":"List of nameserver hostnames"},"isUsingDefaultNameservers":{"type":"boolean","description":"True if using UD default nameservers"},"dnssec":{"type":["object","null"],"properties":{"enabled":{"type":"boolean"},"records":{"type":"array","items":{"type":"object","properties":{"keyTag":{"type":"number"},"algorithm":{"type":"number"},"digestType":{"type":"number"},"digest":{"type":"string"}}}}}}}},"DnsHostingListResponse":{"type":"object","properties":{"domain":{"type":"string"},"configs":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["GCS_HOSTED","LISTING_PAGE","REDIRECT_301","REDIRECT_302","REVERSE_PROXY","UD_PROFILE","STOREFRONT"]},"subName":{"type":["string","null"],"description":"Subdomain (null for root)"},"targetUrl":{"type":["string","null"],"description":"Destination URL (for redirects and reverse proxy)"},"status":{"type":"string"},"certificateStatus":{"type":["string","null"]}}}},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":["string","null"]}}}}},"PendingOperationsResponse":{"type":"object","description":"Bulk response for pending operations across multiple domains","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean","description":"Whether the lookup succeeded"},"hasPendingOperations":{"type":"boolean","description":"Whether any operations are still in progress"},"operations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Operation ID"},"type":{"type":"string","description":"Operation type"},"status":{"type":"string","description":"UserOperationStatus string, e.g. PENDING, PENDING_SIGNATURE, COMPLETED, FAILED"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"originOperationId":{"type":["string","null"],"description":"ID of the originating operation, if any"},"errorCode":{"type":["string","null"],"description":"Error code if the operation failed, otherwise null"}}}},"error":{"type":"string","description":"Error message (if lookup failed)"}}}},"successCount":{"type":"number","description":"Number of domains successfully queried"},"failureCount":{"type":"number","description":"Number of domains that failed lookup"},"summary":{"type":"object","description":"Aggregate summary across all domains","properties":{"totalPendingCount":{"type":"number","description":"Total pending operations across all domains"},"domainsWithPending":{"type":"array","items":{"type":"string"},"description":"List of domain names with pending operations"}}}}},"AutoRenewalUpdateResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean","description":"Whether the operation succeeded"},"error":{"type":"string","description":"Error message if failed"}}},"description":"Results for each domain"},"successCount":{"type":"number","description":"Number of successful updates"},"failureCount":{"type":"number","description":"Number of failed updates"}}},"AddDomainTagsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean","description":"Whether tags were applied successfully"},"tagsApplied":{"type":"array","items":{"type":"string"},"description":"Tags that were applied to this domain"},"error":{"type":"string","description":"Error message if failed"}}},"description":"Results for each domain"},"newTagsCreated":{"type":"array","items":{"type":"string"},"description":"Tags that were newly created (didn't exist before)"},"successCount":{"type":"number","description":"Number of domains with tags applied"},"failureCount":{"type":"number","description":"Number of domains that failed"}}},"RemoveDomainTagsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean","description":"Whether tags were removed successfully"},"tagsRemoved":{"type":"array","items":{"type":"string"},"description":"Tags that were removed from this domain"},"error":{"type":"string","description":"Error message if failed"}}},"description":"Results for each domain"},"successCount":{"type":"number","description":"Number of domains with tags removed"},"failureCount":{"type":"number","description":"Number of domains that failed"}}},"UpdateDomainFlagsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"success":{"type":"boolean","description":"Whether flags were updated successfully"},"updatedFlags":{"type":"array","items":{"type":"string"},"description":"Flags that were updated for this domain"},"error":{"type":"string","description":"Error message if failed"}}},"description":"Results for each domain"},"successCount":{"type":"number","description":"Number of domains with flags updated"},"failureCount":{"type":"number","description":"Number of domains that failed"}}},"PushDomainsResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether any domains were successfully pushed"},"pushedDomains":{"type":"array","items":{"type":"string"},"description":"Domains that were successfully initiated for push"},"failedDomains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name"},"reason":{"type":"string","enum":["not_owned","not_dns","pending_push","expired","ineligible"],"description":"Reason the domain could not be pushed"},"message":{"type":"string","description":"Human-readable error message"}}},"description":"Domains that could not be pushed with reasons"},"targetAccountId":{"type":"string","description":"The target account ID"},"message":{"type":"string","description":"Human-readable summary message"}}}}},"tags":[{"name":"Domain Search","description":"Search and check domain availability"},{"name":"Portfolio","description":"Manage owned domains (requires authentication)"},{"name":"Contacts","description":"Manage ICANN contacts for DNS domain registration (requires authentication)"},{"name":"Cart","description":"Shopping cart management, payment methods, and checkout (requires authentication)"},{"name":"Marketplace","description":"List domains for sale, manage listings, and handle offers (requires authentication)"},{"name":"Leads","description":"Domain conversations and messaging between buyers and sellers (requires authentication)"},{"name":"DNS Management","description":"Manage DNS records, nameservers, and hosting configurations for owned domains (requires authentication)"},{"name":"Domain Management","description":"Manage domain settings like auto renewal (requires authentication)"},{"name":"AI Lander","description":"Generate, manage, and remove AI-powered landing pages for domains (requires authentication)"},{"name":"Account","description":"Create and verify end-user accounts through headless signup flows."},{"name":"Backorders","description":"Create and manage domain backorders, and browse expired or pending-delete domains."},{"name":"Session","description":"Generate authenticated browser URLs for account and checkout flows that require web handoff."}]}