{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper — Extract Business Data at Scale",
    "description": "Collect public Google Maps business listing data including names, categories, addresses, websites, ratings, review counts, hours, coordinates, and Maps URLs. Export structured data to JSON, CSV, or Excel.",
    "version": "1.0",
    "x-build-id": "8WsNkea8hqxDpSKZh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fascinating_lentil~google-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fascinating_lentil-google-maps-scraper",
        "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/fascinating_lentil~google-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fascinating_lentil-google-maps-scraper",
        "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/fascinating_lentil~google-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fascinating_lentil-google-maps-scraper",
        "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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Search keywords",
            "minItems": 1,
            "type": "array",
            "description": "Business types or search terms to find, such as dentists, restaurants, real estate agents, auto repair, or software companies. Each keyword is combined with each location, so agents should start with one keyword for targeted lead lists.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Custom worldwide locations",
            "minItems": 1,
            "type": "array",
            "description": "Cities, regions, postal codes, addresses, or 'lat,lon' pairs to search. Include the country for best accuracy, e.g. 'Mumbai, India', 'London, UK', or '48.8566,2.3522'. Required when Location preset is 'None'.",
            "items": {
              "type": "string"
            }
          },
          "locationPreset": {
            "title": "Location preset",
            "enum": [
              "none",
              "high_demand_markets",
              "world_major_cities"
            ],
            "type": "string",
            "description": "Optional city preset. Keep 'None' for a controlled low-cost run. Presets create many keyword/location searches and should be used only for intentional batch jobs.",
            "default": "none"
          },
          "maxResults": {
            "title": "Max results per query",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of businesses to save per keyword/location combination. Use 1-5 for tests or agent calls; increase only for intentional production lead lists.",
            "default": 5
          },
          "language": {
            "title": "Result language",
            "pattern": "^[a-zA-Z]{2,5}$",
            "minLength": 2,
            "maxLength": 5,
            "type": "string",
            "description": "Two-letter language code for result text, e.g. 'en', 'es', 'de', 'fr', 'ja'.",
            "default": "en"
          },
          "countryCode": {
            "title": "Optional country bias",
            "pattern": "^[a-zA-Z]{2}$",
            "minLength": 2,
            "maxLength": 2,
            "type": "string",
            "description": "Optional two-letter country code that biases Google Maps results and proxy country, e.g. 'us', 'gb', 'de', 'jp'. Leave empty for worldwide searches based only on the location text."
          },
          "maxCrawledPlacesPerQuery": {
            "title": "Max places to visit per query",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on places the Actor inspects per keyword/location. Keep close to maxResults for cheaper tests. Across the whole run, queries multiplied by this value cannot exceed 1,000 planned core place inspections; optional missing-field retries are additional.",
            "default": 5
          },
          "skipClosedBusinesses": {
            "title": "Skip permanently closed businesses",
            "type": "boolean",
            "description": "If true, businesses marked as 'Permanently closed' are filtered out.",
            "default": true
          },
          "scrapeDetails": {
            "title": "Retry missing phone/address",
            "type": "boolean",
            "description": "Every captured listing is opened once for core fields. If true, the Actor revisits a place once when phone or address is still missing and also attempts to capture its Plus Code. Leave disabled for initial tests to avoid extra navigation.",
            "default": false
          },
          "proxyConfig": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Use Apify Proxy, custom proxy URLs, or a direct connection. Residential Apify Proxy is recommended for Google Maps reliability and is billed as platform usage. Leave proxy country empty for global runs, or set it to match the target country.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}