{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Reviews Scraper — App Feedback",
    "description": "Scrape Google Play app reviews, ratings, dates, versions, replies, and user feedback for product research, sentiment analysis, and monitoring.",
    "version": "1.0",
    "x-build-id": "2pgZRRXkiPR2RFhvm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/muhammadafzal~google-play-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-muhammadafzal-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/muhammadafzal~google-play-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-muhammadafzal-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/muhammadafzal~google-play-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-muhammadafzal-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",
        "properties": {
          "appIds": {
            "title": "App IDs",
            "type": "array",
            "description": "Google Play package names to scrape reviews from, such as com.spotify.music. Use this when you already know the app ID. Defaults to com.spotify.music for health tests. Not an Apple App Store ID.",
            "default": [
              "com.spotify.music"
            ],
            "items": {
              "type": "string"
            }
          },
          "appUrls": {
            "title": "App URLs",
            "type": "array",
            "description": "Full Google Play app URLs that contain an id query parameter, such as https://play.google.com/store/apps/details?id=com.spotify.music. Use this when copying URLs from a browser. Leave empty when using App IDs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Max Reviews per App",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum reviews to return for each app. Defaults to 20 and supports 1 to 5000. Lower values are best for quick agent calls. This is not the total across all apps.",
            "default": 20
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter Google Play country code used for localized review availability, such as us, gb, de, or pk. Defaults to us. Use the market where the app users are located. Not a language code.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter language code for Google Play localization, such as en, es, de, or fr. Defaults to en. Use with country for localized review text and app metadata. Not a country code.",
            "default": "en"
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "helpfulness",
              "rating"
            ],
            "type": "string",
            "description": "Review ordering to request from Google Play. Use newest for monitoring fresh feedback, helpfulness for high-signal reviews, or rating to group by score. Defaults to newest. Not a filter by date.",
            "default": "newest"
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Lowest star rating to include after reviews are fetched. Defaults to 1 and supports 1 to 5. Use 1 with maxRating 2 for complaint mining. Not a Google Play search ranking option.",
            "default": 1
          },
          "maxRating": {
            "title": "Maximum Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Highest star rating to include after reviews are fetched. Defaults to 5 and supports 1 to 5. Use 4 or 5 for positive-review analysis. Must be greater than or equal to Minimum Rating.",
            "default": 5
          },
          "includeDeveloperReplies": {
            "title": "Include Developer Replies",
            "type": "boolean",
            "description": "Include developer reply text and reply date when Google Play returns them. Defaults to true. Turn off for smaller records. This does not post or modify replies.",
            "default": true
          },
          "includeAppDetails": {
            "title": "Include App Details",
            "type": "boolean",
            "description": "Fetch app title, developer, score, and install range once per app. Defaults to true. Turn off to reduce upstream calls. This does not scrape full app listings or permissions.",
            "default": true
          },
          "pageDelayMs": {
            "title": "Page Delay Ms",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Delay between paginated Google Play review requests. Defaults to 300 milliseconds and supports 0 to 5000. Increase if Google Play throttles requests. Not a timeout setting.",
            "default": 300
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}