Skip to content

User API (1.0.0)

Search, check availability, and purchase traditional DNS domains. This API enables AI assistants to help users find and buy domain names.

When using the API directly, you will need an API key. See API Key setup for instructions.

Languages
Servers
Production server
https://api.unstoppabledomains.com

Portfolio

Manage owned domains (requires authentication)

Operations

Contacts

Manage ICANN contacts for DNS domain registration (requires authentication)

Operations

Cart

Shopping cart management, payment methods, and checkout (requires authentication)

Operations

Marketplace

List domains for sale, manage listings, and handle offers (requires authentication)

Operations

Leads

Domain conversations and messaging between buyers and sellers (requires authentication)

Operations

DNS Management

Manage DNS records, nameservers, and hosting configurations for owned domains (requires authentication)

Operations

Domain Management

Manage domain settings like auto renewal (requires authentication)

Operations

AI Lander

Generate, manage, and remove AI-powered landing pages for domains (requires authentication)

Operations

Account

Create and verify end-user accounts through headless signup flows.

Operations

Backorders

Create and manage domain backorders, and browse expired or pending-delete domains.

Operations

Create domain backorders

Request

Create backorders for one or more expiring DNS domains. The system monitors the domain and automatically registers it when it drops.

Security
bearerAuth
Bodyapplication/jsonrequired
domainsArray of objects[ 1 .. 50 ] itemsrequired
domains[].​namestringrequired

Domain name to backorder

domains[].​contactIdstringrequired

ICANN contact ID for domain registration

domains[].​availableAfterTimestampnumberrequired

Unix timestamp (ms) when the domain becomes available for registration

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_backorder_create \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      {
        "name": "string",
        "contactId": "string",
        "availableAfterTimestamp": 0
      }
    ]
  }'

Responses

Backorder creation results

Bodyapplication/json
resultsArray of objects
successCountnumber
failureCountnumber
messagestring
Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0, "message": "string" }

Cancel domain backorders

Request

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
Bodyapplication/jsonrequired
backorderIdsArray of numbers[ 1 .. 50 ] itemsrequired

Array of backorder IDs to cancel

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_backorder_cancel \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "backorderIds": [
      0
    ]
  }'

Responses

Backorder cancellation results

Bodyapplication/json
resultsArray of objects
successCountnumber
failureCountnumber
messagestring
Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0, "message": "string" }

List user's backorders

Request

List the authenticated user's domain backorders with optional status filtering, domain search, and pagination. Status normalization is applied automatically.

Security
bearerAuth
Bodyapplication/jsonrequired
statusArray of strings

Filter by backorder status

Items Enum"pending""cancelled""in-progress""registration-pending""completed-success""completed-not-available""completed-payment-failed""completed-user-contact-invalid""failed"
querystring<= 253 characters

Search by domain name (partial match)

offsetnumber>= 0

Pagination offset (default: 0)

limitnumber[ 1 .. 100 ]

Items per page (1-100, default: 20)

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_backorders_list \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "status": [
      "pending"
    ],
    "query": "string",
    "offset": 0,
    "limit": 1
  }'

Responses

List of backorders with pagination

Bodyapplication/json
backordersArray of objects
paginationobject
Response
application/json
{ "backorders": [ {} ], "pagination": { "total": 0, "count": 0, "offset": 0, "limit": 0, "hasMore": true, "nextOffset": 0 } }

Browse the expireds/pending-delete domain marketplace

Request

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
Bodyapplication/jsonrequired
querystring<= 253 characters

Search by domain name (exact match if contains dot) or label substring

statusstring

Filter by drop status: "COMING_SOON" (not yet dropped) or "AVAILABLE_BACKORDER" (already dropped)

Enum"COMING_SOON""AVAILABLE_BACKORDER"
tldsArray of strings

Filter by TLD extensions (e.g., ["com", "net"])

sortBystring

Sort field (default: "deletionAt")

Enum"name""deletionAt""labelLength""watchlistCount""backorderCount"
sortDirectionstring

Sort direction (default: "ASC")

Enum"ASC""DESC"
lengthRangeArray of numbers= 2 items

Filter by label length range [min, max]. Use max=0 for no upper bound.

bidsRangeArray of numbers= 2 items

Filter by backorder count range [min, max]. Use max=0 for no upper bound.

watchlistRangeArray of numbers= 2 items

Filter by watchlist count range [min, max]. Use max=0 for no upper bound.

offsetnumber>= 0

Number of items to skip for pagination (default: 0)

limitnumber[ 1 .. 500 ]

Maximum number of items to return (1-500, default: 50)

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_expireds_list \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "string",
    "status": "COMING_SOON",
    "tlds": [
      "string"
    ],
    "sortBy": "name",
    "sortDirection": "ASC",
    "lengthRange": [
      0,
      0
    ],
    "bidsRange": [
      0,
      0
    ],
    "watchlistRange": [
      0,
      0
    ],
    "offset": 0,
    "limit": 1
  }'

Responses

List of expiring/dropped domains

Bodyapplication/json
domainsArray of objects
paginationobject
truncatedboolean

Whether the response was truncated to fit within size limits

truncationMessagestring

Message indicating how many results were truncated

Response
application/json
{ "domains": [ {} ], "pagination": { "total": 0, "count": 0, "offset": 0, "limit": 0, "hasMore": true, "nextOffset": 0 }, "truncated": true, "truncationMessage": "string" }

Session

Generate authenticated browser URLs for account and checkout flows that require web handoff.

Operations