{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper - Leads, Phones & Emails ($0.75/1K)",
    "description": "Cheap Google Maps scraper for local business leads: names, phones, websites, emails and social links, ratings, reviews, hours, addresses and coordinates. $0.75 per 1,000 places with website email enrichment included. Many cities per run, only-new-places mode, lead flags. No login.",
    "version": "0.1",
    "x-build-id": "zjmLr7IlKqa2gsEjO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/generous_fog~cracks-google-maps-business-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-generous_fog-cracks-google-maps-business-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/generous_fog~cracks-google-maps-business-scraper/runs": {
      "post": {
        "operationId": "runs-sync-generous_fog-cracks-google-maps-business-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/generous_fog~cracks-google-maps-business-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-generous_fog-cracks-google-maps-business-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": "Business types or keywords, e.g. \"dentist\" or \"dentist in Jaipur\". If a query already names the location, it is not added twice.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Optional city, region, or country added to every search query, e.g. \"Jaipur, Rajasthan, India\". Leave empty if your queries already include a place, e.g. \"dentist in Jaipur\"."
          },
          "locations": {
            "title": "Extra locations",
            "type": "array",
            "description": "Optional extra cities, areas, or postal codes. Every search query runs in every location (up to 100 combinations). Use this to go beyond the roughly 120 results Google Maps shows per search, for example several neighborhoods of one city.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Google Maps URLs",
            "type": "array",
            "description": "Optional Google Maps search or place URLs.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL",
                  "description": "Google Maps place, search, or share URL."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "placeIds": {
            "title": "Google Place IDs",
            "type": "array",
            "description": "Optional Google Place IDs, such as ChIJ...",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerQuery": {
            "title": "Maximum results per query or URL",
            "minimum": 1,
            "maximum": 120,
            "type": "integer",
            "description": "Google Maps normally exposes up to about 120 search results per query.",
            "default": 20
          },
          "onlyNewPlaces": {
            "title": "Only new places (monitoring mode)",
            "type": "boolean",
            "description": "Skip places this monitor already saved in earlier runs. Skipped places are not saved and not charged. Ideal for scheduled lead lists.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name for the only-new-places memory. Use a different name per lead list (for example \"jaipur-dentists\"). Stored in your own Apify account.",
            "default": "default"
          },
          "language": {
            "title": "Result language",
            "type": "string",
            "description": "Two-letter Google Maps language code.",
            "default": "en"
          },
          "countryCode": {
            "title": "Country code",
            "type": "string",
            "description": "Optional two-letter Google region code (e.g. in, us, gb) to localize ranking. Leave empty for automatic. It never overrides the real country of a place.",
            "default": ""
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Only keep places with at least this Google rating."
          },
          "websiteFilter": {
            "title": "Website filter",
            "enum": [
              "all",
              "hasWebsite",
              "noWebsite"
            ],
            "type": "string",
            "description": "Return all places, only places with a website, or only places without one.",
            "default": "all"
          },
          "openStatusFilter": {
            "title": "Open status filter",
            "enum": [
              "all",
              "openNow",
              "closed",
              "permanentlyClosed"
            ],
            "type": "string",
            "description": "Filter by the currently reported business status.",
            "default": "all"
          },
          "categoryIncludes": {
            "title": "Category includes",
            "type": "array",
            "description": "Keep a place when any category contains one of these terms.",
            "items": {
              "type": "string"
            }
          },
          "deduplicate": {
            "title": "Deduplicate places",
            "type": "boolean",
            "description": "Deduplicate by Place ID, feature ID, CID, or Maps URL.",
            "default": true
          },
          "enrichWebsiteContacts": {
            "title": "Enrich website contacts",
            "type": "boolean",
            "description": "On by default. Visits each business website (homepage plus contact/about pages) to collect public emails and social links. Included in the price. Turn off for faster runs if you only need Maps data.",
            "default": true
          },
          "maxWebsitePages": {
            "title": "Maximum website pages",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Homepage plus likely contact/about pages to inspect per website.",
            "default": 3
          },
          "includeLeadFlags": {
            "title": "Include agency lead flags",
            "type": "boolean",
            "description": "Calculate transparent lead flags and a lead-opportunity score.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The Actor connects directly (fastest and cheapest) and switches to Apify Proxy automatically if Google rate-limits it. Set a proxy here only if you want to force one."
          },
          "includeFullDetails": {
            "title": "Include full place details",
            "type": "boolean",
            "description": "Fetch each place detail payload for fuller review counts, weekly hours, address metadata, description, and Plus Code.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}