Google Maps Scraper
Pricing
from $100.01 / 1,000 results
Go to Apify Store
Google Maps Scraper
๐ Google Maps Scraper Google Maps Scraper lets you extract business data from Google Maps.
Pricing
from $100.01 / 1,000 results
๐ Google Maps Scraper Google Maps Scraper lets you extract business data from Google Maps.
You can access the Google Maps Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, youโll need an Apify account and your API token, found in Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "2txIgKE2FLciFxkdU" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/surigami~google-maps-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-surigami-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/surigami~google-maps-scraper/runs": { "post": { "operationId": "runs-sync-surigami-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/surigami~google-maps-scraper/run-sync": { "post": { "operationId": "run-sync-surigami-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": { "searchTerms": { "title": "Search Terms", "type": "array", "description": "List of search terms to find places on Google Maps (e.g., ['restaurant', 'bar', 'cafe']). Using multiple distinct search terms can increase results.", "default": [], "items": { "type": "string" } }, "location": { "title": "Location", "type": "string", "description": "Location to search in (e.g., 'New York, NY', 'Berlin, Germany', or coordinates like '52.5200,13.4050')" }, "customSearchArea": { "title": "Custom Search Area (GeoJSON)", "type": "object", "description": "Custom search area using GeoJSON format. Supports Polygon, MultiPolygon, and Point (circle) types. Note: coordinates use [longitude, latitude] order. For Point type, include 'radiusKm' property (default: 5km). Example: {\"type\":\"Polygon\",\"coordinates\":[[[-0.322813,51.597165],[-0.31499,51.388023],[0.060493,51.389199],[0.051936,51.60036],[-0.322813,51.597165]]]}" }, "startUrl": { "title": "Google Maps URL", "type": "string", "description": "Direct Google Maps search URL (e.g., 'https://www.google.com/maps/search/restaurants/@52.5190603,13.388574,13z/')" }, "placeIds": { "title": "Place IDs or URLs", "type": "array", "description": "Direct Google Maps Place IDs or URLs to scrape (paid add-on feature)", "default": [], "items": { "type": "string" } }, "categories": { "title": "Categories", "type": "array", "description": "Filter results by specific categories. Use with caution - must include all synonyms to avoid false negatives.", "default": [], "items": { "type": "string" } }, "maxResults": { "title": "Max Results", "minimum": 0, "type": "integer", "description": "Maximum number of places to scrape (default: unlimited, but Google Maps limits to ~120 per area without location input)", "default": 0 }, "includeImages": { "title": "Include Images", "type": "boolean", "description": "Extract list of images for each place", "default": false }, "includeReviews": { "title": "Include Reviews", "type": "boolean", "description": "Extract reviews for each place", "default": false }, "includeAmenities": { "title": "Include Amenities", "type": "boolean", "description": "Extract detailed characteristics and amenities", "default": false }, "includePopularTimes": { "title": "Include Popular Times", "type": "boolean", "description": "Extract popular times histogram and live occupancy data", "default": false }, "includeMenu": { "title": "Include Menu", "type": "boolean", "description": "Extract menu information if available", "default": false }, "includeQuestionsAnswers": { "title": "Include Q&A", "type": "boolean", "description": "Extract customer questions and answers", "default": false }, "enrichWithContactDetails": { "title": "Enrich with Contact Details", "type": "boolean", "description": "Extract company email, phone, and social media from website (paid add-on)", "default": false }, "enrichWithLeads": { "title": "Enrich with Business Leads", "type": "boolean", "description": "Enrich with full name, work email, phone, job title, LinkedIn (paid add-on)", "default": false }, "enrichWithSocialMedia": { "title": "Enrich with Social Media", "type": "boolean", "description": "Extract detailed profile data for Facebook, Instagram, YouTube, TikTok, Twitter (paid add-on)", "default": false }, "proxyConfiguration": { "title": "Proxy Configuration", "type": "object", "description": "Proxy configuration to avoid blocking" } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Google Maps Scraper from the options below:
If youโd like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: