Google Maps Competitor Analysis Scraper
Pricing
from $3.99 / 1,000 results
Go to Apify Store
Google Maps Competitor Analysis Scraper
Bounded public Google Maps extraction with honest access-boundary handling.
Google Maps Competitor Analysis Scraper
Pricing
from $3.99 / 1,000 results
Bounded public Google Maps extraction with honest access-boundary handling.
You can access the Google Maps Competitor Analysis 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 API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.1", "x-build-id": "hxHqIkVg5hdiWq3vT" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/googleapi~google-maps-competitor-analysis-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-googleapi-google-maps-competitor-analysis-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/googleapi~google-maps-competitor-analysis-scraper/runs": { "post": { "operationId": "runs-sync-googleapi-google-maps-competitor-analysis-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/googleapi~google-maps-competitor-analysis-scraper/run-sync": { "post": { "operationId": "run-sync-googleapi-google-maps-competitor-analysis-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": { "searchStringsArray": { "title": "Search queries", "maxItems": 50, "type": "array", "description": "Primary public Maps queries.", "items": { "type": "string", "minLength": 3, "maxLength": 200 } }, "searchKeywords": { "title": "Search keywords (legacy)", "maxItems": 50, "type": "array", "description": "Compatibility alias for searchStringsArray.", "items": { "type": "string", "minLength": 3, "maxLength": 200 } }, "queries": { "title": "Queries", "maxItems": 50, "type": "array", "description": "Public Google Maps searches.", "items": { "type": "string", "minLength": 3, "maxLength": 200 } }, "searchQuery": { "title": "Single query", "maxLength": 200, "type": "string", "description": "Single-query compatibility alias." }, "startUrls": { "title": "Public Maps URLs", "maxItems": 25, "type": "array", "description": "Public Google Maps search/place URLs.", "items": { "type": "object", "properties": { "url": { "title": "Public URL", "description": "HTTPS Google Maps URL.", "type": "string" } }, "required": [ "url" ], "additionalProperties": false } }, "urls": { "title": "URL aliases", "maxItems": 25, "type": "array", "description": "Compatibility alias for startUrls.", "items": { "type": "string", "minLength": 1 } }, "locationQuery": { "title": "Location suffix", "maxLength": 200, "type": "string", "description": "Optional location appended to generated searches." }, "maxItems": { "title": "Maximum places", "minimum": 1, "maximum": 100, "type": "integer", "description": "Global maximum of normal records." }, "maxCrawledPlacesPerSearch": { "title": "Maximum places (legacy)", "minimum": 1, "maximum": 100, "type": "integer", "description": "Compatibility alias for maxItems." }, "maxPages": { "title": "Maximum scroll pages", "minimum": 1, "maximum": 25, "type": "integer", "description": "Maximum rendered result batches per source.", "default": 3 }, "deduplicate": { "title": "Deduplicate places", "type": "boolean", "description": "Deduplicate by public place identity.", "default": true }, "minRating": { "title": "Minimum rating", "minimum": 1, "maximum": 5, "type": "number", "description": "Optional minimum public rating." }, "minReviews": { "title": "Minimum reviews", "minimum": 0, "maximum": 10000000, "type": "integer", "description": "Optional minimum public review count." }, "categoryFilter": { "title": "Category filter", "maxLength": 200, "type": "string", "description": "Optional case-insensitive category substring." }, "includeMedia": { "title": "Include place photos", "type": "boolean", "description": "Return filtered public photo URLs.", "default": true }, "renderJavaScript": { "title": "Render JavaScript", "type": "boolean", "description": "Use regular Puppeteer browser rendering." }, "useBrowser": { "title": "Use browser (legacy alias)", "type": "boolean", "description": "Compatibility alias for renderJavaScript." }, "requestDelayMs": { "title": "Scroll delay (ms)", "minimum": 0, "maximum": 10000, "type": "integer", "description": "Bounded delay between result batches.", "default": 750 }, "maxRequestRetries": { "title": "Request retries", "minimum": 0, "maximum": 3, "type": "integer", "description": "Retries for failed public HTTP requests.", "default": 1 }, "requestTimeoutSecs": { "title": "Timeout (seconds)", "minimum": 10, "maximum": 180, "type": "integer", "description": "Navigation/request timeout." }, "requestTimeoutMs": { "title": "Timeout (milliseconds alias)", "minimum": 10000, "maximum": 180000, "type": "integer", "description": "Millisecond timeout alias." }, "maxResponseBytes": { "title": "Maximum HTTP bytes", "minimum": 10000, "maximum": 20000000, "type": "integer", "description": "Bound static response size.", "default": 5000000 }, "browserWaitMs": { "title": "Browser settle wait (ms)", "minimum": 0, "maximum": 15000, "type": "integer", "description": "Wait after navigation before parsing.", "default": 1500 }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Optional Apify Proxy configuration passed to browser transport." }, "userAgent": { "title": "User agent", "maxLength": 256, "type": "string", "description": "Optional ordinary user agent; no stealth settings." }, "locale": { "title": "Locale", "type": "string", "description": "Short locale such as en or en-US." }, "language": { "title": "Language (legacy alias)", "type": "string", "description": "Compatibility alias for locale." }, "includeDetails": { "title": "Open public details", "type": "boolean", "description": "Open identity-matched public Maps profiles for rich businessProfile fields up to maxDetailItems. Disabled by default.", "default": false }, "maxDetailItems": { "title": "Maximum detail pages", "minimum": 0, "maximum": 25, "type": "integer", "description": "Bound future detail navigation." }, "attributeTerms": { "title": "Attribute terms", "maxItems": 40, "type": "array", "description": "Compatibility extra terms for public text matching.", "items": { "type": "string", "minLength": 2, "maxLength": 200 } }, "requiredFields": { "title": "Required lead fields", "maxItems": 20, "type": "array", "description": "Fields used by gap/lead scoring.", "items": { "type": "string" } }, "brand": { "title": "Brand", "maxLength": 200, "type": "string", "description": "Brand used for chain searches." }, "chainName": { "title": "Chain name", "maxLength": 200, "type": "string", "description": "Chain-name compatibility alias." }, "keyword": { "title": "Keyword", "maxLength": 200, "type": "string", "description": "Keyword used for rank tracking." }, "similarTo": { "title": "Similar-to query", "maxLength": 200, "type": "string", "description": "Query used for transparent similarity scoring." }, "lookbackDays": { "title": "Lookback days", "minimum": 0, "maximum": 3650, "type": "integer", "description": "Observation window label for new-business runs.", "default": 30 }, "lat": { "title": "Latitude", "minimum": -90, "maximum": 90, "type": "number", "description": "Optional rank grid latitude." }, "lng": { "title": "Longitude", "minimum": -180, "maximum": 180, "type": "number", "description": "Optional rank grid longitude." }, "previousSnapshot": { "title": "Previous snapshot JSON", "type": "string", "description": "Optional JSON text containing a prior public snapshot for change comparison." }, "page": { "title": "Page", "minimum": 1, "type": "integer", "description": "One-based starting page or offset page for paginated sources.", "default": 1 }, "includeWebsiteEnrichment": { "title": "Enrich from the business website", "type": "boolean", "description": "Fetch one public website page per selected Maps business. Organization/menu data stays website-scoped; branch facts require exact Maps feature identity.", "default": false }, "maxWebsiteEnrichmentItems": { "title": "Maximum website enrichment items", "minimum": 0, "maximum": 25, "type": "integer", "description": "Maximum selected business websites to fetch. Each request has an 8-second timeout, 1.5 MB HTML bound and at most three DNS-validated redirects.", "default": 2 } } }, "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 } } } } } } } } }}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 Competitor Analysis 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: