Lookups

Domain History

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.

get/v1/domain-history/

Request

Query parameters

domainstring required

A base (apex) domain like example.com, excluding subdomains.

Required. A valid domain name.

app_partnerstring

A short identifier, code, or handle.

Your product name.

app_namestring

A short identifier, code, or handle.

Appliance, module, or playbook, or any combination of these.

app_versionstring

A short identifier, code, or handle.

Version of your integration/connector.

format'html' | 'json' | 'xml'

The desired response format.

Specifies the desired response format.

page_sizeinteger

Number of results returned per page. The default is 100. Use the recommended range of 100–500; the maximum supported value is not specified.

offsetinteger

Use 0 to start retrieving results. For the next page, advance the value by the previous page's page_size, or follow the response's next URL unchanged when present.

parsed_domain_rdapboolean

An optional boolean flag that enables a specific feature or response extension when set to true. If false or omitted, the feature is ignored.

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

parsed_whoisboolean

An optional boolean flag that enables a specific feature or response extension when set to true. If false or omitted, the feature is ignored.

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

include_fieldsstring

Comma-separated list of field names to include or exclude from Domain History responses.

Field filtering works at the event level: it determines which change events appear in the response based on the value of the field property. Each change event's before and after objects always contain the complete state for that field—filtering doesn't remove properties from these objects.

Two types of field names are supported:

  1. Individual fields: Top-level properties from the response structure (e.g., ip, mx, name_server, ssl_info, create_date)
  2. Aggregated categories: Groups of related fields that simplify filtering multiple event types at once

Valid field names:

  • Individual fields: ip, asn, ip_country_code, isp_name, mailserver_host, mailserver_ip, nameserver_host, nameserver_ip, ssl_hash, ssl_common_name, ssl_alt_names, ssl_not_before, ssl_not_after, create_date, expiration_date, registrant, registrar, registrar_status, active, redirect, redirect_domain, screenshot_collected_timestamp, server_type, website_response, website_title, adsense, baidu_analytics, google_analytics, ga4, facebook, google_tag_manager, hotjar, matomo, statcounter_project, statcounter_security, yandex_metrica, contact_name, contact_phone, contact_street, contact_city, contact_state, contact_fax, contact_organization, admin_contact_email, billing_contact_email, email_dns_soa, technical_contact_email, registrant_contact_email, additional_whois_email

  • Aggregated categories: all_contact_information, all_emails, all_ip, all_mailserver, all_nameserver, all_ssl, all_web_content, all_web_trackers, all_other

Example:ip,nameserver_host,mailserver_host,ssl_hash

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.

exclude_fieldsstring

Comma-separated list of field names to include or exclude from Domain History responses.

Field filtering works at the event level: it determines which change events appear in the response based on the value of the field property. Each change event's before and after objects always contain the complete state for that field—filtering doesn't remove properties from these objects.

Two types of field names are supported:

  1. Individual fields: Top-level properties from the response structure (e.g., ip, mx, name_server, ssl_info, create_date)
  2. Aggregated categories: Groups of related fields that simplify filtering multiple event types at once

Valid field names:

  • Individual fields: ip, asn, ip_country_code, isp_name, mailserver_host, mailserver_ip, nameserver_host, nameserver_ip, ssl_hash, ssl_common_name, ssl_alt_names, ssl_not_before, ssl_not_after, create_date, expiration_date, registrant, registrar, registrar_status, active, redirect, redirect_domain, screenshot_collected_timestamp, server_type, website_response, website_title, adsense, baidu_analytics, google_analytics, ga4, facebook, google_tag_manager, hotjar, matomo, statcounter_project, statcounter_security, yandex_metrica, contact_name, contact_phone, contact_street, contact_city, contact_state, contact_fax, contact_organization, admin_contact_email, billing_contact_email, email_dns_soa, technical_contact_email, registrant_contact_email, additional_whois_email

  • Aggregated categories: all_contact_information, all_emails, all_ip, all_mailserver, all_nameserver, all_ssl, all_web_content, all_web_trackers, all_other

Example:ip,nameserver_host,mailserver_host,ssl_hash

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.

Response

OK

Example response

{
  "response": {
    "domain": "domaintools.com",
    "count": 2479,
    "registration_source": "parsed_whois",
    "changes": [
      {
        "timestamp": "2025-10-14T09:44:26Z",
        "field": "mx"
      }
    ]
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.