{
  "openapi": "3.0.1",
  "info": {
    "title": "Domain Intelligence: WHOIS, DNS, SSL & Availability",
    "description": "Domain intelligence scraper: one row per domain with WHOIS/RDAP registrar, creation and expiry dates, domain age, DNSSEC, DNS records with MX/SPF email flags, live SSL expiry and availability. No login or API key. Export CSV, Excel, JSON. 10 domains in 38 seconds.",
    "version": "0.1",
    "x-build-id": "rpHmzdGE0ondOsc0s"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~domain-intelligence-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-domain-intelligence-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/recordsdata~domain-intelligence-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-domain-intelligence-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/recordsdata~domain-intelligence-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-domain-intelligence-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "domains"
        ],
        "properties": {
          "domains": {
            "title": "Domains",
            "minItems": 1,
            "type": "array",
            "description": "List of domain names to analyze, one per entry (for example apify.com). Full URLs, www prefixes and paths are cleaned automatically; duplicates are removed. Each domain returns one row with WHOIS, DNS, email security, SSL and HTTP data.",
            "default": [
              "apify.com",
              "example.org"
            ],
            "items": {
              "type": "string"
            }
          },
          "includeWhois": {
            "title": "WHOIS / registration data",
            "type": "boolean",
            "description": "Registrar (with IANA ID and abuse contact), creation, update and expiry dates, age, days to expiry, statuses, name servers and DNSSEC via RDAP (modern WHOIS). Unregistered domains come back flagged available.",
            "default": true
          },
          "includeDns": {
            "title": "DNS records",
            "type": "boolean",
            "description": "Resolve the DNS record types below and derive the DNS provider and mail provider (Google Workspace, Microsoft 365, Zoho and others) from the name servers and MX hosts.",
            "default": true
          },
          "dnsRecordTypes": {
            "title": "DNS record types",
            "type": "array",
            "description": "Which record types to resolve.",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "AAAA",
                "MX",
                "NS",
                "TXT",
                "CNAME",
                "SOA",
                "CAA"
              ],
              "enumTitles": [
                "A",
                "AAAA",
                "MX",
                "NS",
                "TXT",
                "CNAME",
                "SOA",
                "CAA"
              ]
            },
            "default": [
              "A",
              "MX",
              "NS",
              "TXT"
            ]
          },
          "includeReverseDns": {
            "title": "Reverse DNS (PTR)",
            "type": "boolean",
            "description": "Look up the reverse DNS (PTR) hostname of each A and AAAA address of the domain (up to 4 IPv4 and 2 IPv6 addresses) and return them in reverseDns. Many hosts, and most CDN addresses, have no PTR record: the column is then left out of the row. Adds a few quick DNS lookups per domain.",
            "default": false
          },
          "includeEmailSecurity": {
            "title": "Email security (SPF, DMARC, DKIM)",
            "type": "boolean",
            "description": "SPF record and policy, DMARC policy, percentage and reporting, DKIM keys on common selectors, a 0 to 100 score, a letter grade A to F and the list of issues found. Domains with no MX record are not graded.",
            "default": true
          },
          "dkimSelectors": {
            "title": "Extra DKIM selectors (optional)",
            "type": "array",
            "description": "DKIM keys live under a selector name that only the sender knows. The actor already tries 14 common ones (google, default, selector1, selector2, k1, s1, mail and more); add your own here, for example mta or smtpapi.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeSsl": {
            "title": "SSL certificate",
            "type": "boolean",
            "description": "Issuer, subject, validity dates, days remaining, expiring-soon flag, TLS protocol and alternative names for the live certificate on port 443.",
            "default": true
          },
          "includeHttp": {
            "title": "HTTP check",
            "type": "boolean",
            "description": "One request to https://domain, following up to 5 redirects: status code, final URL, redirect count, page title, server and X-Powered-By headers, HSTS and which security headers are set, response time.",
            "default": true
          },
          "includeHttpHeaders": {
            "title": "Full HTTP response headers",
            "type": "boolean",
            "description": "Add every response header of the home page as an object in httpHeaders (server, cache, CDN, security and policy headers). No extra request: it comes from the same response as the HTTP check, so it needs the HTTP check to be on. Set-Cookie headers are never included; each value is cut at 1,000 characters and the object at 10,000 characters.",
            "default": true
          },
          "includeWayback": {
            "title": "Wayback Machine history",
            "type": "boolean",
            "description": "Adds the first and last time the Internet Archive captured the home page, the total number of captures and links to the oldest and newest capture. One extra request to archive.org per domain. Domains the archive has never captured get a capture count of 0; domains it excludes at the owner's request get no wayback columns.",
            "default": false
          },
          "includeSubdomains": {
            "title": "Subdomains (certificate transparency)",
            "type": "boolean",
            "description": "Adds the subdomain count and the subdomain list to the domain row, found in public certificate transparency logs (crt.sh, with Cert Spotter as fallback). Adds 10 to 60 seconds per domain.",
            "default": false
          },
          "includeSubdomainRows": {
            "title": "Subdomain rows",
            "type": "boolean",
            "description": "Also output one row per subdomain with first seen, last certificate expiry, issuer and wildcard flag.",
            "default": false
          },
          "maxSubdomainsPerDomain": {
            "title": "Max subdomains per domain",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Caps the subdomain list and the subdomain rows for each domain. The subdomain count always shows the true total.",
            "default": 200
          },
          "includeDnsDetailRows": {
            "title": "DNS detail rows",
            "type": "boolean",
            "description": "Also output one row per DNS record with TTL (for audits).",
            "default": false
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of rows to return and be charged for. Free users are limited to 10 rows (preview); paid users can set up to 1,000,000.",
            "default": 100
          },
          "onlyChanged": {
            "title": "Only new or changed domains",
            "type": "boolean",
            "description": "Return a domain only when it is new or something changed since the last run (registrar, expiry, status, name servers, MX, SPF, DMARC, DKIM, certificate, HTTP status or redirect target). Unchanged domains are skipped and not charged. Each row carries changeType new or changed. A and AAAA addresses and subdomains are not compared because CDNs rotate addresses and certificate logs are incomplete.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "Name for the memory of previous results. Leave empty to derive it from your module settings. Use the same name to share memory between runs, or a different name to keep separate monitors. Editing the domain list keeps the memory of the others.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget previous results",
            "type": "boolean",
            "description": "Clear the memory for this monitor before the run, so every domain counts as new again.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}