---
title: "Domain History"
method: GET
path: "/v1/domain-history/"
tags: ["Lookups"]
---

# Domain History

`GET /v1/domain-history/`

## Request

- Base URL: `https://api.domaintools.com`
- URL: `https://api.domaintools.com/v1/domain-history/`
- Auth: one of:
  - API key in header `X-Api-Key`
  - HTTP basic
  - API key in query parameter `signature`
- TypeScript: <https://skmtc.dev/domaintools/apis/domaintools-lookups-and-monitors-api/docs/v1/domain-history/get.ts> (a function with typed inputs; its response is checked against the schema)

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.

## Query parameters

- `domain` string, required: A base (apex) domain like example.com, excluding subdomains.
- `app_partner` string: A short identifier, code, or handle.
- `app_name` string: A short identifier, code, or handle.
- `app_version` string: A short identifier, code, or handle.
- `format` 'html' | 'json' | 'xml': The desired response format.
- `page_size` integer
- `offset` integer
- `parsed_domain_rdap` boolean: An optional boolean flag that enables a specific feature or response extension when set to `true`. If `false` or omitted, the feature is ignored.
- `parsed_whois` boolean: An optional boolean flag that enables a specific feature or response extension when set to `true`. If `false` or omitted, the feature is ignored.
- `include_fields` string: 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
- `exclude_fields` string: 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

## Response `200`

OK

- DomainHistory: Response for the Domain History endpoint.
  - `response` object
    - `domain` string, required: The domain name being queried.
    - `count` integer, required: Total number of historical changes available for this domain.
    - `registration_source` 'parsed_whois' | 'parsed_domain_rdap', required: The source of registration data used for the history.
    - `next` string, uri: URL for the next page, when one is available. Follow this URL without changing its query parameters and use the same authentication method as the original request.
    - `changes` object[], required: Array of historical changes to the domain.
      - `timestamp` string, date-time, required: ISO 8601 timestamp when the change was detected.
      - `field` string, required: The field that changed. This corresponds to top-level properties in the EnrichResult schema. Common values include: - Infrastructure: ip, mx, name_server, ssl_info - Registration: create_date, expiration_date, registrar, registrant_name, registrant_org, registrar_status, active - Web content: website_title, website_response, server_type, redirect, redirect_domain - Trackers: adsense, google_analytics, ga4, gtm_codes, fb_codes, hotjar_codes, baidu_codes, yandex_codes, matomo_codes, statcounter_project_codes, statcounter_security_codes - Contacts: admin_contact, billing_contact, registrant_contact, technical_contact - Other: domain_risk, tags, first_seen, tld Note: When using include_fields or exclude_fields parameters, some filter names map to different response field values (e.g., ssl_hash → ssl_info, mailserver_host → mx, nameserver_host → name_server). See parameter descriptions for complete field name mapping.
      - `before` EnrichResult: A comprehensive domain profile result from Iris Enrich API.
        - `domain` string
        - `whois_url` string
        - `adsense` EnrichTracker: A tracker identifier.
          - `value` string
        - `alexa` integer
        - `popularity_rank` number
        - `active` boolean
        - `google_analytics` EnrichTracker: A tracker identifier.
          - `value` string
        - `ga4` EnrichTracker[]
          - `value` string
        - `gtm_codes` EnrichTracker[]
          - `value` string
        - `fb_codes` EnrichTracker[]
          - `value` string
        - `hotjar_codes` EnrichTracker[]
          - `value` string
        - `baidu_codes` EnrichTracker[]
          - `value` string
        - `yandex_codes` EnrichTracker[]
          - `value` string
        - `matomo_codes` EnrichTracker[]
          - `value` string
        - `statcounter_project_codes` EnrichTracker[]
          - `value` string
        - `statcounter_security_codes` EnrichTracker[]
          - `value` string
        - `admin_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `billing_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `registrant_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `technical_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `create_date` EnrichValue
          - `value` union
            - string
            - integer
        - `expiration_date` EnrichValue
          - `value` union
            - string
            - integer
        - `email_domain` EnrichValue[]
          - `value` union
            - string
            - integer
        - `soa_email` EnrichValue[]
          - `value` union
            - string
            - integer
        - `ssl_email` EnrichValue[]
          - `value` union
            - string
            - integer
        - `additional_whois_email` EnrichValue[]
          - `value` union
            - string
            - integer
        - `ip` object[]
          - `address` EnrichValue
            - `value` union
              - …
          - `asn` EnrichValue[]
            - `value` union
              - …
          - `country_code` EnrichValue
            - `value` union
              - …
          - `isp` EnrichValue
            - `value` union
              - …
        - `mx` object[]
          - `host` EnrichValue
            - `value` union
              - …
          - `domain` EnrichValue
            - `value` union
              - …
          - `ip` EnrichValue[]
            - `value` union
              - …
          - `priority` number
        - `name_server` object[]
          - `host` EnrichValue
            - `value` union
              - …
          - `domain` EnrichValue
            - `value` union
              - …
          - `ip` EnrichValue[]
            - `value` union
              - …
        - `domain_risk` object
          - `risk_score` integer
          - `components` object[]: A list of risk components and their individual scores that contribute to the overall domain risk.
        - `redirect` EnrichValue
          - `value` union
            - string
            - integer
        - `redirect_domain` EnrichValue
          - `value` union
            - string
            - integer
        - `registrant_name` EnrichValue
          - `value` union
            - string
            - integer
        - `registrant_org` EnrichValue
          - `value` union
            - string
            - integer
        - `registrar` EnrichValue
          - `value` union
            - string
            - integer
        - `registrar_status` string[]
        - `spf_info` string
        - `ssl_info` object[]
          - `hash` EnrichValue
            - `value` union
              - …
          - `subject` EnrichValue
            - `value` union
              - …
          - `organization` EnrichValue
            - `value` union
              - …
          - `email` string[]
          - `alt_names` EnrichValue[]
            - `value` union
              - …
          - `sources` object
            - `active` integer
            - `passive` integer
          - `common_name` EnrichValue
            - `value` union
              - …
          - `issuer_common_name` EnrichValue
            - `value` union
              - …
          - `not_after` EnrichValue
            - `value` union
              - …
          - `not_before` EnrichValue
            - `value` union
              - …
          - `duration` EnrichValue
            - `value` union
              - …
        - `tld` string
        - `website_response` number
        - `data_updated_timestamp` string, date-time
        - `website_title` EnrichValue
          - `value` union
            - string
            - integer
        - `server_type` EnrichValue
          - `value` union
            - string
            - integer
        - `first_seen` EnrichValue
          - `value` union
            - string
            - integer
        - `tags` object[]
          - `label` string
          - `scope` string
          - `tagged_at` string
        - `parsed_whois` object: Parsed data from the domain's WHOIS record. Present only when the request includes `parsed_whois=true`.
        - `parsed_domain_rdap` object: Parsed data from the domain's RDAP record. Present only when the request includes `parsed_domain_rdap=true`.
      - `after` EnrichResult: A comprehensive domain profile result from Iris Enrich API.
        - `domain` string
        - `whois_url` string
        - `adsense` EnrichTracker: A tracker identifier.
          - `value` string
        - `alexa` integer
        - `popularity_rank` number
        - `active` boolean
        - `google_analytics` EnrichTracker: A tracker identifier.
          - `value` string
        - `ga4` EnrichTracker[]
          - `value` string
        - `gtm_codes` EnrichTracker[]
          - `value` string
        - `fb_codes` EnrichTracker[]
          - `value` string
        - `hotjar_codes` EnrichTracker[]
          - `value` string
        - `baidu_codes` EnrichTracker[]
          - `value` string
        - `yandex_codes` EnrichTracker[]
          - `value` string
        - `matomo_codes` EnrichTracker[]
          - `value` string
        - `statcounter_project_codes` EnrichTracker[]
          - `value` string
        - `statcounter_security_codes` EnrichTracker[]
          - `value` string
        - `admin_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `billing_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `registrant_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `technical_contact` EnrichContact
          - `name` EnrichValue
            - `value` union
              - …
          - `org` EnrichValue
            - `value` union
              - …
          - `street` EnrichValue
            - `value` union
              - …
          - `city` EnrichValue
            - `value` union
              - …
          - `state` EnrichValue
            - `value` union
              - …
          - `postal` EnrichValue
            - `value` union
              - …
          - `country` EnrichValue
            - `value` union
              - …
          - `phone` EnrichValue
            - `value` union
              - …
          - `fax` EnrichValue
            - `value` union
              - …
          - `email` EnrichValue[]
            - `value` union
              - …
        - `create_date` EnrichValue
          - `value` union
            - string
            - integer
        - `expiration_date` EnrichValue
          - `value` union
            - string
            - integer
        - `email_domain` EnrichValue[]
          - `value` union
            - string
            - integer
        - `soa_email` EnrichValue[]
          - `value` union
            - string
            - integer
        - `ssl_email` EnrichValue[]
          - `value` union
            - string
            - integer
        - `additional_whois_email` EnrichValue[]
          - `value` union
            - string
            - integer
        - `ip` object[]
          - `address` EnrichValue
            - `value` union
              - …
          - `asn` EnrichValue[]
            - `value` union
              - …
          - `country_code` EnrichValue
            - `value` union
              - …
          - `isp` EnrichValue
            - `value` union
              - …
        - `mx` object[]
          - `host` EnrichValue
            - `value` union
              - …
          - `domain` EnrichValue
            - `value` union
              - …
          - `ip` EnrichValue[]
            - `value` union
              - …
          - `priority` number
        - `name_server` object[]
          - `host` EnrichValue
            - `value` union
              - …
          - `domain` EnrichValue
            - `value` union
              - …
          - `ip` EnrichValue[]
            - `value` union
              - …
        - `domain_risk` object
          - `risk_score` integer
          - `components` object[]: A list of risk components and their individual scores that contribute to the overall domain risk.
        - `redirect` EnrichValue
          - `value` union
            - string
            - integer
        - `redirect_domain` EnrichValue
          - `value` union
            - string
            - integer
        - `registrant_name` EnrichValue
          - `value` union
            - string
            - integer
        - `registrant_org` EnrichValue
          - `value` union
            - string
            - integer
        - `registrar` EnrichValue
          - `value` union
            - string
            - integer
        - `registrar_status` string[]
        - `spf_info` string
        - `ssl_info` object[]
          - `hash` EnrichValue
            - `value` union
              - …
          - `subject` EnrichValue
            - `value` union
              - …
          - `organization` EnrichValue
            - `value` union
              - …
          - `email` string[]
          - `alt_names` EnrichValue[]
            - `value` union
              - …
          - `sources` object
            - `active` integer
            - `passive` integer
          - `common_name` EnrichValue
            - `value` union
              - …
          - `issuer_common_name` EnrichValue
            - `value` union
              - …
          - `not_after` EnrichValue
            - `value` union
              - …
          - `not_before` EnrichValue
            - `value` union
              - …
          - `duration` EnrichValue
            - `value` union
              - …
        - `tld` string
        - `website_response` number
        - `data_updated_timestamp` string, date-time
        - `website_title` EnrichValue
          - `value` union
            - string
            - integer
        - `server_type` EnrichValue
          - `value` union
            - string
            - integer
        - `first_seen` EnrichValue
          - `value` union
            - string
            - integer
        - `tags` object[]
          - `label` string
          - `scope` string
          - `tagged_at` string
        - `parsed_whois` object: Parsed data from the domain's WHOIS record. Present only when the request includes `parsed_whois=true`.
        - `parsed_domain_rdap` object: Parsed data from the domain's RDAP record. Present only when the request includes `parsed_domain_rdap=true`.

## Other responses

- `400`: 400: Bad Request. The request was invalid. The response will contain details about the error.
- `401`: 401: Unauthorized. API credentials are required and were not provided, or the provided credentials are not valid.
- `403`: 403: Forbidden. The API credentials provided do not have access to the requested resource or endpoint.
- `404`: 404: Not Found. The requested resource does not exist.
- `500`: 500: Internal Server Error. An unexpected error occurred on the server. If the problem persists, contact DomainTools support.
- `503`: 503: Service Unavailable. The service is temporarily unavailable.

---

[API](https://skmtc.dev/domaintools/apis/domaintools-lookups-and-monitors-api.md) - [All operations](https://skmtc.dev/domaintools/apis/domaintools-lookups-and-monitors-api/llms.txt) - [OpenAPI document](https://skmtc.dev/domaintools/apis/domaintools-lookups-and-monitors-api/revisions/832f423a9729?raw)
