---
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`

## Request

- Base URL: `https://api.unstoppabledomains.com`
- URL: `https://api.unstoppabledomains.com/mcp/v1/actions/ud_domains_search`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/unstoppabledomains/apis/user-api/docs/mcp/v1/actions/ud_domains_search/post.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/unstoppabledomains/apis/user-api.md) - [All operations](https://skmtc.dev/unstoppabledomains/apis/user-api/llms.txt) - [OpenAPI document](https://skmtc.dev/unstoppabledomains/apis/user-api/revisions/c1def8e34b41?raw)
