{
  "openapi": "3.0.1",
  "info": {
    "title": "No-Website Business Leads Scraper (Google Maps)",
    "description": "Find businesses with weak or missing websites anywhere on Google Maps. Each lead is qualified on real web-presence signals, priority-ranked, and comes with contact details, ready for web designers, developers, and agencies to pitch.",
    "version": "0.3",
    "x-build-id": "JavjQHoyUrW0ZEjR0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/leafy-dev-jr~no-website-business-leads-scraper-google-maps/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-leafy-dev-jr-no-website-business-leads-scraper-google-maps",
        "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/leafy-dev-jr~no-website-business-leads-scraper-google-maps/runs": {
      "post": {
        "operationId": "runs-sync-leafy-dev-jr-no-website-business-leads-scraper-google-maps",
        "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/leafy-dev-jr~no-website-business-leads-scraper-google-maps/run-sync": {
      "post": {
        "operationId": "run-sync-leafy-dev-jr-no-website-business-leads-scraper-google-maps",
        "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": [
          "country"
        ],
        "properties": {
          "businessTypes": {
            "title": "Business types",
            "type": "array",
            "description": "What kind of business to search for. Add one business type per entry: leave it at one entry to search a single type, or click '+ Add' to search several at once. Each entry runs as its own Google Maps search, then results are merged and de-duplicated so every unique business is audited only once. Examples: 'coffee shops', 'plumbers', 'hair salons'. Tip: 'Max results' applies to each entry, so several types multiply the total listings scanned before de-dup. Max 20 entries.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "PH",
              "IN",
              "IE",
              "NZ",
              "SG",
              "AE",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "BR",
              "MX",
              "JP",
              "ZA",
              "AD",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BS",
              "BT",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CR",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ET",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "GA",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "ID",
              "IL",
              "IM",
              "IO",
              "IQ",
              "IR",
              "IS",
              "JE",
              "JM",
              "JO",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NO",
              "NP",
              "NR",
              "NU",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UM",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "XK",
              "YE",
              "YT",
              "ZM",
              "ZW"
            ],
            "type": "string",
            "description": "Country to search in. Its name is added to every search, and it is the country used if a residential proxy is auto-enabled. Pick from the list (start typing to filter). Use the country, not a state: for Florida choose United States, then put 'Tampa FL' in the Locations field.",
            "default": "US"
          },
          "locations": {
            "title": "Locations (Area, City)",
            "type": "array",
            "description": "Put each place in the format: Area, City. Example: 'Seminole Heights, Tampa FL'. One place per entry. Click '+ Add' to search several at once.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results per type & location",
            "minimum": 1,
            "maximum": 120,
            "type": "integer",
            "description": "Cap for EACH search, where one search = one business type in one location. So it multiplies across the matrix: 2 types × 3 locations × 10 = up to 60 before de-dup (1 type × 2 locations × 10 = up to 20). Google Maps caps each search area at about 120 results, so add more specific places in Locations to go deeper than that.",
            "default": 10
          },
          "onlyNoOrWeakWebsite": {
            "title": "Only businesses with no or weak website",
            "type": "boolean",
            "description": "When on, the output keeps only businesses worth pitching: no website, a social-only or directory-only link, or a site that is outdated or unreachable (HIGH and MEDIUM priority). Businesses with a healthy, modern site (LOW) are skipped. Off by default, so you get every business. Note: every business is still scraped and audited; this only filters what is saved to the dataset.",
            "default": false
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only businesses rated at least this many stars (1 to 5). Leave blank to keep every rating. A business with no rating yet is dropped when this is set."
          },
          "minReviews": {
            "title": "Minimum reviews",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only businesses with at least this many reviews. Leave blank to keep every business. A business with no reviews yet is dropped when this is set."
          },
          "requirePhone": {
            "title": "Require a phone number",
            "type": "boolean",
            "description": "Keep only businesses that list a phone number on Google Maps. Off by default.",
            "default": false
          },
          "pageSpeedApiKey": {
            "title": "Google PageSpeed Insights API key (optional)",
            "type": "string",
            "description": "Optional. A free Google API key that adds a real performance score to each site. Get one at console.cloud.google.com: enable the PageSpeed Insights API, then create an API key (free tier is 25,000 requests/day). If left blank, the performance score is skipped and every other signal still works."
          },
          "maxConcurrency": {
            "title": "Max concurrent website checks",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Advanced. How many business websites to audit in parallel. The default is fine for most runs; keep it low (3 to 5) to avoid rate limiting and PageSpeed quota errors.",
            "default": 5
          },
          "mapsConcurrency": {
            "title": "Max concurrent Google Maps place pages",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Advanced. How many Google Maps detail pages to open in parallel. Higher is faster but needs more CPU. If you raise this, also raise the run's Memory (in Options), since CPU scales with memory; otherwise the extra parallelism is throttled back.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}