{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Scraper",
    "description": "🔥💰 $0.40 / 1K results 💰🔥 Google Maps Scraper & API. Extract businesses by keyword, category, location, coordinates, radius or polygon. Get 📍 addresses, 📞 phones, 🌐 websites, ⭐ ratings, reviews, opening hours, categories, coordinates & more. Export to JSON, CSV or Excel or automate via API.",
    "version": "0.1",
    "x-build-id": "0egfJOjEEegsBQUKZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/poidata~google-maps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-poidata-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/poidata~google-maps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-poidata-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/poidata~google-maps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-poidata-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": [
          "term"
        ],
        "properties": {
          "term": {
            "title": "👉 Search Term",
            "maxItems": 100,
            "type": "array",
            "description": "The term or search terms to look for (e.g. restaurant, cafe, dentist, etc). Must be 25 characters or less. Up to 100 search terms per request.",
            "default": [
              "Restaurant"
            ],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "🌍 Location",
            "maxLength": 50,
            "type": "string",
            "description": "The location to search in (e.g. New York, Paris). Must be 50 characters or less.",
            "default": "New York, USA"
          },
          "language": {
            "title": "🔠 Language",
            "enum": [
              "en",
              "af",
              "am",
              "ar",
              "az",
              "bg",
              "bn",
              "bs",
              "ca",
              "cs",
              "da",
              "de",
              "el",
              "es",
              "et",
              "eu",
              "fa",
              "fi",
              "fil",
              "fr",
              "gl",
              "gu",
              "he",
              "hi",
              "hr",
              "hu",
              "hy",
              "id",
              "is",
              "it",
              "iw",
              "ja",
              "ka",
              "kk",
              "km",
              "kn",
              "ko",
              "ky",
              "lo",
              "lt",
              "lv",
              "mk",
              "ml",
              "mn",
              "mr",
              "ms",
              "my",
              "nb",
              "ne",
              "nl",
              "nn",
              "no",
              "pa",
              "pl",
              "pt",
              "ro",
              "ru",
              "si",
              "sk",
              "sl",
              "sq",
              "sr",
              "sv",
              "sw",
              "ta",
              "te",
              "th",
              "tl",
              "tr",
              "uk",
              "ur",
              "uz",
              "vi",
              "zh",
              "zh-Hant",
              "zu"
            ],
            "type": "string",
            "description": "Language for search results (maps to hl)",
            "default": "en"
          },
          "country": {
            "title": "🌐 Country (ISO2)",
            "pattern": "^[A-Za-z]{2}$",
            "maxLength": 2,
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code for search results (maps to gl). Any country code is supported, e.g. us, gb, fr, de, in.",
            "default": "us"
          },
          "total": {
            "title": "🔢 Total Results",
            "minimum": 20,
            "maximum": 300,
            "type": "integer",
            "description": "Up to 300 results per term, max 30,000 for 100 terms. Actual count depends on your run budget (max cost per run / Apify credits).",
            "default": 20
          },
          "coordinateSection": {
            "title": "Scrape with Geo-coordinates",
            "type": "string",
            "description": "Scrape with geo-coordinates"
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Latitude of the location (optional if location is provided)."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Longitude of the location (optional if location is provided)."
          },
          "polygon": {
            "title": "Polygon",
            "type": "string",
            "description": "Polygon of the location (optional if location is provided)."
          },
          "radius": {
            "title": "Radius",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Set radius to scrape around the geocoordinate location.",
            "default": 1
          },
          "totalAroundCoordinate": {
            "title": "Total Results Around Coordinate",
            "minimum": 20,
            "maximum": 100000,
            "type": "integer",
            "description": "Set total results to scrape around the geocoordinate location per term. Actual count depends on your run budget (max cost per run / Apify credits).",
            "default": 20
          },
          "advanceOptionSection": {
            "title": "⚙️ Filters",
            "type": "string",
            "description": "Filters"
          },
          "min_rating": {
            "title": "Minimum Rating",
            "pattern": "^(?:[0-4](?:\\.\\d+)?|5(?:\\.0+)?)$",
            "type": "string",
            "description": "Minimum star rating (0–5, decimals allowed)",
            "default": "0"
          },
          "min_reviews": {
            "title": "Minimum Reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of reviews",
            "default": 0
          },
          "min_photos": {
            "title": "Minimum Photos",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of photos",
            "default": 0
          },
          "name_filter": {
            "title": "Business Name Filter",
            "type": "string",
            "description": "Filter businesses by name (case-insensitive substring match)"
          },
          "categories_filter": {
            "title": "Multiple Categories Filter",
            "type": "array",
            "description": "Filter businesses by category (comma-separated, case-insensitive)",
            "items": {
              "type": "string"
            }
          },
          "reviewsSection": {
            "title": "⭐ Reviews",
            "type": "string",
            "description": "Reviews"
          },
          "scrape_reviews": {
            "title": "Scrape Reviews",
            "type": "boolean",
            "description": "Enable scraping of reviews for each place found.",
            "default": false
          },
          "reviews_sort": {
            "title": "Review Sort Order",
            "enum": [
              "relevant",
              "newest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Order in which reviews are returned",
            "default": "newest"
          },
          "reviews_per_place": {
            "title": "Reviews per Place",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of reviews to scrape per place.",
            "default": 20
          },
          "reviews_min_rating": {
            "title": "Minimum Review Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Only collect reviews with a rating at least this high (1-5). Reviews below it are skipped. Set to 0 to keep all ratings.",
            "default": 0
          },
          "reviews_skip_without_text": {
            "title": "Skip Reviews Without Text",
            "type": "boolean",
            "description": "Skip reviews that contain no text.",
            "default": false
          },
          "reviews_remove_personal_data": {
            "title": "Remove Personal Data",
            "type": "boolean",
            "description": "Omit author identity data (name, profile URL, avatar, user ID) from reviews to help adhere to GDPR. Leaving this off means personal data is included in the output and is billed as an active filter.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}