{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Email Extractor - Emails, Phones & Social Links",
    "description": "Returns Google Maps places with the emails, phone numbers and social profiles their websites publish: one row per business with primary email, every email with its source, phones, address, rating and place id. Thousands of places per search, kept to the city boundary. No login, no API key.",
    "version": "1.0",
    "x-build-id": "uplMvrCHyxhbfCeMi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/benthepythondev~google-maps-email-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-benthepythondev-google-maps-email-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/benthepythondev~google-maps-email-scraper/runs": {
      "post": {
        "operationId": "runs-sync-benthepythondev-google-maps-email-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/benthepythondev~google-maps-email-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-benthepythondev-google-maps-email-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": {
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "What to search for on Google Maps, as you would type it there: a kind of business (\"dentist\", \"steuerberater\", \"law firm\"), a brand or a business name. Searched in the location below."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, district, state or country to search in, for example \"Berlin, Germany\" or \"Austin, TX\". With a location the Actor reads past Google's list of about 200 places and keeps to the location's boundary."
          },
          "queries": {
            "title": "More search queries",
            "type": "array",
            "description": "Several search queries for one run. Each query is searched in each location, and a place found by two searches is saved once.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "More locations",
            "type": "array",
            "description": "Several locations for one run, for example a list of cities. Each query is searched in each of them.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum places per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Places to save for each search (each query in each location), up to 5,000. Every place's website is read for contact details, about four places a second.",
            "default": 10
          },
          "requireEmail": {
            "title": "Only places with an email",
            "type": "boolean",
            "description": "Saves only places whose website publishes at least one email address. Places without one are not charged. The run reads at most 1,000 places per search, or ten per place asked for if that is more.",
            "default": false
          },
          "skipClosed": {
            "title": "Skip permanently closed places",
            "type": "boolean",
            "description": "Leaves out places Google marks as permanently closed.",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "place_urls",
              "websites"
            ],
            "type": "string",
            "description": "\"search\" runs the queries and also reads any place links. \"place_urls\" reads only the place links. \"websites\" skips Google Maps and reads the contact details of the websites you list.",
            "default": "search"
          },
          "placeUrls": {
            "title": "Place links or place ids",
            "type": "array",
            "description": "Google Maps place links, place ids (ChIJ…) or feature ids (0x…:0x…). Each place is read from its own page and its website is searched for contact details.",
            "items": {
              "type": "string"
            }
          },
          "websites": {
            "title": "Websites",
            "type": "array",
            "description": "Websites or domains to read contact details from without Google Maps, up to 5,000. Used when no query and no place link is given, or in \"websites\" mode.",
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Save only places with at least this star rating. Filtered places are not charged."
          },
          "minReviews": {
            "title": "Minimum number of reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Save only places with at least this many reviews. Filtered places are not charged."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language of categories and opening hours, as a language code: en, de, fr, es, it.",
            "default": "en"
          },
          "countryCode": {
            "title": "Country of the visitor",
            "type": "string",
            "description": "Two-letter country code Google is told the visitor is in. It decides the format of addresses and of the phone number Google shows.",
            "default": "us"
          },
          "onlyNew": {
            "title": "Only places not delivered before",
            "type": "boolean",
            "description": "Skips every place an earlier run with the same monitor name saved. Use it to continue a large area over several runs or to get new businesses on a schedule. Skipped places are not charged.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the memory used by \"only places not delivered before\"."
          },
          "excludePlaceIds": {
            "title": "Exclude place ids",
            "type": "array",
            "description": "Skip these places, given as place ids (ChIJ…), numeric CIDs or feature ids (0x…:0x…). Excluded places are not saved or charged.",
            "items": {
              "type": "string"
            }
          },
          "debugMode": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Logs every Google Maps request with its size and time. For support.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}