Unstoppable Domains DNS Management API

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

Operations 12

POST /mcp/v1/actions/ud_dns_records_list List DNS records for a domain #
POST /mcp/v1/actions/ud_dns_record_add Add DNS records (bulk) #
POST /mcp/v1/actions/ud_dns_record_update Update DNS records (bulk) #
POST /mcp/v1/actions/ud_dns_record_remove Remove DNS records (bulk) #
POST /mcp/v1/actions/ud_dns_records_remove_all Remove all DNS records (bulk) #
POST /mcp/v1/actions/ud_dns_nameservers_list List nameservers for a domain #
POST /mcp/v1/actions/ud_dns_nameservers_set_custom Set custom nameservers (bulk) #
POST /mcp/v1/actions/ud_dns_nameservers_set_default Reset to UD default nameservers (bulk) #
POST /mcp/v1/actions/ud_dns_hosting_list List hosting configurations #
POST /mcp/v1/actions/ud_dns_hosting_add Add hosting configuration (bulk) #
POST /mcp/v1/actions/ud_dns_hosting_remove Remove hosting configuration (bulk) #
POST /mcp/v1/actions/ud_domain_pending_operations Get pending operations for multiple domains #

Work with this as data

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 Specification

unstoppable-domains-dns-management-api-openapi.yml Raw ↑
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.