{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Maps Reviews Scraper Premium",
    "description": "Extract Google Maps reviews with AI sentiment analysis. Get complete business data including phone, website, hours, and categories. Filter by rating range, keywords, dates, or images. The only Google Maps scraper with built-in Claude AI insights.",
    "version": "1.1",
    "x-build-id": "9368s4B6gaGTneaiq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/focused_vanguard~google-maps-reviews-scraper-premium/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-focused_vanguard-google-maps-reviews-scraper-premium",
        "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/focused_vanguard~google-maps-reviews-scraper-premium/runs": {
      "post": {
        "operationId": "runs-sync-focused_vanguard-google-maps-reviews-scraper-premium",
        "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/focused_vanguard~google-maps-reviews-scraper-premium/run-sync": {
      "post": {
        "operationId": "run-sync-focused_vanguard-google-maps-reviews-scraper-premium",
        "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": {
          "placeUrls": {
            "title": "Google Maps Place URLs",
            "type": "array",
            "description": "List of Google Maps place URLs to scrape reviews from. Supports standard place URLs, search result URLs, and @coordinates URLs.",
            "items": {
              "type": "string"
            }
          },
          "placeIds": {
            "title": "Place IDs",
            "type": "array",
            "description": "Alternative to URLs - provide Google Place IDs directly. Format: ChIJ... or 0x...:0x...",
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Number of Reviews",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of reviews to scrape per place. Set to 0 for unlimited (may take longer and cost more).",
            "default": 100
          },
          "sortBy": {
            "title": "Sort Reviews By",
            "enum": [
              "newest",
              "highest",
              "lowest",
              "relevant"
            ],
            "type": "string",
            "description": "How to sort reviews before scraping.",
            "default": "newest"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "ja",
              "ko",
              "zh",
              "ar",
              "ru",
              "nl",
              "pl",
              "tr"
            ],
            "type": "string",
            "description": "Language for reviews and interface. Uses ISO 639-1 codes.",
            "default": "en"
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only scrape reviews with this rating or higher (1-5 stars).",
            "default": 1
          },
          "maxRating": {
            "title": "Maximum Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only scrape reviews with this rating or lower (1-5 stars).",
            "default": 5
          },
          "reviewKeywords": {
            "title": "Filter by Keywords",
            "type": "string",
            "description": "Only include reviews containing these keywords (comma-separated). Example: 'parking, service, wifi'"
          },
          "hasImagesOnly": {
            "title": "Only Reviews with Images",
            "type": "boolean",
            "description": "Only scrape reviews that have attached photos.",
            "default": false
          },
          "dateFrom": {
            "title": "Reviews Newer Than (Date)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Only scrape reviews published after this date. Format: YYYY-MM-DD"
          },
          "lookbackDays": {
            "title": "Reviews Newer Than (Days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Alternative to date - only scrape reviews from the last N days."
          },
          "enableSentiment": {
            "title": "Enable AI Sentiment Analysis",
            "type": "boolean",
            "description": "Analyze review sentiment using AI (Claude 3 Haiku or GPT-3.5). Adds sentimentScore (-1 to 1) and sentimentLabel to each review. Requires ANTHROPIC_API_KEY or OPENAI_API_KEY in environment variables.",
            "default": true
          },
          "includePlaceData": {
            "title": "Include Business Data",
            "type": "boolean",
            "description": "Include full business information with each review (address, phone, website, FAQs, attributes, etc.).",
            "default": true
          },
          "flattenOutput": {
            "title": "Flatten Output for Excel/CSV",
            "type": "boolean",
            "description": "Convert nested fields to flat structure for better Excel/CSV compatibility. Recommended if you'll export to spreadsheets.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}