{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Email & Contact Scraper",
    "description": "Find public contact emails on websites from URLs, spreadsheets, Apify datasets, or company details. Get one unique, normalized email per row with its source page, plus phones, social links, and addresses when published.",
    "version": "9.0",
    "x-build-id": "UKwBzeUtz6h9018DL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~website-emails-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-website-emails-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/maximedupre~website-emails-scraper/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-website-emails-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/maximedupre~website-emails-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-website-emails-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",
        "properties": {
          "maxNbEmailsToScrape": {
            "title": "Maximum emails",
            "minimum": 0,
            "type": "integer",
            "description": "Optional maximum number of accepted emails for the whole run. Leave it empty or use 0 to return all available results until the source is exhausted."
          },
          "findBy": {
            "title": "Find contacts from",
            "enum": [
              "websiteUrls",
              "spreadsheets",
              "datasets",
              "companies"
            ],
            "type": "string",
            "description": "Choose one way to supply websites. Only the fields for that choice are used. Omit this field to use Website URLs.",
            "default": "websiteUrls"
          },
          "urls": {
            "title": "Website URLs",
            "minItems": 1,
            "type": "array",
            "description": "For Website URLs, add one or more complete public URLs that start with http:// or https://. Replace the starter URL with your websites.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "spreadsheetUrls": {
            "title": "Spreadsheet URLs",
            "minItems": 1,
            "type": "array",
            "description": "For Spreadsheet records, add public download URLs for CSV or Excel files. Each row must have a website value in the field named below. Use the first sheet in each Excel file. No sign-in is used.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "datasetIds": {
            "title": "Dataset IDs",
            "minItems": 1,
            "type": "array",
            "description": "For Dataset records, add Apify dataset IDs. Each record must have a website value in the field named below. Use datasets that this Apify account can read.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Companies",
            "minItems": 1,
            "type": "array",
            "description": "For Company details, add each company name with its phone number. A city or address helps find the right website. Country is optional. The Actor checks contacts only when one website publishes the supplied phone number. A missing or unclear match is reported in a warning.",
            "items": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "name": {
                  "title": "Company name",
                  "type": "string",
                  "description": "Required. Enter the full company name.",
                  "minLength": 1
                },
                "city": {
                  "title": "City",
                  "type": "string",
                  "description": "Enter the company city. It helps find the company website.",
                  "minLength": 1
                },
                "address": {
                  "title": "Address",
                  "type": "string",
                  "description": "Enter the company street address. It is used when no city is given.",
                  "minLength": 1
                },
                "phone": {
                  "title": "Phone number",
                  "type": "string",
                  "description": "Enter the company phone number. It is needed to confirm the website, because the website must publish this number. Include the country code when known.",
                  "minLength": 1
                },
                "country": {
                  "title": "Country",
                  "type": "string",
                  "description": "Optional two-letter country code used to read the phone number, such as US or GB. Omit it to use the Country for local phone numbers setting.",
                  "pattern": "^[A-Z]{2}$"
                }
              }
            }
          },
          "websiteField": {
            "title": "Website field",
            "minLength": 1,
            "type": "string",
            "description": "For Spreadsheet records and Dataset records, enter the exact column or field name that holds each website URL. Values must be complete http:// or https:// URLs.",
            "default": "website"
          },
          "idField": {
            "title": "Record ID field",
            "minLength": 1,
            "type": "string",
            "description": "For Spreadsheet records and Dataset records, enter the exact field name of an ID to keep with each contact. Omit this to keep no record ID."
          },
          "keepFields": {
            "title": "Business fields to keep",
            "type": "array",
            "description": "For Spreadsheet records and Dataset records, list exact field names to keep with each contact, such as companyName or city. Omit this or leave it empty to keep no extra fields.",
            "items": {
              "type": "string"
            }
          },
          "onlyMissingEmail": {
            "title": "Only records with no email",
            "type": "boolean",
            "description": "For Spreadsheet records and Dataset records, check only records whose email field is missing, null, or empty. Leave this off or omit it to check every record."
          },
          "emailField": {
            "title": "Email field",
            "minLength": 1,
            "type": "string",
            "description": "For Spreadsheet records and Dataset records, name the field to check when Only records with no email is on. This field is not used when that choice is off.",
            "default": "email"
          },
          "checkMailServer": {
            "title": "Check mail servers",
            "type": "boolean",
            "description": "Check whether the domain of each saved email address has mail server (MX) records. The result is saved with each email. Each check has its own small charge. Leave this off or omit it to skip the check.",
            "default": false
          },
          "phoneCountryCode": {
            "title": "Country for local phone numbers",
            "pattern": "^[A-Z]{2}$",
            "type": "string",
            "description": "Choose a supported two-letter country code for local phone numbers, such as GB. Use uppercase ISO country codes. Omit this field to use US. Phone numbers that start with + keep their own country code."
          },
          "includePaths": {
            "title": "Include URL paths",
            "type": "array",
            "description": "Limit linked pages to URL paths that start with a prefix you list, such as /contact/. Copy the path from a website link. Leave this empty or omit it to allow all paths. Excluded paths still take priority. Submitted URLs are still checked.",
            "items": {
              "type": "string"
            }
          },
          "excludePaths": {
            "title": "Exclude URL paths",
            "type": "array",
            "description": "Skip linked pages with URL paths that start with a prefix you list, such as /privacy/. Copy the path from a website link. Leave this empty or omit it to skip none. These exclusions take priority over included paths. Submitted URLs are still checked.",
            "items": {
              "type": "string"
            }
          },
          "stayWithinWebsite": {
            "title": "Stay within each website",
            "type": "boolean",
            "description": "Keep linked pages within each submitted or found website. Turn this off to also check pages on other websites that these websites link to. Omit this field to stay within each website.",
            "default": true
          },
          "includeSubdomains": {
            "title": "Include subdomains",
            "type": "boolean",
            "description": "Allow linked pages across the same domain and its subdomains. Leave this off or omit it to stay on each website host, with or without www. This choice applies when Stay within each website is on."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}