{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Lead Scraper: Emails, Phones & Socials",
    "description": "Extract verified emails, phones, and social profiles from Google Maps businesses. High email hit rate with deep multi-page extraction. Built-in SMTP verification. Finds hidden and protected emails. Lightweight, fast, and cost-effective.",
    "version": "1.0",
    "x-build-id": "cN1u3EtmyIpEfj7Bd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vaunted~google-maps-lead-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vaunted-google-maps-lead-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/vaunted~google-maps-lead-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vaunted-google-maps-lead-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/vaunted~google-maps-lead-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vaunted-google-maps-lead-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": {
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "What types of businesses are you looking for? Enter keywords like 'dentist', 'restaurant', 'plumber', etc. Each query runs against every location you specify.\n\nUse distinct terms for best results. Similar terms (e.g., 'bar' vs 'pub') may slightly increase capture rate but are less efficient.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Google Maps URLs",
            "type": "array",
            "description": "Paste Google Maps search URLs directly instead of (or in addition to) search queries. Supports formats like:\n• google.com/maps/search/restaurants/@40.7,-74.0,13z\n• google.com/maps/place/Business+Name/...\n• maps.google.com/maps?q=dentist+miami\n\nUseful for replicating an exact Google Maps search you already have open.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Where should we search? Enter cities, areas, or regions. Each search query runs against every location listed here.\n\nWorks worldwide — 'Miami, FL', 'London, UK', 'Tokyo, Japan', etc.\n\nFor precise results, use 'City, Country' format.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "",
              "us",
              "gb",
              "ca",
              "au",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "pt",
              "br",
              "mx",
              "ar",
              "cl",
              "co",
              "pe",
              "in",
              "jp",
              "kr",
              "cn",
              "tw",
              "hk",
              "sg",
              "my",
              "th",
              "ph",
              "id",
              "vn",
              "ae",
              "sa",
              "qa",
              "kw",
              "il",
              "tr",
              "eg",
              "za",
              "ng",
              "ke",
              "gh",
              "se",
              "no",
              "dk",
              "fi",
              "pl",
              "cz",
              "at",
              "ch",
              "be",
              "ie",
              "nz",
              "ru",
              "ua",
              "ro",
              "hu",
              "gr",
              "bg",
              "hr",
              "rs",
              "sk",
              "si"
            ],
            "type": "string",
            "description": "Narrow results to a specific country. Helps when your location text is ambiguous (e.g., 'Portland' exists in both Oregon and Maine).",
            "default": ""
          },
          "state": {
            "title": "State / Province",
            "type": "string",
            "description": "Optionally set a state or province for tighter results (e.g., 'California', 'Ontario', 'Bavaria'). Mainly useful for US, Canada, and Australia.",
            "default": ""
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Enter a city name for area targeting. Use this instead of or alongside the Locations field for more precise definition.\n\nDo not include state or country names here — use the separate fields.",
            "default": ""
          },
          "postalCode": {
            "title": "Postal / ZIP Code",
            "type": "string",
            "description": "Target a specific postal code area. Combine with Country for best results. Only one postal code per run.\n\nUse with Country, not with City.",
            "default": ""
          },
          "maxResultsPerSearch": {
            "title": "Max Results Per Search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many businesses to find per search query + location combination. Google Maps typically returns 20-120 results depending on the area and business type. Smaller or more niche markets may have fewer total listings.\n\nStart with the default and increase only if you need more coverage.",
            "default": 80
          },
          "onlyWithEmails": {
            "title": "Only Output Businesses With Emails",
            "type": "boolean",
            "description": "Only include businesses where at least one email was found. Keeps your export clean and ready for outreach.",
            "default": false
          },
          "onlyWithWebsite": {
            "title": "Website Availability Filter",
            "enum": [
              "all",
              "withWebsite",
              "withoutWebsite"
            ],
            "type": "string",
            "description": "Filter businesses by whether they have a website listed on Google Maps. 'With website' is recommended for email extraction since businesses without websites won't have extractable emails.",
            "default": "all"
          },
          "categoryFilter": {
            "title": "Category Filter",
            "type": "array",
            "description": "Only include places matching these Google Maps categories. Leave empty to include all.\n\nGoogle Maps has thousands of categories. Be broad — 'restaurant' will match 'Chinese restaurant', 'Italian restaurant', etc.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Minimum Star Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only include businesses rated this high or above. Set to 0 to include all. Places without reviews are included unless this is set above 0.",
            "default": 0
          },
          "skipClosedPlaces": {
            "title": "Skip Permanently Closed Places",
            "type": "boolean",
            "description": "Exclude businesses marked as temporarily or permanently closed on Google Maps.",
            "default": true
          },
          "emailVerification": {
            "title": "Verify Emails (SMTP)",
            "type": "boolean",
            "description": "Check that each email actually exists by verifying it directly with the mail server. Highly recommended — removes invalid and outdated addresses before they reach your list.",
            "default": true
          },
          "deepSearch": {
            "title": "Deep Email Search",
            "type": "boolean",
            "description": "Scan beyond the homepage for emails. Many businesses only list their email on the Contact or About page. Keep this ON for the best hit rate.",
            "default": true
          },
          "maxPagesPerSite": {
            "title": "Max Pages Per Website",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many pages to scan per business website (the homepage is always included). Higher = more thorough, slightly slower.",
            "default": 5
          },
          "extractSocials": {
            "title": "Extract Social Media Profiles",
            "type": "boolean",
            "description": "Find Facebook, Instagram, LinkedIn, Twitter/X, YouTube, TikTok, and Pinterest profiles from business websites.",
            "default": true
          },
          "language": {
            "title": "Results Language",
            "enum": [
              "en",
              "af",
              "az",
              "id",
              "ms",
              "bs",
              "ca",
              "cs",
              "da",
              "de",
              "et",
              "es",
              "es-419",
              "eu",
              "fil",
              "fr",
              "gl",
              "hr",
              "zu",
              "is",
              "it",
              "sw",
              "lv",
              "lt",
              "hu",
              "nl",
              "no",
              "uz",
              "pl",
              "pt-BR",
              "pt-PT",
              "ro",
              "sq",
              "sk",
              "sl",
              "fi",
              "sv",
              "vi",
              "tr",
              "el",
              "bg",
              "ky",
              "kk",
              "mk",
              "mn",
              "ru",
              "sr",
              "uk",
              "ka",
              "hy",
              "iw",
              "ur",
              "ar",
              "fa",
              "am",
              "ne",
              "hi",
              "mr",
              "bn",
              "pa",
              "gu",
              "ta",
              "te",
              "kn",
              "ml",
              "si",
              "th",
              "lo",
              "my",
              "km",
              "ko",
              "ja",
              "zh-CN",
              "zh-TW"
            ],
            "type": "string",
            "description": "Language for Google Maps results. Affects business descriptions and categories — emails and contact info are not affected.",
            "default": "en"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Residential proxies are pre-configured and recommended — no changes needed for most users."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}