{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper - Most Comprehensive",
    "description": "🔥 ~$0.1/1K places 🔥 The most comprehensive Google Maps scraper available. Extract 76+ fields per place including photos, review breakdowns, owner info, contacts, coordinates, and 30+ service options. Just type a keyword and location.",
    "version": "0.2",
    "x-build-id": "FBfgRbhWUnd3T2lOz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kaix~google-maps-places-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kaix-google-maps-places-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/kaix~google-maps-places-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kaix-google-maps-places-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/kaix~google-maps-places-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kaix-google-maps-places-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 (e.g. 'coffee shops', 'restaurants', 'dentists')"
          },
          "searchTerms": {
            "title": "Search Terms (multiple)",
            "type": "array",
            "description": "Optional. Multiple search terms to run and merge into one deduplicated result set — e.g. ['restaurants', 'cafe', 'fast food', 'food']. Each term surfaces different places, so this greatly increases coverage for broad categories. When provided, it replaces the single Search Query.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, address, or area used to find the search center (e.g. 'San Francisco, CA', 'Tokyo, Japan'). This does not select a city boundary."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Upper limit on search results. Fewer valid places can be available. Set to 0 for no limit. When searchType is 'nearby', Google limits results to ~60. placeIds preserve their input cardinality; companies use maxResultsPerCompany.",
            "default": 20
          },
          "mode": {
            "title": "Search Mode",
            "enum": [
              "basic",
              "detailed",
              "rich"
            ],
            "type": "string",
            "description": "Basic: ~50 fields, fastest - uses Google API only. Detailed: ~80 fields, finds more places per area using multiple data sources. Rich: same places as Detailed but with ~120 fields - adds photos, reviews, owner info (slower).",
            "default": "basic"
          },
          "openNow": {
            "title": "Open Now",
            "type": "boolean",
            "description": "Only return places that are currently open."
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 2,
            "maximum": 4.5,
            "type": "number",
            "description": "Only return places with at least this average rating. Allowed values: 2.0, 2.5, 3.0, 3.5, 4.0, 4.5."
          },
          "priceLevels": {
            "title": "Price Levels",
            "type": "array",
            "description": "Only return places matching these price levels.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4"
              ],
              "enumTitles": [
                "$ (Inexpensive)",
                "$$ (Moderate)",
                "$$$ (Expensive)",
                "$$$$ (Very Expensive)"
              ]
            }
          },
          "includePhotos": {
            "title": "Include Photos",
            "type": "boolean",
            "description": "Fetch full photo listings for each place. Charged per photo. Works with any mode.",
            "default": false
          },
          "maxPhotos": {
            "title": "Max Photos Per Place",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of photos to fetch per place. Set to 0 for all photos.",
            "default": 200
          },
          "placeIds": {
            "title": "Place IDs or URLs",
            "type": "array",
            "description": "Look up specific places by Google Maps place ID (e.g. 'ChIJN1t_tDeuEmsRUsoyG83frY4') or full Google Maps URL. When provided, query and location are ignored.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Company Lookups",
            "type": "array",
            "description": "Look up specific companies by name and location. Each entry should have 'name' and 'city', with optional 'state' and 'country'. When provided, query and location are ignored.",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "Company Name",
                  "description": "Business or company name to search for."
                },
                "city": {
                  "type": "string",
                  "title": "City",
                  "description": "City where the company is located."
                },
                "state": {
                  "type": "string",
                  "title": "State",
                  "description": "State or province (e.g. 'MA', 'California')."
                },
                "country": {
                  "type": "string",
                  "title": "Country",
                  "description": "Country name or code (e.g. 'US', 'Japan')."
                }
              },
              "required": [
                "name",
                "city"
              ]
            }
          },
          "maxResultsPerCompany": {
            "title": "Max Results Per Company",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of results to return per company lookup.",
            "default": 1
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language code for results (e.g. 'en', 'ja', 'de', 'fr', 'es', 'zh'). Affects place names, descriptions, and reviews.",
            "default": "en"
          },
          "searchType": {
            "title": "Search Type",
            "enum": [
              "area",
              "nearby"
            ],
            "type": "string",
            "description": "area: returns places with valid coordinates inside the search rectangle. It excludes unknown positions, including service-area businesses with no known position, and reports excluded counts in the log. nearby: searches near a point using location bias (max ~60 results, mode is ignored).",
            "default": "area"
          },
          "exhaustive": {
            "title": "Exhaustive Coverage",
            "type": "boolean",
            "description": "Subdivide the search area much more deeply so dense regions (city centres) are covered fully instead of capping at ~170 per cell. Slower and uses more requests, but returns far more places for large, dense areas. Best combined with multiple Search Terms.",
            "default": false
          },
          "radius": {
            "title": "Search Radius",
            "minimum": 1,
            "type": "number",
            "description": "In area search, the rectangle extends approximately this distance north, south, east, and west from the center. Corners can be farther from the center. In nearby search, this radius is used to prefer nearby results. Capped at 5,000 km (3,107 mi).",
            "default": 50
          },
          "radiusUnit": {
            "title": "Radius Unit",
            "enum": [
              "km",
              "mi"
            ],
            "type": "string",
            "description": "Unit for the search radius.",
            "default": "km"
          },
          "zoom": {
            "title": "Zoom Level",
            "minimum": 5,
            "maximum": 20,
            "type": "integer",
            "description": "Map zoom level (10=city, 13=neighborhood, 15=street).",
            "default": 13
          },
          "latitude": {
            "title": "Latitude",
            "type": "number",
            "description": "Override location with exact latitude. Use with longitude."
          },
          "longitude": {
            "title": "Longitude",
            "type": "number",
            "description": "Override location with exact longitude. Use with latitude."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used. Residential proxies recommended - Google blocks datacenter IPs.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}