Infoblox DNS Records API

Operations for managing DNS resource records including A, AAAA, CNAME, MX, PTR, TXT, SRV, and NS records.

OpenAPI Specification

infoblox-dns-records-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Infoblox WAPI (Web API) DHCP DNS Records API
  description: RESTful API for managing Infoblox NIOS DDI (DNS, DHCP, IPAM) services, network objects, and configuration. The WAPI uses standard HTTP methods for CRUD operations and supports JSON and XML input and output formats. Authentication is handled via HTTP basic authentication or certificate-based authentication, and sessions can be maintained using cookies returned after initial authentication. The API follows a resource-oriented design where each NIOS object type is accessible as a REST resource.
  version: '2.12'
  contact:
    name: Infoblox Support
    email: support@infoblox.com
    url: https://www.infoblox.com/support/
  termsOfService: https://www.infoblox.com/company/legal/website-terms-and-conditions/
servers:
- url: https://{grid-master}/wapi/v2.12
  description: Infoblox NIOS Grid Master
  variables:
    grid-master:
      default: grid-master.example.com
      description: The hostname or IP address of the Infoblox NIOS Grid Master appliance.
security:
- basicAuth: []
- cookieAuth: []
tags:
- name: DNS Records
  description: Operations for managing DNS resource records including A, AAAA, CNAME, MX, PTR, TXT, SRV, and NS records.
paths:
  /record:a:
    get:
      operationId: listARecords
      summary: Infoblox List DNS A records
      description: Retrieves a list of DNS A records from the Infoblox appliance. Supports filtering by name, IP address, view, zone, and other fields. Use the _return_fields parameter to specify which fields to include in the response. Results can be paginated using _max_results and _paging parameters.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - $ref: '#/components/parameters/Paging'
      - $ref: '#/components/parameters/PageId'
      - name: name
        in: query
        description: Filter by the fully qualified domain name of the A record.
        schema:
          type: string
      - name: ipv4addr
        in: query
        description: Filter by the IPv4 address of the A record.
        schema:
          type: string
          format: ipv4
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      - name: zone
        in: query
        description: Filter by the DNS zone name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of A records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordA'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createARecord
      summary: Infoblox Create a DNS A record
      description: Creates a new DNS A record with the specified name and IPv4 address. The record is created in the specified DNS view, or the default view if none is specified. Returns the object reference of the newly created record.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordACreate'
      responses:
        '201':
          description: Successfully created the A record.
          content:
            application/json:
              schema:
                type: string
                description: The object reference of the newly created record.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /record:a/{ref}:
    get:
      operationId: getARecord
      summary: Infoblox Get a DNS A record
      description: Retrieves a specific DNS A record by its object reference. Use the _return_fields parameter to specify which fields to include in the response.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ObjectRef'
      - $ref: '#/components/parameters/ReturnFields'
      responses:
        '200':
          description: Successfully retrieved the A record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordA'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateARecord
      summary: Infoblox Update a DNS A record
      description: Updates an existing DNS A record identified by its object reference. Only the fields included in the request body are modified. Returns the object reference of the updated record.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ObjectRef'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordAUpdate'
      responses:
        '200':
          description: Successfully updated the A record.
          content:
            application/json:
              schema:
                type: string
                description: The object reference of the updated record.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteARecord
      summary: Infoblox Delete a DNS A record
      description: Deletes a DNS A record identified by its object reference. Returns the object reference of the deleted record.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ObjectRef'
      responses:
        '200':
          description: Successfully deleted the A record.
          content:
            application/json:
              schema:
                type: string
                description: The object reference of the deleted record.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /record:aaaa:
    get:
      operationId: listAAAARecords
      summary: Infoblox List DNS AAAA records
      description: Retrieves a list of DNS AAAA (IPv6 address) records. Supports filtering by name, IPv6 address, view, and zone.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - name: name
        in: query
        description: Filter by the fully qualified domain name.
        schema:
          type: string
      - name: ipv6addr
        in: query
        description: Filter by the IPv6 address.
        schema:
          type: string
          format: ipv6
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of AAAA records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordAAAA'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createAAAARecord
      summary: Infoblox Create a DNS AAAA record
      description: Creates a new DNS AAAA record mapping a domain name to an IPv6 address.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordAAAACreate'
      responses:
        '201':
          description: Successfully created the AAAA record.
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /record:cname:
    get:
      operationId: listCNAMERecords
      summary: Infoblox List DNS CNAME records
      description: Retrieves a list of DNS CNAME (canonical name) records. Supports filtering by name, canonical name, view, and zone.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - name: name
        in: query
        description: Filter by the alias name.
        schema:
          type: string
      - name: canonical
        in: query
        description: Filter by the canonical (target) name.
        schema:
          type: string
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of CNAME records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordCNAME'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createCNAMERecord
      summary: Infoblox Create a DNS CNAME record
      description: Creates a new DNS CNAME record mapping an alias name to a canonical name.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordCNAMECreate'
      responses:
        '201':
          description: Successfully created the CNAME record.
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /record:mx:
    get:
      operationId: listMXRecords
      summary: Infoblox List DNS MX records
      description: Retrieves a list of DNS MX (mail exchange) records. Supports filtering by name, mail exchanger, preference, view, and zone.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - name: name
        in: query
        description: Filter by the domain name.
        schema:
          type: string
      - name: mail_exchanger
        in: query
        description: Filter by the mail exchanger hostname.
        schema:
          type: string
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of MX records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordMX'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createMXRecord
      summary: Infoblox Create a DNS MX record
      description: Creates a new DNS MX record specifying a mail exchanger for a domain.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordMXCreate'
      responses:
        '201':
          description: Successfully created the MX record.
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /record:txt:
    get:
      operationId: listTXTRecords
      summary: Infoblox List DNS TXT records
      description: Retrieves a list of DNS TXT records. Supports filtering by name, text content, view, and zone.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - name: name
        in: query
        description: Filter by the domain name.
        schema:
          type: string
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of TXT records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordTXT'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createTXTRecord
      summary: Infoblox Create a DNS TXT record
      description: Creates a new DNS TXT record with the specified text data.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordTXTCreate'
      responses:
        '201':
          description: Successfully created the TXT record.
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /record:ptr:
    get:
      operationId: listPTRRecords
      summary: Infoblox List DNS PTR records
      description: Retrieves a list of DNS PTR (pointer) records used for reverse DNS lookups. Supports filtering by name, ptrdname, view, and zone.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - name: ptrdname
        in: query
        description: Filter by the domain name the PTR record points to.
        schema:
          type: string
      - name: ipv4addr
        in: query
        description: Filter by the IPv4 address for the PTR record.
        schema:
          type: string
          format: ipv4
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of PTR records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordPTR'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createPTRRecord
      summary: Infoblox Create a DNS PTR record
      description: Creates a new DNS PTR record for reverse DNS resolution.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordPTRCreate'
      responses:
        '201':
          description: Successfully created the PTR record.
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /record:host:
    get:
      operationId: listHostRecords
      summary: Infoblox List DNS host records
      description: Retrieves a list of DNS host records. A host record contains the DNS and DHCP data for a host, including one or more IP addresses. Supports filtering by name, view, and zone.
      tags:
      - DNS Records
      parameters:
      - $ref: '#/components/parameters/ReturnFields'
      - $ref: '#/components/parameters/MaxResults'
      - name: name
        in: query
        description: Filter by the fully qualified domain name of the host.
        schema:
          type: string
      - name: view
        in: query
        description: Filter by the DNS view name.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of host records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordHost'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createHostRecord
      summary: Infoblox Create a DNS host record
      description: Creates a new DNS host record with the specified name and IP addresses. A host record can contain multiple IPv4 and IPv6 addresses and automatically creates the corresponding A and AAAA records.
      tags:
      - DNS Records
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordHostCreate'
      responses:
        '201':
          description: Successfully created the host record.
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    RecordMXCreate:
      type: object
      required:
      - name
      - mail_exchanger
      - preference
      properties:
        name:
          type: string
          description: The domain name.
        mail_exchanger:
          type: string
          description: The mail exchanger hostname.
        preference:
          type: integer
          description: The preference value.
          minimum: 0
          maximum: 65535
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordAAAACreate:
      type: object
      required:
      - name
      - ipv6addr
      properties:
        name:
          type: string
          description: The fully qualified domain name.
        ipv6addr:
          type: string
          format: ipv6
          description: The IPv6 address to map.
        view:
          type: string
          description: The DNS view in which to create the record.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordAUpdate:
      type: object
      properties:
        name:
          type: string
          description: The fully qualified domain name for the A record.
        ipv4addr:
          type: string
          format: ipv4
          description: The IPv4 address.
        ttl:
          type: integer
          description: The time to live in seconds.
        use_ttl:
          type: boolean
          description: Whether to use the specified TTL value.
        comment:
          type: string
          description: A descriptive comment for the record.
          maxLength: 256
        disable:
          type: boolean
          description: Whether to disable the record.
    RecordHostCreate:
      type: object
      required:
      - name
      - ipv4addrs
      properties:
        name:
          type: string
          description: The fully qualified domain name of the host.
        ipv4addrs:
          type: array
          items:
            type: object
            required:
            - ipv4addr
            properties:
              ipv4addr:
                type: string
                description: The IPv4 address. Use func:nextavailableip for automatic assignment.
              mac:
                type: string
                description: The MAC address for DHCP configuration.
              configure_for_dhcp:
                type: boolean
                description: Whether to configure DHCP for this address.
          description: The list of IPv4 addresses for the host.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordPTR:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this PTR record.
        ptrdname:
          type: string
          description: The domain name the PTR record points to.
        ipv4addr:
          type: string
          format: ipv4
          description: The IPv4 address for reverse lookup.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    Error:
      type: object
      properties:
        Error:
          type: string
          description: The error type identifier.
        code:
          type: string
          description: The error code.
        text:
          type: string
          description: A human-readable error message.
    RecordACreate:
      type: object
      required:
      - name
      - ipv4addr
      properties:
        name:
          type: string
          description: The fully qualified domain name for the A record.
        ipv4addr:
          type: string
          format: ipv4
          description: The IPv4 address to map to the domain name. Use func:nextavailableip to assign the next available IP.
        view:
          type: string
          description: The DNS view in which to create the record.
        ttl:
          type: integer
          description: The time to live in seconds.
        use_ttl:
          type: boolean
          description: Whether to use the specified TTL value.
        comment:
          type: string
          description: A descriptive comment for the record.
          maxLength: 256
    RecordA:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this A record.
        name:
          type: string
          description: The fully qualified domain name of the A record.
        ipv4addr:
          type: string
          format: ipv4
          description: The IPv4 address mapped to the domain name.
        view:
          type: string
          description: The DNS view in which this record exists.
        zone:
          type: string
          description: The DNS zone containing this record.
        ttl:
          type: integer
          description: The time to live in seconds for the record.
        use_ttl:
          type: boolean
          description: Whether to use the TTL value specified on this record.
        comment:
          type: string
          description: A descriptive comment for the record (max 256 characters).
          maxLength: 256
        disable:
          type: boolean
          description: Whether the record is disabled.
    RecordTXT:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this TXT record.
        name:
          type: string
          description: The domain name.
        text:
          type: string
          description: The text data of the record.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordTXTCreate:
      type: object
      required:
      - name
      - text
      properties:
        name:
          type: string
          description: The domain name.
        text:
          type: string
          description: The text data.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordHost:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this host record.
        name:
          type: string
          description: The fully qualified domain name of the host.
        ipv4addrs:
          type: array
          items:
            type: object
            properties:
              _ref:
                type: string
                description: The object reference for this IPv4 address entry.
              ipv4addr:
                type: string
                format: ipv4
                description: The IPv4 address.
              configure_for_dhcp:
                type: boolean
                description: Whether DHCP is configured for this address.
              mac:
                type: string
                description: The MAC address associated with this IP.
          description: The list of IPv4 addresses for the host.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordCNAMECreate:
      type: object
      required:
      - name
      - canonical
      properties:
        name:
          type: string
          description: The alias name.
        canonical:
          type: string
          description: The canonical (target) domain name.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordMX:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this MX record.
        name:
          type: string
          description: The domain name.
        mail_exchanger:
          type: string
          description: The mail exchanger hostname.
        preference:
          type: integer
          description: The preference value (lower values have higher priority).
          minimum: 0
          maximum: 65535
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordCNAME:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this CNAME record.
        name:
          type: string
          description: The alias name.
        canonical:
          type: string
          description: The canonical (target) domain name.
        view:
          type: string
          description: The DNS view in which this record exists.
        ttl:
          type: integer
          description: The time to live in seconds.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordPTRCreate:
      type: object
      required:
      - ptrdname
      - ipv4addr
      properties:
        ptrdname:
          type: string
          description: The domain name the PTR record points to.
        ipv4addr:
          type: string
          format: ipv4
          description: The IPv4 address.
        view:
          type: string
          description: The DNS view.
        comment:
          type: string
          description: A descriptive comment.
          maxLength: 256
    RecordAAAA:
      type: object
      properties:
        _ref:
          type: string
          description: The object reference for this AAAA record.
        name:
          type: string
          description: The fully qualified domain name.
        ipv6addr:
          type: string
          format: ipv6
          description: The IPv6 address mapped to the domain name.
        view:
          type: string
          description: The DNS view in which this record exists.
        ttl:
          type: integer
          description: The time to live in seconds.
        comment:
          type: string
          description: A descriptive comment for the record.
          maxLength: 256
  parameters:
    ReturnFields:
      name: _return_fields
      in: query
      description: Comma-separated list of field names to include in the response. Use _return_fields+ to add fields to the default set.
      schema:
        type: string
    Paging:
      name: _paging
      in: query
      description: Set to 1 to enable result paging. When enabled, a next_page_id is returned if more results are available.
      schema:
        type: integer
        enum:
        - 0
        - 1
    PageId:
      name: _page_id
      in: query
      description: The page identifier returned from a previous paged request. Used to retrieve the next page of results.
      schema:
        type: string
    ObjectRef:
      name: ref
      in: path
      required: true
      description: The object reference string that uniquely identifies the WAPI object.
      schema:
        type: string
    MaxResults:
      name: _max_results
      in: query
      description: The maximum number of results to return. The default is 1000. Use a negative value to return all results.
      schema:
        type: integer
        default: 1000
  responses:
    Unauthorized:
      description: Authentication failed or credentials were not provided.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or contained invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The specified object reference was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using NIOS admin credentials.
    cookieAuth:
      type: apiKey
      in: cookie
      name: ibapauth
      description: Session cookie returned after successful authentication. Pass the ibapauth cookie with subsequent requests to maintain an authenticated session.
externalDocs:
  description: Infoblox WAPI Documentation
  url: https://docs.infoblox.com/space/niosapi/