Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/unstoppable-domains-dns-management-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: User DNS Management API
description: '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](/user-api/overview#api-key-advanced) for instructions.'
version: 1.0.0
contact:
name: Unstoppable Domains
url: https://unstoppabledomains.com
email: support@unstoppabledomains.com
x-logo:
url: https://unstoppabledomains.com/images/logos/ud-logo-icon.svg
servers:
- url: https://api.unstoppabledomains.com
description: Production server
tags:
- name: DNS Management
description: Manage DNS records, nameservers, and hosting configurations for owned domains (requires authentication)
paths:
/mcp/v1/actions/ud_dns_records_list:
post:
operationId: dnsRecordsList
summary: List DNS records for a domain
description: List all DNS records for a domain in your portfolio. Supports filtering by record type and subdomain, with pagination.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
description: Domain name (e.g., "example.com")
type:
type: string
description: Filter by record type (A, AAAA, CNAME, MX, TXT, NS)
subName:
type: string
description: Filter by subdomain ("@" for root, "www", "*" for wildcard)
cursor:
type: string
description: Pagination cursor
responses:
'200':
description: DNS records list
content:
application/json:
schema:
$ref: '#/components/schemas/DnsRecordsListResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_record_add:
post:
operationId: dnsRecordAdd
summary: Add DNS records (bulk)
description: 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.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- records
properties:
records:
type: array
minItems: 1
maxItems: 50
description: Array of DNS record configurations (1-50)
items:
type: object
required:
- domain
- type
- values
properties:
domain:
type: string
description: Domain name (e.g., "example.com")
type:
type: string
description: Record type (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
subName:
type: string
default: '@'
description: Subdomain ("@" for root, "www", "*" for wildcard)
values:
type: array
items:
type: string
description: Record values
ttl:
type: number
default: 3600
description: Time-to-live in seconds (60-86400)
upsertMode:
type: string
enum:
- append
- replace
- disallowed
description: Global setting for how to handle existing records
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_record_update:
post:
operationId: dnsRecordUpdate
summary: Update DNS records (bulk)
description: Update existing DNS records on one or more domains. Bulk operations up to 50 records.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- records
properties:
records:
type: array
minItems: 1
maxItems: 50
description: Array of record update configurations (1-50)
items:
type: object
required:
- domain
- recordId
- values
properties:
domain:
type: string
description: Domain name
recordId:
type: string
description: Record ID from ud_dns_records_list
values:
type: array
items:
type: string
description: New record values
ttl:
type: number
default: 3600
description: 'Time-to-live in seconds (60-86400). Default: 3600'
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_record_remove:
post:
operationId: dnsRecordRemove
summary: Remove DNS records (bulk)
description: Remove specific DNS records by ID from one or more domains. Bulk operations up to 50 records.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- records
properties:
records:
type: array
minItems: 1
maxItems: 50
description: Array of record removal configurations (1-50)
items:
type: object
required:
- domain
- recordId
properties:
domain:
type: string
description: Domain name
recordId:
type: string
description: Record ID to remove
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_records_remove_all:
post:
operationId: dnsRecordsRemoveAll
summary: Remove all DNS records (bulk)
description: Remove ALL user-created DNS records from one or more domains. Requires explicit confirmation. Bulk operations up to 50 domains.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domains
- confirmDeleteAll
properties:
domains:
type: array
minItems: 1
maxItems: 50
description: Array of domains to remove all records from (1-50)
items:
type: object
required:
- name
properties:
name:
type: string
description: Domain name
confirmDeleteAll:
type: boolean
const: true
description: Must be exactly true to confirm this destructive operation
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_nameservers_list:
post:
operationId: dnsNameserversList
summary: List nameservers for a domain
description: List current nameservers and check if using UD defaults or custom nameservers.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
description: Domain name
includeDnssec:
type: boolean
description: Include DNSSEC info
responses:
'200':
description: Nameservers list
content:
application/json:
schema:
$ref: '#/components/schemas/DnsNameserversListResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_nameservers_set_custom:
post:
operationId: dnsNameserversSetCustom
summary: Set custom nameservers (bulk)
description: Configure external nameservers (e.g., Cloudflare, Route 53) for one or more domains. Supports up to 50 domains per request.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domains
properties:
domains:
type: array
items:
type: object
required:
- name
- nameservers
properties:
name:
type: string
description: Domain name
nameservers:
type: array
items:
type: string
minItems: 2
maxItems: 12
description: Nameserver hostnames
dnssec:
type: object
description: Optional DNSSEC DS records
minItems: 1
maxItems: 50
description: Array of domain configurations
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_nameservers_set_default:
post:
operationId: dnsNameserversSetDefault
summary: Reset to UD default nameservers (bulk)
description: Switch back to Unstoppable Domains default nameservers for one or more domains. Supports up to 50 domains per request.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domains
properties:
domains:
type: array
items:
type: object
required:
- name
properties:
name:
type: string
description: Domain name
minItems: 1
maxItems: 50
description: Array of domains
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_hosting_list:
post:
operationId: dnsHostingList
summary: List hosting configurations
description: List hosting/forwarding configurations (redirects, reverse proxy, hosted sites, UD Profile).
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
description: Domain name
cursor:
type: string
description: Pagination cursor
responses:
'200':
description: Hosting configurations
content:
application/json:
schema:
$ref: '#/components/schemas/DnsHostingListResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_hosting_add:
post:
operationId: dnsHostingAdd
summary: Add hosting configuration (bulk)
description: 'Configure hosting for one or more domains: for-sale listing page, permanent redirect (301), temporary redirect (302), or reverse proxy. Supports up to 50 domains per request.'
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domains
properties:
domains:
type: array
items:
type: object
required:
- name
- type
properties:
name:
type: string
description: Domain name
type:
type: string
enum:
- LISTING_PAGE
- REDIRECT_301
- REDIRECT_302
- REVERSE_PROXY
description: Hosting type
targetUrl:
type: string
description: Destination URL (required for REDIRECT_301, REDIRECT_302, REVERSE_PROXY)
subName:
type: string
description: Subdomain to configure
forceCompatibility:
type: boolean
description: Auto-configure UD nameservers if needed
minItems: 1
maxItems: 50
description: Array of domain hosting configurations
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_dns_hosting_remove:
post:
operationId: dnsHostingRemove
summary: Remove hosting configuration (bulk)
description: Remove hosting/forwarding configuration from one or more domains. Supports up to 50 domains per request.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domains
properties:
domains:
type: array
items:
type: object
required:
- name
properties:
name:
type: string
description: Domain name
subName:
type: string
description: Subdomain to remove
deleteAll:
type: boolean
description: Remove ALL hosting configs for this domain
minItems: 1
maxItems: 50
description: Array of domains to remove hosting from
confirmDeleteAll:
type: boolean
enum:
- true
description: 'Must be true when any domain has deleteAll: true'
responses:
'200':
description: Bulk operation result
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDnsOperationResponse'
'401':
description: Authentication required
/mcp/v1/actions/ud_domain_pending_operations:
post:
operationId: domainPendingOperations
summary: Get pending operations for multiple domains
description: Check status of DNS operations across multiple domains. Use to track changes and verify completion after bulk operations.
tags:
- DNS Management
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domains
properties:
domains:
type: array
items:
type: object
required:
- name
properties:
name:
type: string
description: Domain name
minItems: 1
maxItems: 50
description: Array of domains to check for pending operations
includeCompleted:
type: boolean
description: Include completed operations (last 24h)
responses:
'200':
description: Pending operations for all domains
content:
application/json:
schema:
$ref: '#/components/schemas/PendingOperationsResponse'
'401':
description: Authentication required
components:
schemas:
DnsNameserversListResponse:
type: object
properties:
domain:
type: string
nameservers:
type: array
items:
type: string
description: List of nameserver hostnames
isUsingDefaultNameservers:
type: boolean
description: True if using UD default nameservers
dnssec:
type:
- object
- 'null'
properties:
enabled:
type: boolean
records:
type: array
items:
type: object
properties:
keyTag:
type: number
algorithm:
type: number
digestType:
type: number
digest:
type: string
DnsHostingListResponse:
type: object
properties:
domain:
type: string
configs:
type: array
items:
type: object
properties:
type:
type: string
enum:
- GCS_HOSTED
- LISTING_PAGE
- REDIRECT_301
- REDIRECT_302
- REVERSE_PROXY
- UD_PROFILE
- STOREFRONT
subName:
type:
- string
- 'null'
description: Subdomain (null for root)
targetUrl:
type:
- string
- 'null'
description: Destination URL (for redirects and reverse proxy)
status:
type: string
certificateStatus:
type:
- string
- 'null'
pagination:
type: object
properties:
hasMore:
type: boolean
nextCursor:
type:
- string
- 'null'
PendingOperationsResponse:
type: object
description: Bulk response for pending operations across multiple domains
properties:
results:
type: array
items:
type: object
properties:
domain:
type: string
description: Domain name
success:
type: boolean
description: Whether the lookup succeeded
hasPendingOperations:
type: boolean
description: Whether any operations are still in progress
operations:
type: array
items:
type: object
properties:
id:
type: string
description: Operation ID
type:
type: string
description: Operation type
status:
type: string
description: UserOperationStatus string, e.g. PENDING, PENDING_SIGNATURE, COMPLETED, FAILED
createdAt:
type: string
updatedAt:
type: string
originOperationId:
type:
- string
- 'null'
description: ID of the originating operation, if any
errorCode:
type:
- string
- 'null'
description: Error code if the operation failed, otherwise null
error:
type: string
description: Error message (if lookup failed)
successCount:
type: number
description: Number of domains successfully queried
failureCount:
type: number
description: Number of domains that failed lookup
summary:
type: object
description: Aggregate summary across all domains
properties:
totalPendingCount:
type: number
description: Total pending operations across all domains
domainsWithPending:
type: array
items:
type: string
description: List of domain names with pending operations
BulkDnsOperationResponse:
type: object
description: Response for bulk DNS operations (nameservers, hosting). Contains results per domain with success/failure tracking.
properties:
results:
type: array
items:
type: object
properties:
domain:
type: string
description: Domain name
success:
type: boolean
description: Whether the operation succeeded
operationId:
type: string
description: Track with ud_domain_pending_operations (if successful)
nameservers:
type: array
items:
type: string
description: Configured nameservers (for nameserver operations)
hasDnssec:
type: boolean
description: Whether DNSSEC is configured (for nameserver operations)
config:
type: object
description: Hosting config (for hosting operations)
properties:
type:
type: string
subName:
type:
- string
- 'null'
targetUrl:
type:
- string
- 'null'
subName:
type: string
description: Subdomain removed (for hosting remove operations)
deletedAll:
type: boolean
description: Whether all configs were removed (for hosting remove)
error:
type: string
description: Error message (if failed)
successCount:
type: number
description: Number of successful operations
failureCount:
type: number
description: Number of failed operations
DnsRecordsListResponse:
type: object
properties:
domain:
type: string
records:
type: array
items:
type: object
properties:
id:
type:
- string
- 'null'
description: Record ID (may be undefined for system records)
type:
type: string
enum:
- A
- AAAA
- CNAME
- MX
- TXT
- NS
- SRV
- CAA
subName:
type:
- string
- 'null'
description: Record subdomain (relative name)
values:
type: array
items:
type: string
description: Record values
ttl:
type: number
description: Time to live in seconds
readonly:
type: boolean
description: Whether this record is read-only and cannot be modified
readonlyReasons:
type: array
items:
type: string
description: Reasons why the record is read-only
pagination:
type: object
properties:
hasMore:
type: boolean
nextCursor:
type:
- string
- 'null'
dnsStatus:
type:
- object
- 'null'
description: Present when DNS is not managed by UD. Explains the current DNS configuration state.
properties:
configured:
type: boolean
description: Whether nameservers are set up for this domain
provider:
type:
- string
- 'null'
enum:
- ud
- external
description: 'DNS provider: "ud" for UD-managed, "external" for third-party'
message:
type: string
description: Human-readable explanation and suggested next steps
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key for authenticated operations. Obtain from your Unstoppable Domains account settings.