Skip to content

MCP 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.

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

List DNS records for a domain

Request

List all DNS records for a domain in your portfolio. Supports filtering by record type and subdomain, with pagination.

Security
bearerAuth
Bodyapplication/jsonrequired
domainstringrequired

Domain name (e.g., "example.com")

typestring

Filter by record type (A, AAAA, CNAME, MX, TXT, NS)

subNamestring

Filter by subdomain ("@" for root, "www", "*" for wildcard)

cursorstring

Pagination cursor

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_records_list \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domain": "string",
    "type": "string",
    "subName": "string",
    "cursor": "string"
  }'

Responses

DNS records list

Bodyapplication/json
domainstring
recordsArray of objects
paginationobject
dnsStatusobject or null

Present when DNS is not managed by UD. Explains the current DNS configuration state.

Response
application/json
{ "domain": "string", "records": [ {} ], "pagination": { "hasMore": true, "nextCursor": "string" }, "dnsStatus": { "configured": true, "provider": "ud", "message": "string" } }

Add DNS records (bulk)

Request

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.

Security
bearerAuth
Bodyapplication/jsonrequired
recordsArray of objects[ 1 .. 50 ] itemsrequired

Array of DNS record configurations (1-50)

records[].​domainstringrequired

Domain name (e.g., "example.com")

records[].​typestringrequired

Record type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)

records[].​subNamestring

Subdomain ("@" for root, "www", "*" for wildcard)

Default "@"
records[].​valuesArray of stringsrequired

Record values

records[].​ttlnumber

Time-to-live in seconds (60-86400)

Default 3600
upsertModestring

Global setting for how to handle existing records

Enum"append""replace""disallowed"
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_record_add \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "records": [
      {
        "domain": "string",
        "type": "string",
        "subName": "@",
        "values": [
          "string"
        ],
        "ttl": 3600
      }
    ],
    "upsertMode": "append"
  }'

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

Update DNS records (bulk)

Request

Update existing DNS records on one or more domains. Bulk operations up to 50 records.

Security
bearerAuth
Bodyapplication/jsonrequired
recordsArray of objects[ 1 .. 50 ] itemsrequired

Array of record update configurations (1-50)

records[].​domainstringrequired

Domain name

records[].​recordIdstringrequired

Record ID from ud_dns_records_list

records[].​valuesArray of stringsrequired

New record values

records[].​ttlnumber

Time-to-live in seconds (60-86400). Default: 3600

Default 3600
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_record_update \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "records": [
      {
        "domain": "string",
        "recordId": "string",
        "values": [
          "string"
        ],
        "ttl": 3600
      }
    ]
  }'

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

Remove DNS records (bulk)

Request

Remove specific DNS records by ID from one or more domains. Bulk operations up to 50 records.

Security
bearerAuth
Bodyapplication/jsonrequired
recordsArray of objects[ 1 .. 50 ] itemsrequired

Array of record removal configurations (1-50)

records[].​domainstringrequired

Domain name

records[].​recordIdstringrequired

Record ID to remove

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_record_remove \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "records": [
      {
        "domain": "string",
        "recordId": "string"
      }
    ]
  }'

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

Remove all DNS records (bulk)

Request

Remove ALL user-created DNS records from one or more domains. Requires explicit confirmation. Bulk operations up to 50 domains.

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

Array of domains to remove all records from (1-50)

domains[].​namestringrequired

Domain name

confirmDeleteAllbooleanrequired

Must be exactly true to confirm this destructive operation

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

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

List nameservers for a domain

Request

List current nameservers and check if using UD defaults or custom nameservers.

Security
bearerAuth
Bodyapplication/jsonrequired
domainstringrequired

Domain name

includeDnssecboolean

Include DNSSEC info

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_nameservers_list \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domain": "string",
    "includeDnssec": true
  }'

Responses

Nameservers list

Bodyapplication/json
domainstring
nameserversArray of strings

List of nameserver hostnames

isUsingDefaultNameserversboolean

True if using UD default nameservers

dnssecobject or null
Response
application/json
{ "domain": "string", "nameservers": [ "string" ], "isUsingDefaultNameservers": true, "dnssec": { "enabled": true, "records": [] } }

Set custom nameservers (bulk)

Request

Configure external nameservers (e.g., Cloudflare, Route 53) for one or more domains. Supports up to 50 domains per request.

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

Array of domain configurations

domains[].​namestringrequired

Domain name

domains[].​nameserversArray of strings[ 2 .. 12 ] itemsrequired

Nameserver hostnames

domains[].​dnssecobject

Optional DNSSEC DS records

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

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

Reset to UD default nameservers (bulk)

Request

Switch back to Unstoppable Domains default nameservers for one or more domains. Supports up to 50 domains per request.

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

Array of domains

domains[].​namestringrequired

Domain name

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

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

List hosting configurations

Request

List hosting/forwarding configurations (UD Profile, redirects).

Security
bearerAuth
Bodyapplication/jsonrequired
domainstringrequired

Domain name

cursorstring

Pagination cursor

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_hosting_list \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domain": "string",
    "cursor": "string"
  }'

Responses

Hosting configurations

Bodyapplication/json
domainstring
configsArray of objects
paginationobject
Response
application/json
{ "domain": "string", "configs": [ {} ], "pagination": { "hasMore": true, "nextCursor": "string" } }

Add hosting configuration (bulk)

Request

Configure hosting for one or more domains: for-sale listing page, permanent redirect (301), or temporary redirect (302). Supports up to 50 domains per request.

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

Array of domain hosting configurations

domains[].​namestringrequired

Domain name

domains[].​typestringrequired

Hosting type

Enum"LISTING_PAGE""REDIRECT_301""REDIRECT_302"
domains[].​targetUrlstring

Redirect URL (required for redirects)

domains[].​subNamestring

Subdomain to configure

domains[].​forceCompatibilityboolean

Auto-configure UD nameservers if needed

curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_hosting_add \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      {
        "name": "string",
        "type": "LISTING_PAGE",
        "targetUrl": "string",
        "subName": "string",
        "forceCompatibility": true
      }
    ]
  }'

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

Remove hosting configuration (bulk)

Request

Remove hosting/forwarding configuration from one or more domains. Supports up to 50 domains per request.

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

Array of domains to remove hosting from

domains[].​namestringrequired

Domain name

domains[].​subNamestring

Subdomain to remove

domains[].​deleteAllboolean

Remove ALL hosting configs for this domain

confirmDeleteAllboolean

Must be true when any domain has deleteAll: true

Valuetrue
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_dns_hosting_remove \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      {
        "name": "string",
        "subName": "string",
        "deleteAll": true
      }
    ],
    "confirmDeleteAll": true
  }'

Responses

Bulk operation result

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of successful operations

failureCountnumber

Number of failed operations

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0 }

Get pending operations for multiple domains

Request

Check status of DNS operations across multiple domains. Use to track changes and verify completion after bulk operations.

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

Array of domains to check for pending operations

domains[].​namestringrequired

Domain name

includeCompletedboolean

Include completed operations (last 24h)

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

Responses

Pending operations for all domains

Bodyapplication/json
resultsArray of objects
successCountnumber

Number of domains successfully queried

failureCountnumber

Number of domains that failed lookup

summaryobject

Aggregate summary across all domains

Response
application/json
{ "results": [ {} ], "successCount": 0, "failureCount": 0, "summary": { "totalPendingCount": 0, "domainsWithPending": [] } }

Domain Management

Manage domain settings like auto renewal (requires authentication)

Operations