DomainTools Lookups API

Endpoints for retrieving detailed information about domains and IPs, and for finding connections between domains and infrastructure.

OpenAPI Specification

domaintools-lookups-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: '2.0'
  title: dnsdb Flex search Lookups API
  description: dnsdb
  contact:
    name: DomainTools Support
    url: https://www.domaintools.com/support
    email: enterprisesupport@domaintools.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  termsOfService: https://www.domaintools.com/company/terms-of-service/
servers:
- url: https://api.dnsdb.info/dnsdb/v2
- url: https://dnsdbfront.labs.fsi.io/dnsdb/v2
tags:
- name: Lookups
  description: 'Endpoints for retrieving detailed information about domains and IPs, and for finding connections between domains and infrastructure.

    '
paths:
  /v1/{domain}/:
    get:
      operationId: getDomainProfile
      summary: Domain Profile
      description: 'Basic registrant, server, and registration data for a domain name, plus preview data for other products.

        '
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainPath'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/DomainProfileSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /v1/{domain}/hosting-history/:
    get:
      operationId: getHostingHistory
      summary: Hosting History
      description: 'Provides the registrar, IP and name server history for a domain name.

        '
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainPath'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/HostingHistorySuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/hosting-history/
  /v1/{domain}/rdap/parsed/:
    get:
      operationId: getParsedDomainRdap
      summary: Parsed Domain RDAP
      description: Returns the most recent Domain-RDAP registration record.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainPath'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      responses:
        '200':
          $ref: '#/components/responses/ParsedDomainRdapSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/parsed-rdap/
  /v1/{query}/whois/:
    get:
      operationId: getWhoisLookup
      summary: WHOIS Lookup
      description: WHOIS records for domain names and IP addresses.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainOrIpPath'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/WhoisLookupSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/whois-lookup/
  /v1/{domain}/whois/history/:
    get:
      operationId: getWhoisHistory
      summary: WHOIS History
      description: Retrieve historical WHOIS records of a given domain name.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainPath'
      - $ref: '#/components/parameters/whoisHistorySort'
      - $ref: '#/components/parameters/resultsLimit'
      - $ref: '#/components/parameters/resultsOffset'
      - $ref: '#/components/parameters/whoisHistoryMode'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/WhoisHistorySuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/whois-history/
  /v1/{query}/whois/parsed/:
    get:
      operationId: getParsedWhois
      summary: Parsed WHOIS
      description: Parsed results for WHOIS records for domain names and IP addresses.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainOrIpPath'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/ParsedWhoisSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/parsed-whois/
  /v1/reputation/:
    get:
      operationId: getDomainReputation
      summary: Domain Reputation
      description: This functionality is superseded by the Domain Risk Score `/risk/` endpoint, which offers a more complete and robust evaluation and should be used for all new development.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainQueryRequired'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/DomainReputationSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/domain-reputation/
  /v1/risk/:
    get:
      operationId: getDomainRiskScore
      summary: Domain Risk Score
      description: Provides risk scores and threat predictions based on DomainTools Proximity and Threat Profile algorithms.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainQueryRequired'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/DomainRiskScoreSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/domain-risk-score/
  /v1/risk/evidence/:
    get:
      operationId: getRiskScoreEvidence
      summary: Risk Score Evidence
      description: Provides the reasons for a domain's risk score, categorized by evidence type.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainQueryRequired'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/RiskScoreEvidenceSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/domain-risk-score-evidence/
  /v1/{ip}/host-domains/:
    get:
      operationId: getHostDomains
      summary: Reverse IP
      description: List of domains that share the same network host (IP Address).
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/ipAddressPath'
      - $ref: '#/components/parameters/resultsLimit'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/ReverseIpSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/reverse-ip/
  /v1/{nameServer}/name-server-domains/:
    get:
      operationId: getNameServerDomains
      summary: Reverse Name Server
      description: List of domains that share the same primary name server.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/nameServerPath'
      - $ref: '#/components/parameters/resultsLimit'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/ReverseNameServerSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/reverse-nameserver/
  /v1/{domain}/reverse-ip/:
    get:
      operationId: getReverseIpForDomain
      summary: Reverse IP (from Domain)
      description: List of domains that share the same IP address as the given domain.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainPath'
      - $ref: '#/components/parameters/resultsLimit'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/ReverseIpSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/reverse-ip/
  /v1/reverse-ip-whois/:
    get:
      operationId: getReverseIpWhois
      summary: Reverse IP WHOIS
      description: 'Provides a list of IP network ranges with WHOIS records that match a specific query.

        NOTE: Either an `ip` or `query` parameter is required.

        '
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/ipQuery'
      - $ref: '#/components/parameters/reverseIpWhoisQuery'
      - $ref: '#/components/parameters/countryCode'
      - $ref: '#/components/parameters/whoisServer'
      - $ref: '#/components/parameters/includeTotalCount'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/ipVersion'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/ReverseIpWhoisSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/reverse-ip-whois/
  /v1/reverse-whois/:
    get:
      operationId: getReverseWhois
      summary: Reverse WHOIS
      description: Provides a list of domain names with WHOIS records that match specific query terms.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/reverseWhoisTerms'
      - $ref: '#/components/parameters/excludeTerms'
      - $ref: '#/components/parameters/reverseWhoisScope'
      - $ref: '#/components/parameters/reverseWhoisMode'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/ReverseWhoisSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/reverse-whois/
  /v2/domain-search/:
    get:
      operationId: getDomainSearch
      summary: Domain Search
      description: Searches active and deleted domain names that match a query string.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainSearchQuery'
      - $ref: '#/components/parameters/excludeQuery'
      - $ref: '#/components/parameters/maxLength'
      - $ref: '#/components/parameters/minLength'
      - $ref: '#/components/parameters/hasHyphen'
      - $ref: '#/components/parameters/hasNumber'
      - $ref: '#/components/parameters/activeOnly'
      - $ref: '#/components/parameters/deletedOnly'
      - $ref: '#/components/parameters/anchorLeft'
      - $ref: '#/components/parameters/anchorRight'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      responses:
        '200':
          $ref: '#/components/responses/DomainSearchSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/domain-search/
  /v1/domain-history/:
    summary: Domain History
    description: '### Intent

      Track the complete evolution of a domain''s history across its infrastructure, content, and ownership. Identify significant events such as infrastructure weaponization, service changes, or registration transfers.


      ### Capabilities

      -   **Retrieve Complete History**: Fetch the available historical record for a domain.

      -   **Customize Data Views**: Isolate specific events by including or excluding data fields (e.g., `A`, `NS`, `MX`, `SSL`). This focuses on critical signals while reducing noise.

      -   **Contextualize the Current Lifecycle**: Use `Active` events to differentiate changes occurring within a domain''s current registration period from its prior history.


      ### Use Cases

      -   **Detect Infrastructure Weaponization**: Pinpoint when a domain''s infrastructure was weaponized by isolating changes in IP addresses, name servers, or mail servers. Use the `Active` date to distinguish modifications made during the current registration from previous ones, helping to identify the exact day it was brought online for a malicious campaign.

      -   **Monitor Service Activation**: Determine when a domain likely launched a functional service by identifying the first issuance of an SSL certificate.

      -   **Identify Ownership Changes**: Reveal a transfer of domain ownership by comparing `registrar` and `registrant` data across distinct registration lifecycles.

      '
    get:
      operationId: getDomainHistory
      summary: Domain History
      description: Retrieve the complete historical record of changes to a domain's infrastructure, registration, and content. Filter results by specific field types to focus on relevant events.
      tags:
      - Lookups
      parameters:
      - $ref: '#/components/parameters/domainQueryRequired'
      - $ref: '#/components/parameters/appPartner'
      - $ref: '#/components/parameters/appName'
      - $ref: '#/components/parameters/appVersion'
      - $ref: '#/components/parameters/responseFormat'
      - $ref: '#/components/parameters/resultsPageSize'
      - $ref: '#/components/parameters/resultsOffset'
      - $ref: '#/components/parameters/parsedDomainRdapFlag'
      - $ref: '#/components/parameters/parsedWhoisFlag'
      - $ref: '#/components/parameters/includeFields'
      - $ref: '#/components/parameters/excludeFields'
      responses:
        '200':
          $ref: '#/components/responses/DomainHistorySuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      externalDocs:
        url: https://docs.domaintools.com/api/lookups/domain-history/
components:
  parameters:
    appName:
      name: app_name
      in: query
      description: 'Appliance, module, or playbook, or any combination of these.

        '
      schema:
        $ref: '#/components/schemas/IdentifierString'
    includeTotalCount:
      in: query
      name: include_total_count
      description: Returns the total number of results for a query. This should typically be used only for the first page of a large result set.
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    hasHyphen:
      in: query
      name: has_hyphen
      description: Return results with hyphens in the domain name.
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    excludeTerms:
      in: query
      name: exclude
      description: 'Domain names with these words will be excluded from the result set. For exclusions of multiple terms, use the `|` character as a separator.

        '
      schema:
        $ref: '#/components/schemas/BasicString'
    hasNumber:
      in: query
      name: has_number
      description: Return results with numbers in the domain name.
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    excludeFields:
      in: query
      name: exclude_fields
      description: 'Comma-separated list of fields to exclude from the response. Change events matching these fields will be omitted from the results.


        Filtering occurs at the event level—it determines which change events are excluded, not which properties are removed from the `before` and `after` objects. Defaults to returning all change types.


        **Field Name Mapping:**


        Filter parameter names (used in this parameter) may differ from the response `field` values. For example:

        - Filter: `ssl_hash` → Response field: `ssl_info`

        - Filter: `mailserver_host` → Response field: `mx`

        - Filter: `nameserver_host` → Response field: `name_server`


        **Valid values include:**


        - **Individual fields:** Specific properties like `ip`, `mailserver_host`, `nameserver_host`, `ssl_hash`, `create_date`, `expiration_date`, `registrar`, etc.

        - **Aggregated categories:** Groups of related fields like `all_ip` (excludes all IP-related changes), `all_ssl` (excludes all SSL-related changes), `all_contact_information`, etc.


        **Example:** `exclude_fields=all_ip,all_ssl` removes change events where the `field` property is `ip`, `ssl_info`, or related fields.


        **Tip:** To discover all available field names, you can intentionally provide an invalid field name in your request. The API will return an error message listing all valid field names.

        '
      schema:
        $ref: '#/components/schemas/DomainHistoryFieldsList'
    reverseWhoisScope:
      in: query
      name: scope
      description: 'Sets the scope of the report to include only current WHOIS records, or to include both current and historic records.

        '
      schema:
        type: string
        enum:
        - current
        - historic
        default: current
    deletedOnly:
      in: query
      name: deleted_only
      description: Return only domains previously registered but not currently registered.
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    domainQueryRequired:
      in: query
      name: domain
      description: Required. A valid domain name.
      required: true
      schema:
        $ref: '#/components/schemas/ApexDomain'
    maxLength:
      in: query
      name: max_length
      description: Limit the maximum domain character count.
      schema:
        type: integer
        maximum: 63
    reverseIpWhoisQuery:
      name: query
      in: query
      description: 'A space-separated list of free text query terms with support for `+` (must include), `-` (must not include), and `*` (prefix) modifiers.

        '
      schema:
        type: string
    responseFormat:
      name: format
      in: query
      description: 'Specifies the desired response format.

        '
      schema:
        $ref: '#/components/schemas/ResponseFormat'
    ipAddressPath:
      in: path
      name: ip
      description: The IP Address to query.
      required: true
      schema:
        $ref: '#/components/schemas/IPv4Address'
    ipVersion:
      in: query
      name: ip_version
      description: 'Limits the query search results to a particular IP version. If omitted, the default is IPv4.

        '
      schema:
        type: integer
        enum:
        - 4
        - 6
        default: 4
    nameServerPath:
      in: path
      name: nameServer
      description: The name server hostname to query.
      required: true
      schema:
        $ref: '#/components/schemas/Hostname'
    domainPath:
      in: path
      name: domain
      description: A valid domain name.
      required: true
      schema:
        $ref: '#/components/schemas/ApexDomain'
    activeOnly:
      in: query
      name: active_only
      description: Return only domains currently registered.
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    minLength:
      in: query
      name: min_length
      description: Limit the minimum domain character count.
      schema:
        type: integer
        minimum: 1
    domainOrIpPath:
      in: path
      name: query
      description: A valid domain name or IP address.
      required: true
      schema:
        type: string
    ipQuery:
      in: query
      name: ip
      description: IPv4 address the registered domain was last known to point to during an active DNS check.
      schema:
        $ref: '#/components/schemas/IPv4Address'
    excludeQuery:
      in: query
      name: exclude_query
      description: 'Terms to exclude from matching. Each term must be at least three characters long. Use spaces to separate multiple terms.

        '
      schema:
        $ref: '#/components/schemas/BasicString'
    domainSearchQuery:
      in: query
      name: query
      description: 'Terms to search for. Each term must be at least three characters long. Use spaces to separate multiple terms.

        '
      required: true
      schema:
        $ref: '#/components/schemas/BasicString'
    appPartner:
      name: app_partner
      in: query
      description: 'Your product name.

        '
      schema:
        $ref: '#/components/schemas/IdentifierString'
    resultsOffset:
      name: offset
      in: query
      description: Specifies the starting point for the result set, used for paginating when the number of results exceeds the 'limit'. An offset of 0 starts from the first result.
      schema:
        type: integer
        minimum: 0
    includeFields:
      in: query
      name: include_fields
      description: 'Comma-separated list of fields to include in the response. Only change events matching these fields will appear in the results.


        Filtering occurs at the event level—it determines which change events are returned, not which properties appear in the `before` and `after` objects. Each returned change event includes the complete `before` and `after` state for that field.


        **Field Name Mapping:**


        Filter parameter names (used in this parameter) may differ from the response `field` values. For example:

        - Filter: `ssl_hash` → Response field: `ssl_info`

        - Filter: `mailserver_host` → Response field: `mx`

        - Filter: `nameserver_host` → Response field: `name_server`


        This design allows precise filtering using property-level names while maintaining complete context in change events.


        **Valid values include:**


        - **Individual fields:** Specific properties like `ip`, `mailserver_host`, `nameserver_host`, `ssl_hash`, `create_date`, `expiration_date`, `registrar`, etc.

        - **Aggregated categories:** Groups of related fields like `all_ip` (includes all IP-related changes), `all_ssl` (includes all SSL-related changes), `all_contact_information`, etc.


        **Example:** `include_fields=ip,ssl_hash` returns change events where the `field` property is `ip` or `ssl_info`.


        **Tip:** To discover all available field names, you can intentionally provide an invalid field name in your request. The API will return an error message listing all valid field names.

        '
      schema:
        $ref: '#/components/schemas/DomainHistoryFieldsList'
    parsedDomainRdapFlag:
      name: parsed_domain_rdap
      in: query
      description: 'Flag.

        If set to `true`, includes the full parsed Domain RDAP record in the response.

        '
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    resultsPageSize:
      name: page_size
      in: query
      description: 'Adjusts the number of results returned per page.

        The default is 500. Use this parameter to request a smaller page size.

        '
      schema:
        type: integer
        minimum: 1
        maximum: 500
    page:
      in: query
      name: page
      description: Sets the page of results to retrieve from the server (used in services that support pagination).
      schema:
        type: integer
        minimum: 1
    countryCode:
      in: query
      name: country
      description: 'Limits results to IP addresses allocated to an entity with a particular country.

        Must be a valid ISO 3166-1 two-character country code.

        '
      schema:
        type: string
        pattern: ^[A-Z]{2}$
    whoisHistorySort:
      in: query
      name: sort
      description: Sort the records returned in either ascending or descending order by date.
      schema:
        type: string
        enum:
        - date_asc
        - date_desc
    reverseWhoisTerms:
      in: query
      name: terms
      description: 'One or more terms, where the pipe character `|` may be used as a logical AND to require that all strings be present in order to match.

        '
      required: true
      schema:
        $ref: '#/components/schemas/BasicString'
    appVersion:
      name: app_version
      in: query
      description: 'Version of your integration/connector.

        '
      schema:
        $ref: '#/components/schemas/IdentifierString'
    anchorRight:
      in: query
      name: anchor_right
      description: Return only domains that end with the query term.
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    parsedWhoisFlag:
      name: parsed_whois
      in: query
      description: 'Flag.

        If set to ''true'', includes the full parsed WHOIS record in the response.

        '
      schema:
        $ref: '#/components/schemas/BooleanOptInFlag'
    whoisHistoryMode:
      in: query
      name: mode
      description: '- `list` (default): Returns the historical records.

        - `count`: Returns only the total count of historical records.

        - `check_existence`: Returns a boolean indicating if history exists.

        '
      schema:
        type: string
        enum:
        - list
        - count
        - check_existence
        default: list
    resultsLimit:
      name: limit
      in: query
      description: 'Specify the maximum number of rec

# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/domaintools/refs/heads/main/openapi/domaintools-lookups-api-openapi.yml