{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper - Find Businesses Without Websites",
    "description": "Find local businesses without websites on Google Maps. Perfect for lead generation, web agencies, and digital marketing. Extract contact info for businesses that need websites. Smart filtering by rating and reviews.",
    "version": "0.1",
    "x-build-id": "AYjTYso4kz8dHjCXS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/code-node-tools~google-maps-businesses-without-websites/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-code-node-tools-google-maps-businesses-without-websites",
        "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/code-node-tools~google-maps-businesses-without-websites/runs": {
      "post": {
        "operationId": "runs-sync-code-node-tools-google-maps-businesses-without-websites",
        "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/code-node-tools~google-maps-businesses-without-websites/run-sync": {
      "post": {
        "operationId": "run-sync-code-node-tools-google-maps-businesses-without-websites",
        "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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search Queries",
            "type": "array",
            "description": "List of search queries (e.g. 'plumbers in Austin TX', 'dentists in Miami')",
            "items": {
              "type": "string"
            }
          },
          "searchMode": {
            "title": "Search Mode",
            "enum": [
              "maxPlaces",
              "targetQualified"
            ],
            "type": "string",
            "description": "Choose how to control scraping per query. 'maxPlaces' = stop after checking X places (predictable cost). 'targetQualified' = keep searching until X qualified businesses found (variable cost).",
            "default": "maxPlaces"
          },
          "maxPlacesPerQuery": {
            "title": "Max Places Per Query",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of places to check per query (ONLY applies to maxPlaces mode). In targetQualified mode, search continues until target reached or Google exhausts results. Default is 100.",
            "default": 80
          },
          "targetQualified": {
            "title": "Target Qualified Businesses",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Target number of qualified businesses (without websites) to find per query (applies when searchMode='targetQualified'). Search will auto-expand until this target is reached or Google Maps runs out of results. Default is 20.",
            "default": 20
          },
          "concurrency": {
            "title": "Concurrent Workers",
            "minimum": 8,
            "maximum": 36,
            "type": "integer",
            "description": "Number of parallel workers for scraping. Higher = faster but more memory. Recommended: 4-8. Default is 4.",
            "default": 12
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language code for results (e.g. 'en', 'es', 'de', 'fr'). Affects result language from Google.",
            "default": "en"
          },
          "geo": {
            "title": "Geo Coordinates",
            "type": "string",
            "description": "Bias results to a specific location. Format: 'lat,lon' e.g. '40.7128,-74.0060'. Optional — queries usually handle this."
          },
          "filterPermanentlyClosed": {
            "title": "Filter Out Permanently Closed",
            "type": "boolean",
            "description": "Automatically exclude businesses marked as permanently closed. Highly recommended for lead generation.",
            "default": true
          },
          "minRating": {
            "title": "Minimum Rating Filter",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only return businesses at or above this rating (0-5). E.g. 3.5 filters out low-quality leads. Set to 0 to disable.",
            "default": 0
          },
          "minReviews": {
            "title": "Minimum Review Count",
            "minimum": 0,
            "type": "integer",
            "description": "Only return businesses with at least this many reviews. Helps filter out ghost listings. Set to 0 to disable.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to use for scraping. If not specified, the Actor will use default Apify proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}