CompleteDNS API v2

The CompleteDNS API v2 returns the historical nameserver record for a domain, including counts of changes and drops, years of history, and a chronologically ordered list of events. Authentication uses an API key passed as a query parameter.

OpenAPI Specification

completedns-v2-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CompleteDNS API v2
  description: >-
    The CompleteDNS API v2 returns the historical nameserver record for a
    domain. The service tracks nameserver changes and domain drops for over
    twenty years and returns the chronological list of events for a queried
    domain. Authentication is via an API key passed as a query string
    parameter.
  version: v2
  contact:
    name: CompleteDNS
    url: https://completedns.com/contact
  termsOfService: https://completedns.com/terms
externalDocs:
  description: CompleteDNS API v2 Documentation
  url: https://completedns.com/api/documentation/v2
servers:
  - url: https://api.completedns.com/v2
    description: CompleteDNS v2 production API
tags:
  - name: DNS History
    description: Nameserver and drop history for a domain
security:
  - apiKey: []
paths:
  /dns-history/{domain}:
    get:
      operationId: getDnsHistory
      summary: Get DNS history for a domain
      description: >-
        Returns the full history of nameserver changes and drop events for
        the requested domain, including the count of changes, count of
        drops, years tracked, and a chronologically ordered list of events.
      tags:
        - DNS History
      parameters:
        - name: domain
          in: path
          required: true
          description: The fully qualified domain to look up.
          schema:
            type: string
            example: youtube.com
        - name: key
          in: query
          required: true
          description: API key issued in the CompleteDNS account API section.
          schema:
            type: string
      responses:
        '200':
          description: DNS history record for the domain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DnsHistoryResponse'
        '400':
          description: Invalid domain or unsupported TLD.
        '401':
          description: Missing or invalid API key.
        '403':
          description: IP restriction or quota exhausted.
        '404':
          description: Domain not tracked.
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: key
  schemas:
    DnsHistoryResponse:
      type: object
      properties:
        domain:
          type: string
          description: The queried domain name.
        drops:
          type: integer
          description: Total nameserver removal events recorded.
        changes:
          type: integer
          description: Total nameserver change events recorded.
        years:
          type: number
          description: Years of history tracked for the domain.
        was_parked:
          type: boolean
          description: Whether the domain was parked at any point in the history.
        events:
          type: array
          items:
            $ref: '#/components/schemas/DnsEvent'
    DnsEvent:
      type: object
      properties:
        date:
          type: string
          description: Exact date or date range when the event occurred.
        type:
          type: string
          enum:
            - start_tracking
            - dropped
            - created
            - change
        nameservers:
          type: array
          items:
            type: string
          description: Active nameservers at the time of the event.
        changes:
          type: array
          items:
            $ref: '#/components/schemas/NameserverChange'
    NameserverChange:
      type: object
      properties:
        action:
          type: string
          enum:
            - added
            - removed
        nameserver:
          type: string