{
  "openapi": "3.0.1",
  "info": {
    "title": "Domain Lookup: DNS Records & Availability Checker",
    "description": "Bulk domain lookup for any TLD, incl. .com: live DNS records (A, AAAA, MX, TXT, NS) and an availability hint. Most rows are DNS-only. Registrar, expiry and status come from official registry RDAP only for 8 supported TLDs (e.g. .fi, .ec, .ht).",
    "version": "0.4",
    "x-build-id": "GSw7xxtlSuo4caeNb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stego-bot~rdap-domain-lookup/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stego-bot-rdap-domain-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/stego-bot~rdap-domain-lookup/runs": {
      "post": {
        "operationId": "runs-sync-stego-bot-rdap-domain-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/stego-bot~rdap-domain-lookup/run-sync": {
      "post": {
        "operationId": "run-sync-stego-bot-rdap-domain-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 or more domains, e.g. example.com. URLs (https://www.example.com/page) and email addresses (name@example.com) are accepted and reduced to the domain. Internationalised names (bücher.de) and punycode (xn--bcher-kva.de) both work. Duplicates are looked up once. Up to 10,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "reduceToRegisteredDomain": {
            "title": "Reduce to registered domain",
            "type": "boolean",
            "description": "Turn subdomains like www.shop.example.co.uk into the registered domain (example.co.uk) using the Public Suffix List. When off, subdomains are reported as invalid input instead.",
            "default": true
          },
          "includeDns": {
            "title": "Include DNS records",
            "type": "boolean",
            "description": "Resolve live A, AAAA, MX, TXT and NS records with standard DNS queries (the platform's recursive resolver). Works for every TLD, including .com, .net and .org.",
            "default": true
          },
          "dnsRecordTypes": {
            "title": "DNS record types",
            "type": "array",
            "description": "Which DNS record types to resolve when DNS is on. Allowed: A, AAAA, MX, NS, TXT.",
            "default": [
              "A",
              "AAAA",
              "MX",
              "NS",
              "TXT"
            ],
            "items": {
              "type": "string"
            }
          },
          "checkAvailability": {
            "title": "Add availability hint",
            "type": "boolean",
            "description": "Adds likelyAvailable, availabilityBasis and availabilityNote. For most TLDs (including .com, .net, .org) the hint is based on DNS only: NXDOMAIN is a WEAK signal. For the TLDs whose registry RDAP is supported (e.g. .fi, .ec, .ht), a registry 404 means LIKELY available. This is not a guarantee either way: reserved, premium, on-hold or just-deleted names can look free. Confirm with a registrar before buying.",
            "default": false
          },
          "requestsPerSecondPerServer": {
            "title": "Requests per second per RDAP server",
            "minimum": 0.1,
            "maximum": 2,
            "type": "number",
            "description": "Polite pacing for each supported registry RDAP server (one request in flight per server, at most this many per second). The Actor slows down on HTTP 429/503 and honours Retry-After.",
            "default": 1
          },
          "maxRetryWaitSecs": {
            "title": "Max wait for Retry-After",
            "minimum": 0,
            "maximum": 300,
            "type": "integer",
            "description": "If a server says 'retry after N seconds' and N is at most this value, the Actor waits and retries. If N is longer, the remaining domains on that server are returned with status rate-limited and retryAfterSeconds, and are not charged.",
            "default": 30
          },
          "requestTimeoutSecs": {
            "title": "Request timeout",
            "minimum": 3,
            "maximum": 120,
            "type": "integer",
            "description": "Timeout for each RDAP or DNS request.",
            "default": 20
          },
          "maxConcurrency": {
            "title": "Max domains in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many domains are processed at the same time across all servers. Per-server pacing still applies.",
            "default": 10
          },
          "cacheHours": {
            "title": "Reuse registry answers for (hours)",
            "minimum": 0,
            "maximum": 720,
            "type": "integer",
            "description": "Registry (RDAP) answers are cached in a key-value store named \"rdap-domain-lookup-cache\" on your own Apify account and reused for this long, so registry servers are not asked the same question again. Only non-contact fields are stored (registrar name, IANA ID and URL, dates, status codes, nameservers, DNSSEC). No contact data is stored, not even the registrar's abuse email or phone, so rows served from the cache have no registrarAbuseEmail/registrarAbusePhone. \"Not found\" answers are reused for at most 1 hour. DNS is always live. Set 0 to turn the cross-run cache off.",
            "default": 24
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}