{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Store Reviews Scraper API | App Review Extraction",
    "description": "Automate Google Play review scraping with our powerful API. Export user feedback, star ratings, and developer replies directly to your database in JSON or CSV. Perfect for sentiment analysis, competitor research, and tracking Android app performance at scale. Try it free today!",
    "version": "1.0",
    "x-build-id": "z0MMLZn7lHMQcsRDt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/code-node-tools~google-play-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-code-node-tools-google-play-reviews-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/code-node-tools~google-play-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-code-node-tools-google-play-reviews-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/code-node-tools~google-play-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-code-node-tools-google-play-reviews-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": [
          "appIds"
        ],
        "properties": {
          "appIds": {
            "title": "App Package Names or URLs",
            "type": "array",
            "description": "List of app package names (e.g., 'com.supercell.brawlstars') or full Google Play Store URLs (e.g., 'https://play.google.com/store/apps/details?id=com.supercell.brawlstars'). The scraper will automatically extract the package name from URLs.",
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Maximum Reviews per App",
            "minimum": 1,
            "maximum": 100000000,
            "type": "integer",
            "description": "Maximum number of reviews to scrape per app. The scraper will stop after reaching this limit for each app.",
            "default": 500
          },
          "sort": {
            "title": "Sort By",
            "enum": [
              "NEWEST",
              "RATING",
              "HELPFULNESS"
            ],
            "type": "string",
            "description": "How to sort the reviews: by newest first, highest rating, or most helpful.",
            "default": "NEWEST"
          },
          "lang": {
            "title": "Language",
            "pattern": "^[a-z]{2}$",
            "type": "string",
            "description": "Two-letter language code (ISO 639-1) for the reviews. Different languages may return different reviews.",
            "default": "en"
          },
          "country": {
            "title": "Country",
            "pattern": "^[a-z]{2}$",
            "type": "string",
            "description": "Two-letter country code (ISO 3166-1 alpha-2) to fetch reviews from a specific region.",
            "default": "us"
          },
          "minScore": {
            "title": "Minimum Score",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Filter reviews by minimum star rating (1-5). Leave empty to include all ratings."
          },
          "maxScore": {
            "title": "Maximum Score",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Filter reviews by maximum star rating (1-5). Leave empty to include all ratings."
          },
          "minThumbsUp": {
            "title": "Minimum Thumbs Up",
            "minimum": 0,
            "type": "integer",
            "description": "Only include reviews with at least this many helpful votes. Leave empty for no filter."
          },
          "hasReply": {
            "title": "Developer Reply Filter",
            "enum": [
              "all",
              "withReply",
              "withoutReply"
            ],
            "type": "string",
            "description": "Filter by developer reply status.",
            "default": "all"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Filter reviews containing any of these keywords (case-insensitive). Leave empty for no keyword filter.",
            "items": {
              "type": "string"
            }
          },
          "minReviewLength": {
            "title": "Minimum Review Length",
            "minimum": 0,
            "type": "integer",
            "description": "Only include reviews with at least this many characters. Leave empty for no filter."
          },
          "dateFrom": {
            "title": "Date From",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Only include reviews from this date onwards (YYYY-MM-DD format). Leave empty for no date filter."
          },
          "dateTo": {
            "title": "Date To",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Only include reviews up to this date (YYYY-MM-DD format). Leave empty for no date filter."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}