---
title: "Search for available domains or check specific domain availability"
method: POST
path: "/mcp/v1/actions/ud_domains_search"
tags: ["Domain Search"]
---

# Search for available domains or check specific domain availability

`POST /mcp/v1/actions/ud_domains_search`

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.

## Request body

- object
  - `query` union, required — 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.
    - string
    - string[]
  - `tlds` string[] — 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.
  - `limit` number — Maximum number of results to return (1-100, default: 20)
  - `offset` number — Number of results to skip for pagination (default: 0)

## Response `200`

Search results

- SearchDomainsResponse
  - `searchQuery` string — Sanitized search term (present for single query requests)
  - `searchQueries` object[] — Array of search queries with metadata (present for multiple query requests)
    - `query` string
    - `invalidReason` string, nullable
    - `invalidCharacters` string[]
  - `searchedTlds` string[] — TLDs that were searched
  - `invalidReason` string, nullable — Validation error reason (present for single query requests)
  - `invalidCharacters` string[], nullable — Invalid characters found (present for single query requests)
  - `results` DomainResult[]
    - `name` string — Full domain name
    - `extension` string — TLD (e.g., com, org, io)
    - `label` string — Domain label without TLD
    - `available` boolean — 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` string
    - `marketplace` object — Marketplace information including acquisition status and listing source.
      - `status` 'available' | 'registered-listed-for-sale' | 'registered-listed-for-offers' | 'registered-not-for-sale' | 'unavailable' | 'invalid', required — 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` 'unstoppable_domains' | 'sedo' | 'afternic' — 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).
    - `searchQuery` string — The search term that produced this result (present in search results)
    - `pricing` object — Pricing info. Present for purchasable domains except "registered-listed-for-offers" which have no fixed price.
      - `amount` number — Price in cents. For fresh registrations, may include promo discount. For secondary market listings, shows the marketplace list price.
      - `currency` string
      - `formatted` string
      - `listAmount` number — List price before promo in cents (only for fresh registrations with active promo)
      - `listFormatted` string — Formatted list price (only for fresh registrations with active promo)
    - `product` object — Product info (only present when available)
      - `type` string
      - `code` string
      - `id` number
    - `purchaseUrl` string — Direct purchase URL (only for available domains)
  - `pagination` object
    - `total` number — Total number of results
    - `count` number — Number of results in this response
    - `offset` number — Current offset
    - `limit` number — Max results per page
    - `hasMore` boolean — Whether more results are available
    - `nextOffset` number, nullable — Offset for next page, null if no more pages
  - `truncated` boolean — Whether results were truncated due to size limits
  - `truncationMessage` string — Message explaining truncation

## Other responses

- `401` — Authentication required

---

[API](https://skmtc.net/unstoppabledomains/apis/user-api.md) · [All operations](https://skmtc.net/unstoppabledomains/apis/user-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unstoppabledomains/user-api/revisions/c1def8e34b41/schema)
