Rackspace Technology Records API

DNS record operations within a domain.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

rackspace-technology-records-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rackspace Cloud DNS Contacts Records 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: Records
  description: DNS record operations within a domain.
paths:
  /{account}/domains/{domainId}/records:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    get:
      operationId: listRecords
      summary: List Records
      description: Lists DNS records for the specified domain. Supports filtering by type, name, and data.
      tags:
      - Records
      parameters:
      - in: query
        name: type
        required: false
        description: Filter by record type (A, AAAA, MX, CNAME, NS, TXT, SRV).
        schema:
          type: string
      - in: query
        name: name
        required: false
        schema:
          type: string
      - in: query
        name: data
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Records returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordList'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: addRecords
      summary: Add Records
      description: Adds one or more DNS records to the specified domain.
      tags:
      - Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddRecordsRequest'
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteRecords
      summary: Delete Records
      description: Deletes multiple DNS records by ID.
      tags:
      - Records
      parameters:
      - in: query
        name: id
        required: true
        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/{domainId}/records/{recordId}:
    parameters:
    - $ref: '#/components/parameters/AccountId'
    - $ref: '#/components/parameters/DomainId'
    - $ref: '#/components/parameters/RecordId'
    get:
      operationId: showRecord
      summary: Show Record
      description: Returns details for a single DNS record.
      tags:
      - Records
      responses:
        '200':
          description: Record returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteRecord
      summary: Delete Record
      description: Deletes a single DNS record.
      tags:
      - Records
      responses:
        '202':
          $ref: '#/components/responses/AsyncJobAccepted'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    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
    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
    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'
    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
    Link:
      title: Link
      type: object
      properties:
        rel:
          type: string
        href:
          type: string
          format: uri
        content:
          type: string
    AddRecordsRequest:
      title: AddRecordsRequest
      type: object
      required:
      - records
      properties:
        records:
          type: array
          items:
            $ref: '#/components/schemas/RecordInput'
  parameters:
    RecordId:
      in: path
      name: recordId
      required: true
      description: The Rackspace Cloud DNS record ID.
      schema:
        type: string
    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
  responses:
    AsyncJobAccepted:
      description: The asynchronous job has been accepted; poll the callbackUrl until status is COMPLETED.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AsyncJob'
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Rackspace Cloud Identity-issued authentication token.