{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper",
    "description": "Scrape Google Maps places by search term and location: name, category, address, phone, website, rating, review count, opening hours and exact GPS coordinates. Optionally pull emails and social profiles from each place's website. No login or API key, export to JSON, CSV or Excel for lead generation.",
    "version": "1.0",
    "x-build-id": "gauxgNp5hyUYgKwza"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~google-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-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/silentflow~google-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-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/silentflow~google-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-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",
        "properties": {
          "searchStrings": {
            "title": "🔍 Search terms",
            "type": "array",
            "description": "What you would type into Google Maps, e.g. <b>restaurant</b>, <b>dentist</b>, <b>coffee shop</b>. One term per line.",
            "items": {
              "type": "string"
            }
          },
          "locationQuery": {
            "title": "📍 Location",
            "type": "string",
            "description": "The area to search, e.g. <b>Brooklyn, New York, United States</b> or <b>Paris, France</b>. Leave empty to let Google infer the area from the search term."
          },
          "maxItems": {
            "title": "💯 Number of places",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of places to extract. Higher values take longer.",
            "default": 50
          },
          "language": {
            "title": "🌍 Language",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "nl",
              "pl",
              "tr",
              "ru",
              "uk",
              "ja",
              "ko",
              "zh-CN",
              "ar",
              "hi"
            ],
            "type": "string",
            "description": "Google Maps language for names, categories, and labels.",
            "default": "en"
          },
          "countryCode": {
            "title": "🗺 Country",
            "type": "string",
            "description": "Two-letter country code used to bias results, e.g. <code>us</code>, <code>fr</code>, <code>de</code>.",
            "default": "us"
          },
          "extractContactsFromWebsite": {
            "title": "📧 Add website contacts (emails + social links)",
            "type": "boolean",
            "description": "Visit each business website and extract emails plus Facebook, Instagram, LinkedIn, X, YouTube, TikTok, Pinterest, and WhatsApp links. Places without a website are still saved.",
            "default": false
          },
          "skipClosedPlaces": {
            "title": "⏩ Skip closed places",
            "type": "boolean",
            "description": "Skip places marked as temporarily or permanently closed.",
            "default": false
          },
          "placeMinimumStars": {
            "title": "⭐ Minimum rating",
            "type": "string",
            "description": "Only keep places rated at or above this value, e.g. <code>4.0</code>. Leave empty for no filter."
          },
          "categoryFilter": {
            "title": "🏷 Category filter",
            "type": "array",
            "description": "Only keep places whose category contains one of these words, e.g. <code>restaurant</code>. Leave empty to keep all.",
            "items": {
              "type": "string"
            }
          },
          "geoStrictMatch": {
            "title": "📍 Keep only places inside the search area",
            "type": "boolean",
            "description": "Drop results whose coordinates fall outside the resolved location or custom area.",
            "default": false
          },
          "maxReviews": {
            "title": "💬 Number of reviews per place (experimental)",
            "minimum": 0,
            "type": "integer",
            "description": "How many reviews to attach to each place. Set to <b>0</b> for the fastest run. Review extraction is experimental.",
            "default": 0
          },
          "reviewsSort": {
            "title": "Sort reviews by",
            "enum": [
              "newest",
              "most_relevant",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Ordering for extracted reviews.",
            "default": "newest"
          },
          "customGeolocation": {
            "title": "🛰 Custom search area (GeoJSON)",
            "type": "object",
            "description": "Define an exact area with GeoJSON: Polygon, MultiPolygon, or Point with <code>radiusKm</code>. Overrides Location."
          },
          "startUrls": {
            "title": "🔗 Google Maps URLs",
            "type": "array",
            "description": "Full Google Maps place or search URLs to scrape directly.",
            "items": {
              "type": "string"
            }
          },
          "placeIds": {
            "title": "🗃 Place IDs",
            "type": "array",
            "description": "Raw Google Place IDs, one per line, e.g. <code>ChIJU8L4BgBZwokRiqudELknuTI</code>.",
            "items": {
              "type": "string"
            }
          },
          "debugMode": {
            "title": "🐞 Debug mode",
            "type": "boolean",
            "description": "Log verbose diagnostics.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}