{
  "openapi": "3.0.1",
  "info": {
    "title": "Contact Details Scraper: Emails & Phones for Google Maps Leads",
    "description": "Contact details scraper and email extractor for company websites or Google Maps leads: role emails (info@, sales@), company phones, social media pages, contact page and contact form. One row per company. Skips name-based emails like jane.doe@. Obeys robots.txt. No API key.",
    "version": "0.1",
    "x-build-id": "mOgcDNtaktL4cwCYr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stellalytics~business-contact-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stellalytics-business-contact-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/stellalytics~business-contact-finder/runs": {
      "post": {
        "operationId": "runs-sync-stellalytics-business-contact-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/stellalytics~business-contact-finder/run-sync": {
      "post": {
        "operationId": "run-sync-stellalytics-business-contact-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": {
          "websites": {
            "title": "Websites",
            "type": "array",
            "description": "Company websites, one per line: acme.com or https://www.acme.com/. Duplicates are removed. IP addresses and internal hosts are refused.",
            "items": {
              "type": "string"
            }
          },
          "maxPagesPerSite": {
            "title": "Pages per website",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "The homepage plus contact, imprint and about pages found on it. More pages find more contacts but take longer. You pay per company, not per page.",
            "default": 4
          },
          "includePhones": {
            "title": "Include phone numbers",
            "type": "boolean",
            "description": "Company phone numbers from tel: links and the site's structured data (schema.org). Numbers marked as a person's are never read.",
            "default": true
          },
          "checkEmailDomain": {
            "title": "Check that the email domain receives mail",
            "type": "boolean",
            "description": "Look up the email domain's mail servers (MX records) in DNS and set emailDomainAcceptsMail to true or false (null when DNS didn't answer). Only DNS is asked; no mail server is contacted and no email is sent, so it does not prove a single mailbox exists. Free.",
            "default": true
          },
          "onlyWithEmail": {
            "title": "Only companies with an email",
            "type": "boolean",
            "description": "Turn on if you only want companies that have a company email (for example for email outreach). Websites where no company email was found then cost nothing: they are listed with status no_email, and their phones, social pages and contact page are left out. Off: any contact point counts and is charged.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Websites in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many websites to visit at the same time. Pages of one website are always fetched one after another.",
            "default": 20
          },
          "skipKnownCompanies": {
            "title": "Skip companies found in earlier runs",
            "type": "boolean",
            "description": "For lists you enrich again and again (for example a weekly Google Maps scrape): websites whose contacts an earlier run already found are skipped and cost nothing, so you only pay for new companies. Websites where nothing was found are tried again. The list is kept in a named key-value store in your own Apify account (business-contact-finder-known).",
            "default": false
          },
          "historyName": {
            "title": "List name",
            "maxLength": 60,
            "type": "string",
            "description": "Optional. Keep separate lists of found companies, for example one per client or campaign. Runs with the same name share one list. Leave empty for the default list."
          },
          "datasetId": {
            "title": "Dataset with websites (from another Actor)",
            "type": "string",
            "description": "Optional. Find contacts for the websites in a dataset from another run, for example Google Maps scraper leads (field 'website') or Google Search Results Scraper results (field 'organicResults.url'). Rows without a website are skipped and cost nothing. The sample websites above are ignored when a dataset is given."
          },
          "datasetField": {
            "title": "Website field in the dataset",
            "type": "string",
            "description": "Leave empty to detect it (website, domain, url, companyWebsite, homepage, link, organicResults.url and similar). Use dots for nested lists, for example organicResults.url."
          },
          "keepSourceFields": {
            "title": "Copy fields from the dataset",
            "type": "array",
            "description": "Optional. Top-level fields of the dataset's rows to copy into each result under 'source', so you can match contacts back to your leads. For a Google Maps scraper dataset, for example: title, placeId, address, categoryName, totalScore. Up to 10 fields; only text, numbers and true/false are copied.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}