{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Email & Social Leads Scraper",
    "description": "Search Google Maps by keyword and location, then scan each business website for public emails, phone links and Facebook, Instagram, LinkedIn, X, YouTube and TikTok profiles. One flat lead row per business.",
    "version": "0.1",
    "x-build-id": "JkZpmWWnMfCv3RbeS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation-lab~google-maps-business-website-email-and-social-contact-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation-lab-google-maps-business-website-email-and-social-contact-leads",
        "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/automation-lab~google-maps-business-website-email-and-social-contact-leads/runs": {
      "post": {
        "operationId": "runs-sync-automation-lab-google-maps-business-website-email-and-social-contact-leads",
        "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/automation-lab~google-maps-business-website-email-and-social-contact-leads/run-sync": {
      "post": {
        "operationId": "run-sync-automation-lab-google-maps-business-website-email-and-social-contact-leads",
        "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": [
          "searchStringsArray"
        ],
        "properties": {
          "searchStringsArray": {
            "title": "Search terms",
            "type": "array",
            "description": "Business keywords or categories to search on Google Maps, for example \"dentist\", \"roofing contractor\" or \"coffee shop\". 1–50 nonempty strings of at most 150 characters; trimmed, whitespace-normalized and deduplicated. Google decides relevance, so results are related businesses, not exact-name matches. If you also enter locations, every search term is combined with every location (at most 50 combinations).",
            "items": {
              "type": "string"
            }
          },
          "locationQueries": {
            "title": "Locations",
            "type": "array",
            "description": "Optional cities, regions or neighborhoods, for example \"Austin, TX\" or \"Berlin Mitte\". Each location is appended to each search term as search text (\"dentist Austin, TX\"); it is not a strict map boundary, so Google can include nearby places. Leave empty to put the location inside the search term yourself.",
            "items": {
              "type": "string"
            }
          },
          "maxPlacesPerSearch": {
            "title": "Maximum leads per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum leads saved for each search term × location combination, after filters and deduplication. Google Maps usually lists up to about 120–200 places for one search; for more leads, split the area into smaller locations. Fewer results are normal for narrow searches.",
            "default": 20
          },
          "maxItems": {
            "title": "Maximum leads per run",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Global cap on saved leads across all searches. Searches run in input order (each term with each location) and the run stops once this many leads are saved. Your maximum charge per run setting can stop the run earlier.",
            "default": 100
          },
          "onlyWithWebsite": {
            "title": "Only places with a website",
            "type": "boolean",
            "description": "When on (default), places without a website on Google Maps are skipped and not charged. Turn off to also save places that only have a phone number and address; those rows have websiteStatus \"no_website\" and no emails or social links.",
            "default": true
          },
          "onlyWithEmail": {
            "title": "Only leads with an email",
            "type": "boolean",
            "description": "When on, a lead is saved and charged only if at least one email was found on its website. Websites are still visited for every place with a website, so runs with this filter take longer per saved lead. A search where fewer than 1 in 15 visited websites has an email stops after 40 visits, and the whole run stops the same way after 100 visits.",
            "default": false
          },
          "minRating": {
            "title": "Minimum Google rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Optional. Skip places whose Google star rating is below this value (for example 4). Places without any rating are also skipped when this is set. Leave empty or 0 for no rating filter."
          },
          "maxPagesPerWebsite": {
            "title": "Pages to scan per website",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many pages of each business website to read: the homepage plus up to this many minus one same-site pages whose links look like contact, imprint, about or team pages. 1 reads the homepage only (fastest). Each page is limited to 1.5 MB and 12 seconds.",
            "default": 3
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google interface language code for category names and addresses, for example en, de, es, fr or pt-BR.",
            "default": "en"
          },
          "countryCode": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter Google region code used as search context, for example us, gb, de or ca. It does not restrict results to that country; put the city or country in Locations for that.",
            "default": "us"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}