{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Business Lead Finder with Email & Social Links",
    "description": "Search Google Maps by business type and location and get back listing details enriched with email addresses and social profiles pulled from each business's own website.",
    "version": "1.0",
    "x-build-id": "vbOJFIlsVgFGizez8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vexaloom-labs~google-maps-business-lead-finder-with-email/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vexaloom-labs-google-maps-business-lead-finder-with-email",
        "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/vexaloom-labs~google-maps-business-lead-finder-with-email/runs": {
      "post": {
        "operationId": "runs-sync-vexaloom-labs-google-maps-business-lead-finder-with-email",
        "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/vexaloom-labs~google-maps-business-lead-finder-with-email/run-sync": {
      "post": {
        "operationId": "run-sync-vexaloom-labs-google-maps-business-lead-finder-with-email",
        "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": "What do you want to do?",
            "enum": [
              "searchPlaces",
              "enrichWebsites",
              "specificPlaces"
            ],
            "type": "string",
            "description": "Choose how to find businesses. Search Google Maps by phrase, enrich a list of websites you already have, or look up specific Google Maps places.",
            "default": "searchPlaces"
          },
          "searchQueries": {
            "title": "Search phrases",
            "minItems": 1,
            "type": "array",
            "description": "Natural-language searches such as 'coffee shops in Austin TX' or 'plumbers near Chicago'. Include the place in the phrase, or use the location field below. Each phrase is searched separately.",
            "items": {
              "type": "string"
            }
          },
          "locationQuery": {
            "title": "Location (optional)",
            "type": "string",
            "description": "Adds a shared location to every search phrase, for example 'Austin, TX, USA'. Leave empty when your phrases already contain the place."
          },
          "websites": {
            "title": "Business websites",
            "type": "array",
            "description": "Websites to extract contacts from, one per line. Bare domains such as 'example.com' are accepted.",
            "items": {
              "type": "string"
            }
          },
          "placeUrls": {
            "title": "Google Maps place URLs",
            "type": "array",
            "description": "Google Maps place links, copied from the address bar or from a previous export.",
            "items": {
              "type": "string"
            }
          },
          "placeIds": {
            "title": "Google Place IDs",
            "type": "array",
            "description": "Canonical Google Place IDs starting with 'ChIJ'.",
            "items": {
              "type": "string"
            }
          },
          "maxPlacesPerSearch": {
            "title": "Businesses per search phrase",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum businesses to keep for each search phrase. Google returns a ranked window of roughly 160-220 places per phrase; asking for more simply returns what the source has.",
            "default": 20
          },
          "language": {
            "title": "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",
              "zh",
              "pt"
            ],
            "type": "string",
            "description": "Language of the Google Maps interface and listing text.",
            "default": "en"
          },
          "extractEmailsFromWebsite": {
            "title": "Find emails, phones and social profiles on the business website",
            "type": "boolean",
            "description": "Visit each business website to collect contact details. Disable for a faster run with Google Maps data only.",
            "default": true
          },
          "maxEmailsPerWebsite": {
            "title": "Emails per website",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum email addresses to keep for one business website.",
            "default": 5
          },
          "maxContactPagesPerWebsite": {
            "title": "Pages checked per website",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many pages to read on each website: the homepage plus contact, about, legal, privacy or careers pages. More pages find more contacts but take longer.",
            "default": 3
          },
          "onlySaveResults": {
            "title": "Which places to save",
            "enum": [
              "allPlaces",
              "onlyWithEmails",
              "onlyWithContacts"
            ],
            "type": "string",
            "description": "Save every business, only businesses where an email was found, or only businesses with any contact detail (email, website phone or social profile).",
            "default": "allPlaces"
          },
          "placeMinimumStars": {
            "title": "Minimum rating",
            "enum": [
              "",
              "two",
              "twoAndHalf",
              "three",
              "threeAndHalf",
              "four",
              "fourAndHalf"
            ],
            "type": "string",
            "description": "Keep only businesses rated at least this high. Places without a rating are left out when a minimum is set.",
            "default": ""
          },
          "categoryFilter": {
            "title": "Category filter words",
            "type": "array",
            "description": "Keep places whose Google Maps category contains all words of at least one entry, for example 'coffee' or 'italian restaur'. Leave empty for no category filter.",
            "items": {
              "type": "string"
            }
          },
          "websiteFilter": {
            "title": "Website filter",
            "enum": [
              "allPlaces",
              "withWebsite",
              "withoutWebsite"
            ],
            "type": "string",
            "description": "Keep all places, only places with a website, or only places without one.",
            "default": "allPlaces"
          },
          "skipClosedPlaces": {
            "title": "Skip permanently or temporarily closed places",
            "type": "boolean",
            "description": "Check each place's public status and leave out businesses marked closed. This adds one small request per place.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}