Rackspace Technology Domains API

DNS domain (zone) operations.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

rackspace-technology-domains-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rackspace Cloud DNS Contacts Domains API
  version: '1.0'
  description: The Rackspace Cloud DNS API (v1.0) provides programmatic management of DNS zones and records hosted on the Rackspace Cloud. Operations include listing, creating, updating, importing, exporting, and cloning domains, plus full CRUD on standard DNS records and reverse DNS PTR records, with support for paginated listings, asynchronous job tracking, and per-account usage limits.
  contact:
    name: Rackspace Technology
    url: https://www.rackspace.com/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  x-generated-from: documentation
  x-source-url: https://github.com/rackerlabs/docs-cloud-dns
  x-last-validated: '2026-05-05'
servers:
- url: https://dns.api.rackspacecloud.com/v1.0
  description: Rackspace Cloud DNS production endpoint
security:
- AuthToken: []
tags:
- name: Domains
  description: DNS domain (zone) operations.
paths:
  /{account}/domains:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    get:
      operationId: listDomains
      summary: List Domains
      description: Lists all DNS domains manageable by the specified account. The resulting list is flat (subdomains are not nested) and returns by default a maximum of 100 items per page; navigate using the limit and offset query parameters.
      tags:
      - Domains
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - in: query
        name: name
        required: false
        description: Filter the listing to domains whose name starts with this string.
        schema:
          type: string
      responses:
        '200':
          description: Domains list returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainList'
              example:
                domains:
                - id: '2725233'
                  name: example.com
                  accountId: '1234'
                  emailAddress: sample@rackspace.com
                  comment: Optional domain comment.
                  created: 2011-06-24T01:12:51.000+0000
                  updated: 2011-06-24T01:23:15.000+0000
                totalEntries: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '413':
          $ref: '#/components/responses/OverLimit'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createDomains
      summary: Create Domains
      description: Creates one or more DNS domains under the specified account. Returns an asynchronous 202 response containing a callback URL that can be polled for completion status.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDomainsRequest'
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateDomains
      summary: Update Domains
      description: Updates one or more existing DNS domains under the account.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomainsRequest'
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteDomains
      summary: Delete Domains
      description: Deletes one or more DNS domains by ID.
      tags:
      - Domains
      parameters:
      - in: query
        name: id
        required: true
        description: One or more domain IDs to delete.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/search:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    get:
      operationId: searchDomains
      summary: Search Domains
      description: Searches the account's domains by name fragment.
      tags:
      - Domains
      parameters:
      - in: query
        name: name
        required: true
        description: Substring of the domain name to match.
        schema:
          type: string
      responses:
        '200':
          description: Matching domains returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainList'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/import:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    post:
      operationId: importDomain
      summary: Import Domain
      description: Imports a DNS domain definition supplied as a BIND9-formatted contents block.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportDomainRequest'
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/{domainId}:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    get:
      operationId: showDomain
      summary: Show Domain
      description: Returns details for the specified domain. Set showRecords or showSubdomains to include nested data.
      tags:
      - Domains
      parameters:
      - in: query
        name: showRecords
        required: false
        schema:
          type: boolean
        description: Include this domain's records in the response.
      - in: query
        name: showSubdomains
        required: false
        schema:
          type: boolean
        description: Include this domain's subdomains in the response.
      responses:
        '200':
          description: Domain returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateDomain
      summary: Update Domain
      description: Updates a single existing DNS domain.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomainRequest'
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteDomain
      summary: Delete Domain
      description: Deletes a single DNS domain. Use the deleteSubdomains query parameter to also delete its subdomains.
      tags:
      - Domains
      parameters:
      - in: query
        name: deleteSubdomains
        required: false
        description: When true, all subdomains are deleted along with the domain.
        schema:
          type: boolean
          default: false
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/{domainId}/changes:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    get:
      operationId: showDomainChanges
      summary: Show Domain Changes
      description: Returns a list of changes to the specified domain.
      tags:
      - Domains
      parameters:
      - in: query
        name: changes
        required: false
        description: ISO-8601 timestamp filter; only changes since this date are returned.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Change history returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainChanges'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/{domainId}/export:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    get:
      operationId: exportDomain
      summary: Export Domain
      description: Exports the BIND9-formatted contents of a domain.
      tags:
      - Domains
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/{domainId}/clone:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    post:
      operationId: cloneDomain
      summary: Clone Domain
      description: Clones the specified domain to a new domain name.
      tags:
      - Domains
      parameters:
      - in: query
        name: cloneName
        required: true
        description: New name to use for the clone.
        schema:
          type: string
      - in: query
        name: cloneSubdomains
        required: false
        schema:
          type: boolean
          default: true
      - in: query
        name: modifyRecordData
        required: false
        schema:
          type: boolean
          default: true
      - in: query
        name: modifyEmailAddress
        required: false
        schema:
          type: boolean
          default: true
      - in: query
        name: modifyComment
        required: false
        schema:
          type: boolean
          default: true
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{account}/domains/{domainId}/subdomains:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    get:
      operationId: listSubdomains
      summary: List Subdomains
      description: Lists subdomains for a domain.
      tags:
      - Domains
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Subdomains returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainList'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2.0/RAX-AUTH/domains:
    get:
      operationId: listDomains
      summary: List Domains
      description: Lists identity domains.
      tags:
      - Domains
      responses:
        '200':
          description: Domains returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainList_2'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2.0/RAX-AUTH/domains/{domainId}:
    parameters:
    - in: path
      name: domainId
      required: true
      schema:
        type: string
    get:
      operationId: getDomainById
      summary: Get Domain By Id
      tags:
      - Domains
      responses:
        '200':
          description: Domain returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain_2'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    OverLimit:
      description: The number of items returned is above the allowed limit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Fault'
    NotFound:
      description: The requested item was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Fault'
    AsyncJobAccepted:
      description: The asynchronous job has been accepted; poll the callbackUrl until status is COMPLETED.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AsyncJob'
    ServiceUnavailable:
      description: The DNS service is not available.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Fault'
    Unauthorized:
      description: You are not authorized to complete this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Fault'
    BadRequest:
      description: The request is missing one or more elements, or values are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Fault'
  parameters:
    Offset:
      in: query
      name: offset
      required: false
      description: Zero-based offset into the result set.
      schema:
        type: integer
        default: 0
        minimum: 0
    AccountId:
      in: path
      name: account
      required: true
      description: The Rackspace Cloud account (tenant) ID.
      schema:
        type: string
    Limit:
      in: query
      name: limit
      required: false
      description: Maximum number of items to return (default 100).
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 100
    DomainId:
      in: path
      name: domainId
      required: true
      description: The Rackspace Cloud DNS domain ID.
      schema:
        type: string
  schemas:
    DomainList:
      title: DomainList
      type: object
      properties:
        domains:
          type: array
          items:
            $ref: '#/components/schemas/Domain'
        totalEntries:
          type: integer
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    Link:
      title: Link
      type: object
      properties:
        rel:
          type: string
        href:
          type: string
          format: uri
        content:
          type: string
    DomainChanges:
      title: DomainChanges
      type: object
      properties:
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        totalEntries:
          type: integer
        changes:
          type: array
          items:
            type: object
            properties:
              domain:
                type: string
              action:
                type: string
              targetType:
                type: string
              targetId:
                type: string
              accountId:
                type: string
              changeDetails:
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                    originalValue:
                      type: string
                    newValue:
                      type: string
    RecordList:
      title: RecordList
      type: object
      properties:
        records:
          type: array
          items:
            $ref: '#/components/schemas/Record'
        totalEntries:
          type: integer
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    UpdateDomainsRequest:
      title: UpdateDomainsRequest
      type: object
      properties:
        domains:
          type: array
          items:
            allOf:
            - type: object
              properties:
                id:
                  type: string
            - $ref: '#/components/schemas/UpdateDomainRequest'
    RecordInput:
      title: RecordInput
      type: object
      required:
      - type
      - name
      - data
      properties:
        type:
          type: string
          enum:
          - A
          - AAAA
          - MX
          - CNAME
          - NS
          - TXT
          - SRV
          - PTR
        name:
          type: string
        data:
          type: string
        ttl:
          type: integer
          minimum: 300
        priority:
          type: integer
        comment:
          type: string
    DomainList_2:
      title: DomainList
      type: object
      properties:
        RAX-AUTH:domains:
          type: array
          items:
            $ref: '#/components/schemas/Domain_2'
    UpdateDomainRequest:
      title: UpdateDomainRequest
      type: object
      properties:
        ttl:
          type: integer
          minimum: 300
        emailAddress:
          type: string
          format: email
        comment:
          type: string
    AsyncJob:
      title: AsyncJob
      type: object
      properties:
        callbackUrl:
          type: string
          format: uri
        status:
          type: string
          enum:
          - INITIALIZED
          - RUNNING
          - COMPLETED
          - ERROR
        requestUrl:
          type: string
          format: uri
        verb:
          type: string
        jobId:
          type: string
        response:
          type: object
          additionalProperties: true
    CreateDomainsRequest:
      title: CreateDomainsRequest
      type: object
      required:
      - domains
      properties:
        domains:
          type: array
          items:
            type: object
            required:
            - name
            - emailAddress
            properties:
              name:
                type: string
              ttl:
                type: integer
                minimum: 300
              emailAddress:
                type: string
                format: email
              comment:
                type: string
              recordsList:
                type: object
                properties:
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/RecordInput'
              subdomains:
                type: object
                properties:
                  domains:
                    type: array
                    items:
                      $ref: '#/components/schemas/Domain'
    Record:
      title: Record
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
          - A
          - AAAA
          - MX
          - CNAME
          - NS
          - TXT
          - SRV
          - PTR
        data:
          type: string
        ttl:
          type: integer
          minimum: 300
        priority:
          type: integer
          description: Required for MX and SRV records.
        comment:
          type: string
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
    Domain:
      title: Domain
      type: object
      description: A DNS zone manageable by the account.
      properties:
        id:
          type: string
          description: Domain identifier.
        accountId:
          type: string
          description: Tenant identifier that owns the domain.
        name:
          type: string
          description: Fully qualified domain name.
        emailAddress:
          type: string
          format: email
          description: Administrative email contact (used as SOA RNAME).
        ttl:
          type: integer
          description: Default record TTL in seconds (>= 300).
        comment:
          type: string
          description: Optional administrative comment.
        nameservers:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
        recordsList:
          $ref: '#/components/schemas/RecordList'
        subdomains:
          $ref: '#/components/schemas/DomainList'
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
    ImportDomainRequest:
      title: ImportDomainRequest
      type: object
      required:
      - domains
      properties:
        domains:
          type: array
          items:
            type: object
            required:
            - contentType
            - contents
            properties:
              contentType:
                type: string
                enum:
                - BIND_9
              contents:
                type: string
                description: BIND9-formatted zone file contents.
    Domain_2:
      title: Domain
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        enabled:
          type: boolean
    Fault:
      title: Fault
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: string
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Rackspace Cloud Identity-issued authentication token.