Google Maps Business Email Scraper
Pricing
from $3.99 / 1,000 results
Go to Apify Store
Google Maps Business Email Scraper
Extract public business email evidence and rich profile fields from Google Maps.
Google Maps Business Email Scraper
Pricing
from $3.99 / 1,000 results
Extract public business email evidence and rich profile fields from Google Maps.
You can access the Google Maps Business Email 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.2", "x-build-id": "OKJY9y4pIibRUF1nV" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/googleapi~google-maps-business-email-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-googleapi-google-maps-business-email-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-business-email-scraper/runs": { "post": { "operationId": "runs-sync-googleapi-google-maps-business-email-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-business-email-scraper/run-sync": { "post": { "operationId": "run-sync-googleapi-google-maps-business-email-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", "maxItems": 50, "type": "array", "description": "Google Maps searches, such as coffee shops in Seattle.", "items": { "type": "string", "minLength": 3, "maxLength": 200 } }, "searchStringsArray": { "title": "Search queries (legacy alias)", "maxItems": 50, "type": "array", "description": "Compatibility alias for queries.", "items": { "type": "string", "minLength": 3, "maxLength": 200 } }, "searchKeywords": { "title": "Search keywords (legacy alias)", "maxItems": 50, "type": "array", "description": "Compatibility alias for queries.", "items": { "type": "string", "minLength": 3, "maxLength": 200 } }, "searchQuery": { "title": "Single search query", "maxLength": 200, "type": "string", "description": "Single-query alias for queries." }, "query": { "title": "Single search query (legacy alias)", "maxLength": 200, "type": "string", "description": "Compatibility alias for searchQuery." }, "locationQuery": { "title": "Location", "maxLength": 200, "type": "string", "description": "Optional location appended to generated search queries." }, "location": { "title": "Location (legacy alias)", "maxLength": 200, "type": "string", "description": "Compatibility alias for locationQuery." }, "startUrls": { "title": "Google Maps URLs", "maxItems": 25, "type": "array", "description": "Public Google Maps search or business profile URLs. When supplied, these replace generated queries.", "items": { "type": "object", "properties": { "url": { "title": "Public Maps URL", "description": "HTTPS search or business profile URL on Google Maps.", "type": "string" } }, "required": [ "url" ], "additionalProperties": false } }, "urls": { "title": "Google Maps URLs (legacy alias)", "maxItems": 25, "type": "array", "description": "String-list compatibility alias for startUrls.", "items": { "type": "string" } }, "page": { "title": "Starting results page", "minimum": 1, "maximum": 25, "type": "integer", "description": "One-based Google Maps result batch to start from. Earlier rendered batches are skipped when the feed permits scrolling.", "default": 1 }, "maxItems": { "title": "Maximum businesses", "minimum": 1, "maximum": 100, "type": "integer", "description": "Global maximum across all queries, pages, and start URLs.", "default": 25 }, "maxCrawledPlacesPerSearch": { "title": "Maximum businesses (legacy alias)", "minimum": 1, "maximum": 100, "type": "integer", "description": "Compatibility alias for maxItems." }, "maxPages": { "title": "Maximum result batches per URL", "minimum": 1, "maximum": 25, "type": "integer", "description": "Maximum rendered result batches to collect for each search URL after the starting page.", "default": 3 }, "deduplicate": { "title": "Deduplicate businesses", "type": "boolean", "description": "Deduplicate globally by Maps place ID, CID, knowledge graph ID, or canonical profile URL.", "default": true }, "sortBy": { "title": "Sort results", "enum": [ "recommended", "rating_desc", "reviews_desc", "name_asc" ], "type": "string", "description": "Sort the bounded result set after filtering.", "default": "recommended" }, "minRating": { "title": "Minimum rating", "minimum": 1, "maximum": 5, "type": "number", "description": "Keep businesses with a visible rating at or above this value. Records without a rating do not pass." }, "minReviews": { "title": "Minimum review count", "minimum": 0, "maximum": 10000000, "type": "integer", "description": "Keep businesses with a visible review count at or above this value." }, "categoryFilter": { "title": "Category contains", "maxLength": 200, "type": "string", "description": "Optional case-insensitive substring filter on the visible business category." }, "includeDetails": { "title": "Open business profiles", "type": "boolean", "description": "Open up to maxDetailItems public Google Maps profiles to collect hours, price range, plus code, business attributes, and other visible profile fields.", "default": false }, "maxDetailItems": { "title": "Maximum profiles to open", "minimum": 0, "maximum": 25, "type": "integer", "description": "Maximum detail profiles opened per run. This also caps optional website contact enrichment.", "default": 5 }, "includeAttributes": { "title": "Include business attributes", "type": "boolean", "description": "Include public accessibility, service, offering, dining, amenity, atmosphere, crowd, payment, and parking attributes.", "default": true }, "includeMedia": { "title": "Include business photos", "type": "boolean", "description": "Include filtered public Google-hosted business photo URLs when visible.", "default": true }, "includeWebsiteEnrichment": { "title": "Check the listed business website for public email", "type": "boolean", "description": "Optional external website fetch for public email and social links. Disabled by default.", "default": false }, "maxWebsitePagesPerPlace": { "title": "Maximum website pages per business", "minimum": 1, "maximum": 2, "type": "integer", "description": "Maximum pages on the listed business website to inspect. One page is the default; two pages may include one same-site contact page.", "default": 1 }, "websiteTimeoutMs": { "title": "Website request timeout (ms)", "minimum": 1000, "maximum": 8000, "type": "integer", "description": "Timeout for each optional public website request.", "default": 8000 }, "renderJavaScript": { "title": "Render Google Maps", "type": "boolean", "description": "Use regular headless Chromium rendering for Maps pages. Google Maps profile and result panels commonly require JavaScript.", "default": true }, "useBrowser": { "title": "Render Google Maps (legacy alias)", "type": "boolean", "description": "Compatibility alias for renderJavaScript." }, "requestDelayMs": { "title": "Delay between pages (ms)", "minimum": 0, "maximum": 10000, "type": "integer", "description": "Bounded pause between Maps pages and profile navigations.", "default": 750 }, "maxRequestRetries": { "title": "HTTP retries", "minimum": 0, "maximum": 3, "type": "integer", "description": "Finite retries for transient direct HTTP failures. Access challenges are not retried.", "default": 1 }, "requestTimeoutSecs": { "title": "Page timeout (seconds)", "minimum": 10, "maximum": 180, "type": "integer", "description": "Navigation and HTTP timeout.", "default": 60 }, "requestTimeoutMs": { "title": "Page timeout (milliseconds alias)", "minimum": 10000, "maximum": 180000, "type": "integer", "description": "Compatibility alias for requestTimeoutSecs in milliseconds." }, "browserWaitMs": { "title": "Browser settle wait (ms)", "minimum": 0, "maximum": 15000, "type": "integer", "description": "Bounded wait after a Maps page opens.", "default": 1500 }, "maxResponseBytes": { "title": "Maximum HTTP response bytes", "minimum": 10000, "maximum": 20000000, "type": "integer", "description": "Maximum direct HTTP response size.", "default": 5000000 }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Optional Apify Proxy for the browser transport. Proxy use may incur charges; no proxy is configured by default." }, "locale": { "title": "Locale", "type": "string", "description": "Maps page language, such as en or en-US.", "default": "en" }, "language": { "title": "Language (legacy alias)", "type": "string", "description": "Compatibility alias for locale." } } }, "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 Business Email 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: