{
  "openapi": "3.0.1",
  "info": {
    "title": "Bulk Domain WHOIS/RDAP, DNS & Email Security Checker",
    "description": "Bulk domain lookup via official RDAP (ICANN's WHOIS successor) with WHOIS fallback: availability, registrar, creation and expiry dates, status, nameservers, DNS records plus SPF, DMARC, MTA-STS and mail-provider checks. Change monitor.",
    "version": "1.0",
    "x-build-id": "ZYaMSgA5IiwQ31AxG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sysco32~domain-rdap-dns-lookup/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sysco32-domain-rdap-dns-lookup",
        "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/sysco32~domain-rdap-dns-lookup/runs": {
      "post": {
        "operationId": "runs-sync-sysco32-domain-rdap-dns-lookup",
        "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/sysco32~domain-rdap-dns-lookup/run-sync": {
      "post": {
        "operationId": "run-sync-sysco32-domain-rdap-dns-lookup",
        "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",
            "type": "array",
            "description": "One domain per line (you can also paste comma- or space-separated lists). URLs and <code>www.</code> are cleaned up automatically, e.g. <code>https://www.example.com/page</code> becomes <code>example.com</code>. Internationalised names are supported.",
            "default": [
              "github.com",
              "apify.com",
              "bbc.co.uk",
              "spiegel.de",
              "thisdomainisprobablyfree-1729.com"
            ],
            "items": {
              "type": "string"
            }
          },
          "lookupRegistration": {
            "title": "Registration data (RDAP / WHOIS)",
            "type": "boolean",
            "description": "Registrar, creation, update and expiry dates, status codes, nameservers, DNSSEC and availability from the official registry RDAP service (ICANN's WHOIS replacement).",
            "default": true
          },
          "whoisFallback": {
            "title": "WHOIS fallback for TLDs without RDAP",
            "type": "boolean",
            "description": "Some ccTLDs (for example .de, .io, .eu, .ch, .it, .co) have no RDAP service yet. Query the registry's public port-43 WHOIS instead (slower: one query per 1.5 s per registry).",
            "default": true
          },
          "followRegistrarRdap": {
            "title": "Also query the registrar's RDAP",
            "type": "boolean",
            "description": "For .com/.net and other thin registries, follow the link to the registrar's RDAP server to fill in registrant organisation and country when published (usually redacted for privacy). One extra request per domain.",
            "default": false
          },
          "dnsRecordTypes": {
            "title": "DNS record types",
            "type": "array",
            "description": "Resolved over DNS-over-HTTPS (Cloudflare 1.1.1.1, with Google Public DNS as fallback). Leave empty to skip DNS.",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "AAAA",
                "MX",
                "NS",
                "TXT",
                "CNAME",
                "CAA",
                "SOA"
              ]
            },
            "default": [
              "A",
              "AAAA",
              "MX",
              "NS",
              "TXT"
            ]
          },
          "emailSecurity": {
            "title": "Email security audit (SPF, DMARC, DKIM, MTA-STS, BIMI)",
            "type": "boolean",
            "description": "Detect the mail provider (Google Workspace, Microsoft 365, Proofpoint…) from MX records, parse SPF and DMARC, check common DKIM selectors, MTA-STS, TLS-RPT and BIMI, and return a 0–100 score with a list of issues. Charged as a separate add-on event per domain.",
            "default": true
          },
          "dkimSelectors": {
            "title": "DKIM selectors to probe",
            "type": "array",
            "description": "DKIM keys can't be listed, so we probe common selectors. Add your own (e.g. <code>mailchimp</code>, <code>k2</code>, <code>s2048</code>).",
            "default": [
              "google",
              "selector1",
              "selector2",
              "k1",
              "default",
              "s1",
              "s2",
              "mail",
              "dkim"
            ],
            "items": {
              "type": "string"
            }
          },
          "registrableDomainOnly": {
            "title": "Reduce subdomains to the registrable domain",
            "type": "boolean",
            "description": "<code>shop.example.co.uk</code> is looked up as <code>example.co.uk</code> for registration data. DNS and email checks still use the host you entered.",
            "default": true
          },
          "onlyAvailable": {
            "title": "Only unregistered (available) domains",
            "type": "boolean",
            "description": "Output only domains with no registration in the registry, which is ideal for checking name ideas in bulk.",
            "default": false
          },
          "expiringWithinDays": {
            "title": "Only domains expiring within N days",
            "minimum": 0,
            "type": "integer",
            "description": "0 = off. For example, 30 outputs only domains whose registration expires in the next 30 days.",
            "default": 0
          },
          "onlyChanged": {
            "title": "Only changed domains (monitoring mode)",
            "type": "boolean",
            "description": "Remember each domain's registrar, expiry, status, nameservers, MX, A records, SPF and DMARC policy, and output only domains where something changed since the last run (with a <code>changes</code> list and the <code>previous</code> values). The first run outputs everything.",
            "default": false
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Named key-value store for the change monitor. Use a different name for each independent watch list.",
            "default": "domain-rdap-dns-lookup-state"
          },
          "maxConcurrency": {
            "title": "Domains in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Registry servers are additionally rate-limited per host (and WHOIS per registry).",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}