{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Extractor: Fast Business Lists",
    "description": "Google Maps extractor and scraper for fast place lists: search by keyword and location and get every business Google Maps lists, with name, category, address, phone, website, rating, review count, hours, coordinates and place ID, straight from the search results. No login.",
    "version": "0.1",
    "x-build-id": "e0mHd9nLdgheRV144"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~google-maps-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-google-maps-extractor",
        "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-extractor/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-google-maps-extractor",
        "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-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-google-maps-extractor",
        "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."
          },
          "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": "Search links (<code>https://www.google.com/maps/search/dentist/@43.61,-116.2,13z</code>) run as one more search term. Place links (<code>https://www.google.com/maps/place/...</code>, <code>maps.app.goo.gl/...</code>) work too.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "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."
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}