{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper with Emails & All Reviews | $0.50 per 1k",
    "description": "Scrape Google Maps leads with phones, emails, websites, opening hours and every review. Export CSV, Excel or JSON, or use the API. Cheaper than other scrapers",
    "version": "0.0",
    "x-build-id": "UR1jm6mVQkomE6skT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/expensive_kapi~google-maps-leads-actor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-expensive_kapi-google-maps-leads-actor",
        "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/expensive_kapi~google-maps-leads-actor/runs": {
      "post": {
        "operationId": "runs-sync-expensive_kapi-google-maps-leads-actor",
        "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/expensive_kapi~google-maps-leads-actor/run-sync": {
      "post": {
        "operationId": "run-sync-expensive_kapi-google-maps-leads-actor",
        "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",
        "required": [
          "searchStrings"
        ],
        "properties": {
          "searchStrings": {
            "title": "Search terms",
            "type": "array",
            "description": "What to search on Google Maps, one per line. Put the place in the text for best results, for example \"Physiotherapy in Sydney, Australia\". Each search returns up to about 120 businesses (Google's limit).",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location (optional)",
            "type": "string",
            "description": "Added to every search term, for example \"Parramatta NSW\" turns \"plumber\" into \"plumber in Parramatta NSW\". Leave empty when the search terms already contain the place."
          },
          "maxPlaces": {
            "title": "Businesses you need (0 = all Google shows)",
            "minimum": 0,
            "type": "integer",
            "description": "The run stops when it has this many businesses. If your searches end with fewer, it keeps searching smaller parts of the same area until it has enough or Google has no more. 0 = everything Google lists for your searches.",
            "default": 0
          },
          "includeDetails": {
            "title": "Extra details: description and star breakdown",
            "type": "boolean",
            "description": "The business's own description and how many 1 to 5 star reviews it has. Charged per business that has them.",
            "default": false
          },
          "includeEmails": {
            "title": "Emails from the website",
            "type": "boolean",
            "description": "Visits each business website (home page and contact page) and collects the email addresses. Charged per website visited.",
            "default": false
          },
          "includeReviews": {
            "title": "Reviews",
            "type": "boolean",
            "description": "Each review with its star rating, text, date and author. Charged per review.",
            "default": false
          },
          "maxReviewsPerPlace": {
            "title": "Maximum reviews per business (0 = all)",
            "minimum": 0,
            "type": "integer",
            "description": "Used when Reviews is on. 0 collects every review Google lists.",
            "default": 20
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "lowest",
              "highest",
              "relevant"
            ],
            "type": "string",
            "description": "Which reviews come first. \"Lowest rating first\" with a small maximum is a quick way to collect complaints.",
            "default": "newest"
          },
          "scrapeMode": {
            "title": "Scraping mode",
            "enum": [
              "fast",
              "full"
            ],
            "type": "string",
            "description": "Fast reads Google's data without a browser and runs on 512 MB of memory. Full opens every business in a browser: it adds owner replies to reviews and emails from websites that need JavaScript, always includes the extra details, needs 4 GB of memory (set Memory in Run options) and has its own price per business.",
            "default": "fast"
          },
          "scrollDepth": {
            "title": "Result pages per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Fast mode reads Google's results 20 businesses at a time; this is the most pages per search. In Full mode it is how far to scroll the result list.",
            "default": 20
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language code for Google Maps, for example en, de, fr.",
            "default": "en"
          },
          "centerCoordinates": {
            "title": "Search centre (optional)",
            "type": "string",
            "description": "Latitude and longitude to centre the map on, for example \"-33.8688,151.2093\". Useful for searches without a place name."
          },
          "zoom": {
            "title": "Map zoom (with search centre)",
            "minimum": 1,
            "maximum": 21,
            "type": "integer",
            "description": "Zoom level 1 to 21 used with the search centre. Higher is closer.",
            "default": 15
          },
          "radiusMeters": {
            "title": "Radius in metres (with search centre)",
            "minimum": 100,
            "type": "integer",
            "description": "Only keep businesses within this distance of the search centre."
          },
          "maxConcurrency": {
            "title": "Parallel pages or requests (0 = automatic)",
            "minimum": 0,
            "maximum": 16,
            "type": "integer",
            "description": "Fast mode: parallel requests; automatic uses 4. Full mode: browser pages; automatic uses 2 per CPU core, and Apify gives 1 core per 4 GB of memory.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave this on the default, Apify's datacenter proxies. To use your own proxies, choose Own proxies and enter URLs like http://user:pass@host:port. With No proxy, Google may block the run.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}