{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Lead Extractor",
    "description": "Extract Google Maps places, leads, business details, and reviews from search terms or listing URLs. Start with fast\n  local search, generate scored business leads, and optionally enrich results with contact details, websites, emails,\n  and web results.",
    "version": "0.1",
    "x-build-id": "B5yRMXeEBLhixCPZp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlio~google-maps-lead-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlio-google-maps-lead-extractor",
        "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/crawlio~google-maps-lead-extractor/runs": {
      "post": {
        "operationId": "runs-sync-crawlio-google-maps-lead-extractor",
        "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/crawlio~google-maps-lead-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-crawlio-google-maps-lead-extractor",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "lead_generation",
              "details",
              "reviews"
            ],
            "type": "string",
            "description": "Choose the extraction profile. Search is cheapest.",
            "default": "search"
          },
          "search": {
            "title": "Search input",
            "type": "object",
            "description": "Configure settings for search.",
            "properties": {
              "searchTerms": {
                "title": "Search terms",
                "type": "array",
                "description": "Business categories or keywords (e.g. dentist, plumber).",
                "default": [
                  "dentist"
                ],
                "editor": "stringList",
                "items": {
                  "type": "string"
                }
              },
              "locations": {
                "title": "Locations",
                "type": "array",
                "description": "Locations to combine with search terms (e.g. Jackson Heights NY).",
                "default": [
                  "Jackson Heights NY"
                ],
                "editor": "stringList",
                "items": {
                  "type": "string"
                }
              },
              "numberOfPlaces": {
                "title": "Number of places",
                "type": "integer",
                "description": "Maximum places to extract per query.",
                "default": 20,
                "minimum": 1,
                "maximum": 200,
                "editor": "number"
              }
            },
            "default": {
              "searchTerms": [
                "dentist"
              ],
              "locations": [
                "Jackson Heights NY"
              ],
              "numberOfPlaces": 20
            },
            "additionalProperties": false
          },
          "lead_generation": {
            "title": "Lead generation input",
            "type": "object",
            "description": "Configure settings for local business leads.",
            "properties": {
              "placeInput": {
                "title": "Google Maps URL or place ID (Optional)",
                "type": "string",
                "description": "Skip searching and directly target a Google Maps URL, hex place ID, or ChIJ place ID.",
                "default": "",
                "editor": "textfield"
              },
              "searchTerms": {
                "title": "Search terms",
                "type": "array",
                "description": "Business categories or keywords.",
                "default": [
                  "dentist"
                ],
                "editor": "stringList",
                "items": {
                  "type": "string"
                }
              },
              "locations": {
                "title": "Locations",
                "type": "array",
                "description": "Locations to combine with search terms.",
                "default": [
                  "Jackson Heights NY"
                ],
                "editor": "stringList",
                "items": {
                  "type": "string"
                }
              },
              "numberOfPlaces": {
                "title": "Number of places",
                "type": "integer",
                "description": "Maximum places per query.",
                "default": 20,
                "minimum": 1,
                "maximum": 200,
                "editor": "number"
              },
              "enrichDetails": {
                "title": "Enrich details",
                "type": "boolean",
                "description": "Fetch full Google Maps detail data for lead generation.",
                "default": false,
                "editor": "checkbox"
              },
              "enrichWebsites": {
                "title": "Enrich websites",
                "type": "boolean",
                "description": "Fetch business websites for emails and contact pages. Slower.",
                "default": false,
                "editor": "checkbox"
              },
              "enrichGoogleWebResults": {
                "title": "Enrich Google web results",
                "type": "boolean",
                "description": "Collect Google web result cards shown under the Maps listing. Slower.",
                "default": false,
                "editor": "checkbox"
              },
              "maxReviews": {
                "title": "Maximum reviews",
                "type": "integer",
                "description": "Maximum reviews to fetch per place.",
                "default": 20,
                "minimum": 0,
                "maximum": 1000,
                "editor": "number"
              }
            },
            "default": {
              "placeInput": "",
              "searchTerms": [
                "dentist"
              ],
              "locations": [
                "Jackson Heights NY"
              ],
              "numberOfPlaces": 20,
              "enrichDetails": false,
              "enrichWebsites": false,
              "enrichGoogleWebResults": false,
              "maxReviews": 20
            },
            "additionalProperties": false
          },
          "details": {
            "title": "Business details input",
            "type": "object",
            "description": "Configure settings for single business details.",
            "properties": {
              "placeInput": {
                "title": "Google Maps URL or place ID",
                "type": "string",
                "description": "Google Maps URL, hex place ID, or ChIJ place ID.",
                "default": "https://www.google.com/maps/place/ChIJN1t_tDeuEmsRUsoyG83frY4",
                "editor": "textfield"
              }
            },
            "additionalProperties": false
          },
          "reviews": {
            "title": "Reviews input",
            "type": "object",
            "description": "Configure settings for scraping reviews.",
            "properties": {
              "placeInput": {
                "title": "Google Maps URL or place ID",
                "type": "string",
                "description": "Google Maps URL, hex place ID, or ChIJ place ID.",
                "default": "https://www.google.com/maps/place/ChIJN1t_tDeuEmsRUsoyG83frY4",
                "editor": "textfield"
              },
              "maxReviews": {
                "title": "Maximum reviews",
                "type": "integer",
                "description": "Maximum reviews to fetch.",
                "default": 20,
                "minimum": 1,
                "maximum": 1000,
                "editor": "number"
              },
              "sortBy": {
                "title": "Review sort",
                "type": "string",
                "description": "Review sorting mode.",
                "default": "newest",
                "enum": [
                  "newest",
                  "relevant",
                  "highest_rating",
                  "lowest_rating"
                ],
                "editor": "select"
              }
            },
            "additionalProperties": false
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google language.",
            "default": "English"
          },
          "gl": {
            "title": "Country code",
            "type": "string",
            "description": "Google country code.",
            "default": "us"
          },
          "minScore": {
            "title": "Minimum lead score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Filter leads below this score (0-100). Applies to lead generation.",
            "default": 0
          },
          "maxWorkers": {
            "title": "Max workers",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Parallel workers for lead generation only. Higher values may be faster but can increase Google blocking or proxy usage.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}