{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper - Business Leads, Phone, Reviews & GPS",
    "description": "Scrape Google Maps businesses at scale: name, category, full address, phone, website, rating, review count, price level & GPS. Perfect for local SEO and B2B lead lists. Any city or niche, 190+ countries. Clean JSON/CSV. No API keys.",
    "version": "0.0",
    "x-build-id": "fbRS2vm4lZmtX8NrC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/santhej~google-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-santhej-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/santhej~google-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-santhej-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/santhej~google-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-santhej-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": {
          "queries": {
            "title": "Search queries",
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "description": "What to search on Google Maps, e.g. ‘coffee shop chicago’, ‘dentist in austin tx’, ‘plumbers near london’. One per line. Up to 100 per run.",
            "items": {
              "type": "string"
            }
          },
          "resultsDepth": {
            "title": "Results per query",
            "minimum": 10,
            "maximum": 700,
            "type": "integer",
            "description": "How many places to return per query (10–700). Google itself caps a single search at roughly 180–250 places no matter how high you set this — turn on ‘Grid search’ below to go past that ceiling.",
            "default": 20
          },
          "locationCode": {
            "title": "Country",
            "enum": [
              "2840",
              "2826",
              "2124",
              "2036",
              "2356",
              "2276",
              "2250",
              "2724",
              "2380",
              "2392"
            ],
            "type": "string",
            "description": "Target country. Default United States (2840). UK 2826, Canada 2124, Australia 2036, India 2356, Germany 2276.",
            "default": "2840"
          },
          "languageCode": {
            "title": "Language",
            "type": "string",
            "description": "Language code (e.g. en, es, de, fr).",
            "default": "en"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only keep places with at least this star rating (1–5). Leave empty for no filter."
          },
          "categoryFilterWords": {
            "title": "Category filter words",
            "type": "array",
            "description": "Only keep places whose category (or additional categories) contains one of these words, e.g. ‘dentist’, ‘orthodontist’. Case-insensitive. Leave empty to keep all.",
            "items": {
              "type": "string"
            }
          },
          "skipClosedPlaces": {
            "title": "Skip closed places",
            "type": "boolean",
            "description": "Skip places marked permanently/temporarily closed in Google's opening hours.",
            "default": false
          },
          "gridSearch": {
            "title": "Grid search (beat Google's result cap)",
            "type": "boolean",
            "description": "Google returns at most ~180–250 places for any single search. Grid search splits the area into a grid of map tiles, searches each one, and merges the results — de-duplicating by place ID so you are never billed twice for the same business. Costs more (one search per tile) but finds businesses a single search can never reach.",
            "default": false
          },
          "gridSize": {
            "title": "Grid size (N × N tiles)",
            "minimum": 2,
            "maximum": 5,
            "type": "integer",
            "description": "Only used when ‘Grid search’ is on. 3 means a 3×3 grid = 9 tiles. Bigger grid = more coverage and more cost.",
            "default": 3
          },
          "gridRadiusKm": {
            "title": "Grid radius (km)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Only used when ‘Grid search’ is on. How far out from the centre of your search area the grid should reach, in kilometres. Use ~5 for a city centre, 25–50 for a whole metro.",
            "default": 5
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Also pull individual customer reviews for each place (rating, text, author, date, owner reply). Adds review rows to the dataset and is billed per review. Limited to the first 50 places per run.",
            "default": false
          },
          "reviewsDepth": {
            "title": "Reviews per place",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "How many reviews to pull per place when ‘Include reviews’ is on (10–100).",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}