{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play & App Store Scraper: Reviews, Details",
    "description": "Get app details and reviews from Google Play and the Apple App Store in one run: ratings, installs, price, version, developer, and reviews with developer replies. Search by keyword, filter by stars and date, any country, and fetch only new reviews since your last run.",
    "version": "1.1",
    "x-build-id": "lo4PZBbqrWGzSOPax"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mrtrelock~google-play-app-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mrtrelock-google-play-app-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/mrtrelock~google-play-app-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mrtrelock-google-play-app-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/mrtrelock~google-play-app-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mrtrelock-google-play-app-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": {
          "apps": {
            "title": "Apps",
            "type": "array",
            "description": "One per line. Google Play: the package name (com.spotify.music) or Play Store link. App Store: the app ID (324684580) or App Store link (https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580). Each app goes to the store its ID or link belongs to.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Find apps by keyword, e.g. \"budget tracker\". Runs in each store picked under \"Stores to search\". Every app found is processed like the apps above.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores to search",
            "type": "array",
            "description": "Which stores your search terms run in. Apps you list above always go to the store their ID or link belongs to. If you pick only App Store, package names above are read as Apple bundle IDs (e.g. com.spotify.client).",
            "items": {
              "type": "string",
              "enum": [
                "googlePlay",
                "appStore"
              ],
              "enumTitles": [
                "Google Play",
                "Apple App Store"
              ]
            },
            "default": [
              "googlePlay"
            ]
          },
          "maxSearchResults": {
            "title": "Max apps per search term",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Google Play shows about 20 to 30 apps per search. The App Store gives up to 50 here.",
            "default": 30
          },
          "includeAppDetails": {
            "title": "Include app details",
            "type": "boolean",
            "description": "Rating, number of ratings, price, version, last update, developer, category, description, screenshots and more. Google Play adds installs and the 1 to 5 star breakdown; the App Store adds file size, minimum iOS version and supported devices.",
            "default": true
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Review text, stars, date, helpful votes and the app version. Google Play adds the developer's reply; the App Store adds the review title. Reviewer names and photos are left out (personal data).",
            "default": true
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 0,
            "type": "integer",
            "description": "Google Play serves up to tens of thousands of reviews for big apps. The App Store shares at most 500 per app and country. Start small to keep costs down.",
            "default": 100
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "relevant",
              "rating"
            ],
            "type": "string",
            "description": "Which reviews come first. A date limit or \"Only new reviews\" always uses newest first. The App Store has no highest-rating order, so it uses most helpful instead.",
            "default": "newest"
          },
          "reviewRatings": {
            "title": "Only these star ratings",
            "type": "array",
            "description": "E.g. 1 and 2 for complaints only. Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "reviewsWithinDays": {
            "title": "Reviews from the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "0 means any date.",
            "default": 0
          },
          "onlyNewReviews": {
            "title": "Only new reviews since my last run",
            "type": "boolean",
            "description": "Remembers the newest review saved for each app (per country, language and star filter), so scheduled runs only collect and charge for new ones.",
            "default": false
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country code (us, gb, de, in, br...). Affects prices, availability, charts and which reviews you get.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google Play only: language code (en, de, es, pt-BR...). Google Play reviews are shown in this language. App Store reviews come from the chosen country's store.",
            "default": "en"
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}