{
  "openapi": "3.0.1",
  "info": {
    "title": "Email Finder — Website Emails, Phones & Socials — $2/1k",
    "description": "Email finder for company websites: crawls contact, about, team and imprint pages for emails, phones, socials and addresses. Bulk domains from CSV or Google Sheets, deobfuscation, DNS MX check, empty domains not charged. No login or cookies. MCP-ready for AI agents. $2 per 1,000 records.",
    "version": "1.0",
    "x-build-id": "agl2rJCVDfWoRull3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/chimerical_quicklime~website-email-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-chimerical_quicklime-website-email-finder",
        "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/chimerical_quicklime~website-email-finder/runs": {
      "post": {
        "operationId": "runs-sync-chimerical_quicklime-website-email-finder",
        "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/chimerical_quicklime~website-email-finder/run-sync": {
      "post": {
        "operationId": "run-sync-chimerical_quicklime-website-email-finder",
        "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",
        "properties": {
          "startUrls": {
            "title": "Website URLs",
            "type": "array",
            "description": "Company websites to scan, one per line (https://example.com or just example.com). Leave everything empty to run a sample on a few public organisation sites.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "domains": {
            "title": "Domains (plain list)",
            "type": "array",
            "description": "Same as Website URLs, as bare domains (acme.com). Handy when pasting from a spreadsheet column.",
            "items": {
              "type": "string"
            }
          },
          "listUrl": {
            "title": "Import list from CSV / Google Sheet",
            "type": "string",
            "description": "URL of a CSV, TXT or Google Sheet (shared as 'anyone with the link'). The first column is read; a header row like 'domain' or 'website' is skipped."
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "perDomain",
              "perEmail"
            ],
            "type": "string",
            "description": "perDomain: one row per website with all its emails, phones, socials and addresses. perEmail: one row per email address (flat, CRM-ready).",
            "default": "perDomain"
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows (domains in perDomain mode, emails in perEmail mode).",
            "default": 10
          },
          "maxPagesPerDomain": {
            "title": "Max pages per domain",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Pages fetched per website. The home page is always first, then contact, imprint, about/team, support, press, careers, privacy pages and footer links, plus sitemap.xml hints.",
            "default": 10
          },
          "maxDepth": {
            "title": "Max link depth",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "How many clicks away from the home page to follow links (0 = home page only).",
            "default": 2
          },
          "emailFilter": {
            "title": "Email filter",
            "enum": [
              "all",
              "generic",
              "personal"
            ],
            "type": "string",
            "description": "all: every email. generic: role inboxes only (info@, contact@, sales@…). personal: named people only (john.smith@…).",
            "default": "all"
          },
          "onlySameDomain": {
            "title": "Only emails on the site's own domain",
            "type": "boolean",
            "description": "Drop emails whose domain differs from the website (agency, partner or gmail addresses).",
            "default": false
          },
          "verifyMx": {
            "title": "Check MX records (DNS)",
            "type": "boolean",
            "description": "Look up the DNS MX record of each email's domain and report mxValid true/false. This proves the domain can receive mail; it is not an SMTP mailbox check (Apify blocks port 25, so no actor can do that honestly).",
            "default": true
          },
          "deobfuscate": {
            "title": "Decode obfuscated emails",
            "type": "boolean",
            "description": "Recover 'name [at] domain [dot] com', HTML-entity, Cloudflare email-protection and mailto-with-subject forms.",
            "default": true
          },
          "includePhones": {
            "title": "Include phone numbers",
            "type": "boolean",
            "description": "Phone numbers from tel: links, JSON-LD and page text (ZIP codes, years and prices are filtered out).",
            "default": true
          },
          "includeSocials": {
            "title": "Include social profiles",
            "type": "boolean",
            "description": "Facebook, Instagram, LinkedIn, X/Twitter, YouTube, TikTok, GitHub, Pinterest, Threads, Telegram, WhatsApp.",
            "default": true
          },
          "includeNames": {
            "title": "Include names and job titles",
            "type": "boolean",
            "description": "Names/titles next to emails on team pages and from JSON-LD Person/Organization markup.",
            "default": true
          },
          "includeEmptyDomains": {
            "title": "Save domains with no contacts",
            "type": "boolean",
            "description": "By default a domain with no email, phone or social is only listed in the run OUTPUT (and not charged). Turn on to get a row for it anyway.",
            "default": false
          },
          "perDomainTimeoutSecs": {
            "title": "Time cap per domain (seconds)",
            "minimum": 10,
            "maximum": 600,
            "type": "integer",
            "description": "A slow site stops after this many seconds; whatever was found by then is kept.",
            "default": 60
          },
          "maxConcurrency": {
            "title": "Domains in parallel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many websites are crawled at the same time.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Off by default. Use Apify residential proxy for sites that block datacenter IPs (status 'blocked' in the OUTPUT summary)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}