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

Domain Management

Manage domain settings like auto renewal (requires authentication)

Operations

Enable or disable auto renewal for ICANN DNS domains

Request

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.

Security
bearerAuth
Bodyapplication/jsonrequired
actionstringrequired

Action to perform: "enable" or "disable" auto renewal

Enum"enable""disable"
domainsArray of objects[ 1 .. 50 ] itemsrequired

Array of domains to update auto renewal for

domains[].​namestringrequired

Full domain name (e.g., "example.com")

paymentMethodIdstring

Payment method ID for enabling. Use ud_cart_get_payment_methods to retrieve available payment methods. If not provided, uses default card.

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

Responses

Auto renewal update results

Bodyapplication/json
resultsArray of objects

Results for each domain

successCountnumber

Number of successful updates

failureCountnumber

Number of failed updates

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

Add tags to domains

Request

Add tags to domains in your portfolio. Creates new tags automatically if they don't exist. Supports bulk operations for up to 50 domains.

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

Array of domain names to add tags to (e.g., ["example.com", "mysite.io"])

Example: ["example.com","mysite.io"]
tagsArray of strings[ 1 .. 10 ] itemsrequired

Array of tag names to add (e.g., ["Work", "Important"]). Max 20 characters each.

Example: ["Work","Important"]
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_domain_tags_add \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      "example.com",
      "mysite.io"
    ],
    "tags": [
      "Work",
      "Important"
    ]
  }'

Responses

Tags added to domains

Bodyapplication/json
resultsArray of objects

Results for each domain

newTagsCreatedArray of strings

Tags that were newly created (didn't exist before)

successCountnumber

Number of domains with tags applied

failureCountnumber

Number of domains that failed

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

Remove tags from domains

Request

Remove tags from domains in your portfolio. Supports bulk operations for up to 50 domains.

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

Array of domain names to remove tags from (e.g., ["example.com", "mysite.io"])

Example: ["example.com","mysite.io"]
tagsArray of strings[ 1 .. 10 ] itemsrequired

Array of tag names to remove (e.g., ["Work", "Old"])

Example: ["Work","Old"]
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_domain_tags_remove \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      "example.com",
      "mysite.io"
    ],
    "tags": [
      "Work",
      "Old"
    ]
  }'

Responses

Tags removed from domains

Bodyapplication/json
resultsArray of objects

Results for each domain

successCountnumber

Number of domains with tags removed

failureCountnumber

Number of domains that failed

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

Update domain flags

Request

Update domain flags (WHOIS privacy, transfer lock) for domains in your portfolio. Supports bulk operations for up to 50 domains.

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

Array of domain names to update (e.g., ["example.com", "mysite.io"])

Example: ["example.com","mysite.io"]
flagsobjectrequired

Flags to update

flags.​DNS_TRANSFER_OUTobject
flags.​DNS_WHOIS_PROXYobject
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_domain_flags_update \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      "example.com",
      "mysite.io"
    ],
    "flags": {
      "DNS_TRANSFER_OUT": {
        "status": "ENABLED"
      },
      "DNS_WHOIS_PROXY": {
        "status": "ENABLED"
      }
    }
  }'

Responses

Flags updated for domains

Bodyapplication/json
resultsArray of objects

Results for each domain

successCountnumber

Number of domains with flags updated

failureCountnumber

Number of domains that failed

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

Push domains to another user

Request

Push domains to another Unstoppable Domains user. Requires MFA (two-factor authentication) verification. The recipient must accept the transfer.

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

Array of domain names to push (e.g., ["example.com", "mysite.io"])

Example: ["example.com","mysite.io"]
targetAccountIdstringnon-emptyrequired

Recipient's account ID in format "adjective-noun-xxx" (e.g., "brave-tiger-k7m")

Example: "brave-tiger-k7m"
otpCodestring^\d{6}$required

6-digit OTP code from your authenticator app

Example: "123456"
curl -i -X POST \
  https://api.unstoppabledomains.com/mcp/v1/actions/ud_domain_push \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "domains": [
      "example.com",
      "mysite.io"
    ],
    "targetAccountId": "brave-tiger-k7m",
    "otpCode": "123456"
  }'

Responses

Push initiated

Bodyapplication/json
successboolean

Whether any domains were successfully pushed

pushedDomainsArray of strings

Domains that were successfully initiated for push

failedDomainsArray of objects

Domains that could not be pushed with reasons

targetAccountIdstring

The target account ID

messagestring

Human-readable summary message

Response
application/json
{ "success": true, "pushedDomains": [ "string" ], "failedDomains": [ {} ], "targetAccountId": "string", "message": "string" }