{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Email Extractor & Lead Finder",
    "description": "Find Google Maps business leads by keyword and location. Export available phones, websites, ratings and review counts, with optional website email enrichment.",
    "version": "0.1",
    "x-build-id": "XCqW6MjPsYFV59Jm2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetch_cat~google-maps-lead-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetch_cat-google-maps-lead-finder",
        "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/fetch_cat~google-maps-lead-finder/runs": {
      "post": {
        "operationId": "runs-sync-fetch_cat-google-maps-lead-finder",
        "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/fetch_cat~google-maps-lead-finder/run-sync": {
      "post": {
        "operationId": "run-sync-fetch_cat-google-maps-lead-finder",
        "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",
        "required": [
          "searchQueries"
        ],
        "properties": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Business keywords to search on Google Maps (e.g., \"plumber\", \"dentist Berlin\"). Each query becomes a separate Maps search.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Optional city or region names (e.g., \"Chicago, IL\", \"Berlin, Germany\"). When set, each query is combined with each location for comprehensive geographic coverage.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "de",
              "es",
              "fr",
              "it",
              "pt",
              "nl",
              "pl",
              "ru",
              "ja",
              "ko",
              "zh",
              "ar",
              "tr"
            ],
            "type": "string",
            "description": "Language for Google Maps results. Controls the language of returned business names, categories, and addresses.",
            "default": "en"
          },
          "countryCode": {
            "title": "Country code",
            "enum": [
              "US",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "PT",
              "NL",
              "PL",
              "AU",
              "CA",
              "BR",
              "MX",
              "JP",
              "KR",
              "IN",
              "RU",
              "TR",
              "AE"
            ],
            "type": "string",
            "description": "Country targeting for Google search (gl parameter). Helps return results relevant to the selected country.",
            "default": "US"
          },
          "requireEmail": {
            "title": "Require email",
            "type": "boolean",
            "description": "Only save businesses with a discovered email. Enable website enrichment explicitly to look for website emails; an explicit enrichment opt-out is respected and may leave no matching leads.",
            "default": false
          },
          "verifyEmails": {
            "title": "Verify emails",
            "type": "boolean",
            "description": "Attempt verification of each saved lead's discovered email and add emailVerification results when available. Each attempt triggers the email-verified charge shown in the Pricing tab, including inconclusive attempts. This does not filter out leads or guarantee delivery.",
            "default": false
          },
          "maxLeads": {
            "title": "Max leads",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of unique leads to return. Lower values reduce cost and run time. Each lead triggers a pay-per-event charge.",
            "default": 100
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Only include businesses with at least this Google rating (1.0–5.0). Leave empty to include all."
          },
          "requireWebsite": {
            "title": "Require website",
            "type": "boolean",
            "description": "Only include businesses that have a website URL listed on Google Maps.",
            "default": false
          },
          "includeWebsiteEnrichment": {
            "title": "Include website enrichment",
            "type": "boolean",
            "description": "Check the business homepage for published emails and social links; if no email is found, try up to three relevant internal pages. Missing contacts remain empty. Defaults to true when omitted, but the form prefills false. Explicit false is respected even when Require email is enabled.",
            "default": true
          },
          "enrichmentTimeoutSecs": {
            "title": "Enrichment timeout (secs)",
            "minimum": 5,
            "maximum": 45,
            "type": "integer",
            "description": "Per-page request timeout for business website enrichment, from 5 to 45 seconds. This is not a total per-business or run deadline. Omitted input defaults to 15 seconds; the form prefills 12.",
            "default": 15
          },
          "verificationLevel": {
            "title": "Verification level",
            "enum": [
              "format",
              "mx",
              "smtp"
            ],
            "type": "string",
            "description": "Verification depth when Verify emails is enabled: format checks syntax, mx adds DNS mail-server checks, and smtp attempts a mailbox handshake. Catch-all domains and blocked servers can be inconclusive. Every requested attempt uses the email-verified event, including format checks. See the Pricing tab.",
            "default": "mx"
          },
          "dedupeStrategy": {
            "title": "Dedupe strategy",
            "enum": [
              "placeId",
              "placeIdAndAddress"
            ],
            "type": "string",
            "description": "Identify duplicates within the current run. placeId uses the available place identifier (or name/address fallback). placeIdAndAddress combines that identifier with the normalized address, so different addresses can remain separate. Does not deduplicate across prior runs.",
            "default": "placeIdAndAddress"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Configure Maps requests with Apify-managed or customer-supplied proxy settings. When omitted, the Actor requests the existing managed configuration with the selected country; the form prefills useApifyProxy: true. Explicit settings are passed through, including custom proxy URLs, managed groups/country and useApifyProxy: false. If proxy setup is unavailable or rejected, the existing behavior continues without a proxy, not with a new paid fallback. Website enrichment uses direct requests. Managed proxy usage may incur Apify charges; no setting guarantees access."
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Enable verbose logging for troubleshooting. Shows detailed parser diagnostics in the run log.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}