{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper: Places, Emails & Phones",
    "description": "Google Maps scraper: search places by keyword and location, Maps URL or place ID. Address, phone, website, rating, star histogram, opening hours, categories, owner info, up to 15 reviews and 100 photos, plus emails and social profiles from each website. No login.",
    "version": "0.1",
    "x-build-id": "Bc8pTzj8NEHfIgkgS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~google-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-google-maps-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/deepmine~google-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-google-maps-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/deepmine~google-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-google-maps-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": {
          "searchStringsArray": {
            "title": "🔍 Search terms",
            "type": "array",
            "description": "What you would type in Google Maps, e.g. <strong>dentist</strong> or <strong>coffee shop</strong>. Each term is searched in the location below. A term may name its own place (<strong>pizza in Austin, TX</strong>).",
            "items": {
              "type": "string"
            }
          },
          "locationQuery": {
            "title": "📍 Location",
            "type": "string",
            "description": "City, neighborhood, ZIP code, state or country, e.g. <strong>Boise, ID</strong> or <strong>Berlin, Germany</strong>. Results stay inside the location's own boundary (a city search doesn't spill into its suburbs). Large areas are searched ZIP code by ZIP code and tile by tile automatically. Empty = Google picks the area your term names."
          },
          "maxCrawledPlacesPerSearch": {
            "title": "💯 Number of places per search term",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Places each search term returns at most, e.g. 500. Empty = every place Google Maps has for it in the location."
          },
          "scrapeContacts": {
            "title": "📧 Emails and social profiles from websites ($)",
            "type": "boolean",
            "description": "Reads each place's website (home page plus up to 2 contact pages) for emails, phones and Facebook, Instagram, LinkedIn, X, YouTube, TikTok and other profiles. Charged only for places whose website gave a contact.",
            "default": false
          },
          "language": {
            "title": "🌍 Language",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt-BR",
              "pt-PT",
              "nl",
              "pl",
              "cs",
              "sk",
              "hu",
              "ro",
              "bg",
              "el",
              "tr",
              "ru",
              "uk",
              "sv",
              "da",
              "no",
              "fi",
              "et",
              "lv",
              "lt",
              "hr",
              "sl",
              "sr",
              "ja",
              "ko",
              "zh-CN",
              "zh-TW",
              "th",
              "vi",
              "id",
              "ms",
              "fil",
              "hi",
              "ar",
              "he",
              "fa"
            ],
            "type": "string",
            "description": "Language of names, categories, hours and reviews, as Google Maps shows them.",
            "default": "en"
          },
          "categoryFilterWords": {
            "title": "🎢 Place categories",
            "type": "array",
            "description": "Keep only places with a category containing one of these words, e.g. <strong>dentist</strong>, <strong>orthodontist</strong>. Empty = every category. Places left out are not charged.",
            "items": {
              "type": "string"
            }
          },
          "searchMatching": {
            "title": "Name match",
            "enum": [
              "all",
              "only_includes",
              "only_exact"
            ],
            "type": "string",
            "description": "Keep only places whose name contains the search term, or is exactly the search term.",
            "default": "all"
          },
          "placeMinimumStars": {
            "title": "⭐ Minimum rating",
            "enum": [
              "",
              "two",
              "twoAndHalf",
              "three",
              "threeAndHalf",
              "four",
              "fourAndHalf"
            ],
            "type": "string",
            "description": "Keep only places rated at least this. Places without a rating are left out when this is set.",
            "default": ""
          },
          "website": {
            "title": "🌐 Website",
            "enum": [
              "allPlaces",
              "withWebsite",
              "withoutWebsite"
            ],
            "type": "string",
            "description": "Keep only places with a website (for lead lists), or only places without one.",
            "default": "allPlaces"
          },
          "skipClosedPlaces": {
            "title": "⏩ Skip closed places",
            "type": "boolean",
            "description": "Leave out places marked temporarily or permanently closed.",
            "default": false
          },
          "startUrls": {
            "title": "🔗 Google Maps URLs",
            "type": "array",
            "description": "Place links (<code>https://www.google.com/maps/place/...</code>, <code>maps.app.goo.gl/...</code>, <code>?cid=</code> links) and search links (<code>https://www.google.com/maps/search/dentist/@43.61,-116.2,13z</code>). A search link runs as one more search term.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "placeIds": {
            "title": "🗃️ Place IDs",
            "type": "array",
            "description": "Google place IDs (<code>ChIJdzf8kEZZwokRXtSOY0-Kwaw</code>), CIDs (<code>12448382918606115934</code>) or FIDs (<code>0x89c2594690fc3777:0xacc18a4f638ed45e</code>).",
            "items": {
              "type": "string"
            }
          },
          "countryCode": {
            "title": "🗺️ Country",
            "type": "string",
            "description": "Used with the fields below when 📍 Location is empty; also sets the Google country, e.g. <strong>de</strong>. Two letters."
          },
          "city": {
            "title": "🌇 City",
            "type": "string",
            "description": "e.g. <strong>Pittsburgh</strong>."
          },
          "state": {
            "title": "State",
            "type": "string",
            "description": "e.g. <strong>Massachusetts</strong>."
          },
          "county": {
            "title": "County",
            "type": "string",
            "description": "e.g. <strong>King County</strong>."
          },
          "postalCode": {
            "title": "Postal code",
            "type": "string",
            "description": "e.g. <strong>10001</strong>. Combine with 🗺️ Country."
          },
          "customGeolocation": {
            "title": "🛰️ Custom search area (GeoJSON)",
            "type": "object",
            "description": "A GeoJSON Polygon or MultiPolygon ([longitude, latitude] order), or a Point with <code>radiusKm</code>. Overrides the location. Only places inside are kept."
          },
          "maxReviews": {
            "title": "⭐ Reviews per place (up to 15)",
            "minimum": 0,
            "maximum": 15,
            "type": "integer",
            "description": "Adds reviews with text, stars, date, reviewer and ratings. Signed-out Google Maps shows at most the 10 most relevant and the 5 newest reviews of a place, so up to 15 per place (fewer when the place has fewer). Included in the place price. 0 = none.",
            "default": 0
          },
          "reviewsSort": {
            "title": "Which reviews first",
            "enum": [
              "newest",
              "mostRelevant"
            ],
            "type": "string",
            "description": "Newest: the 5 newest reviews, then the most relevant. Most relevant: the 10 most relevant, then the newest. Signed-out Google Maps offers no other order or date filter.",
            "default": "newest"
          },
          "maxImages": {
            "title": "🖼️ Photos per place (up to 100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Photo URLs in imageUrls. Up to 6 come from the photo strip on the place page; more than 6 reads the place's photo gallery and also fills images (each photo's size, upload date, owner or visitor, video link). Included in the place price. The total photo count is always in imagesCount. 0 = none.",
            "default": 6
          },
          "scrapeReviewsPersonalData": {
            "title": "Reviewer names and profiles",
            "type": "boolean",
            "description": "Off: reviews keep their text, stars and dates but not the reviewer's name, ID, profile link or photo.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is: Apify datacenter proxy works for Google Maps. A call every datacenter IP refused is retried once on a residential IP.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}