{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Reviews & Google Play Reviews Scraper (Play Store)",
    "description": "Export App Store reviews and Google Play Store reviews for iOS and Android feedback analysis. Get ratings, text, dates, app versions and developer replies in CSV or JSON, filtered by stars or date. $0.20 per 1,000 reviews plus a memory-based start fee. Maintained by CleanScrape.",
    "version": "0.3",
    "x-build-id": "4gOZ9N4FeMUnsi2Dr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cleanscrape~app-store-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cleanscrape-app-store-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/cleanscrape~app-store-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cleanscrape-app-store-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/cleanscrape~app-store-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cleanscrape-app-store-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": {
          "store": {
            "title": "Store",
            "enum": [
              "both",
              "google_play",
              "app_store"
            ],
            "type": "string",
            "description": "Which store to read. With Both, each field below is read.",
            "default": "both"
          },
          "googlePlayAppId": {
            "title": "Google Play app",
            "type": "string",
            "description": "The app's Google Play link, its package name (com.strava) or just the app name."
          },
          "appStoreId": {
            "title": "App Store app",
            "type": "string",
            "description": "The app's App Store link, its number (426826309) or just the app name."
          },
          "apps": {
            "title": "More apps (optional)",
            "type": "array",
            "description": "Collect several apps in one run: one per line, as a Google Play or App Store link, an ID (com.strava or 426826309) or an app name. Links and IDs are read from their own store; a name is looked up in the store chosen above. Reviews per store applies to each app. A line that cannot be read is skipped and named in the run message.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "The App Store country to read, used even if a pasted App Store link names another country. Google Play returns the same reviews for every country and chooses them by the language below.",
            "default": "us"
          },
          "countries": {
            "title": "More countries (optional)",
            "type": "array",
            "description": "Also read these countries on the App Store: two-letter codes, one per line (gb, de, jp). The App Store shows about 500 recent reviews per country, so more countries is the way to get more App Store reviews for one app. Google Play gives the same reviews for every country; use the language list for it.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language (Google Play)",
            "type": "string",
            "description": "Google Play reviews written in this language. Nothing is translated. The App Store ignores this setting.",
            "default": "en"
          },
          "languages": {
            "title": "More Google Play languages (optional)",
            "type": "array",
            "description": "Google Play chooses reviews by language, not by country. Add language codes, one per line (de, es, pt-BR), to also collect the reviews written in those languages. Reviews per store applies to each language.",
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Reviews per store",
            "minimum": 1,
            "type": "integer",
            "description": "Up to this many reviews from each store. The App Store only shows about its 500 most recent reviews.",
            "default": 200
          },
          "sort": {
            "title": "Order (Google Play)",
            "enum": [
              "newest",
              "rating",
              "helpfulness"
            ],
            "type": "string",
            "description": "Which Google Play reviews come first. The App Store always gives the newest first.",
            "default": "newest"
          },
          "ratings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Keep all five, or choose 1 and 2 stars to read complaints. Reviews left out are not charged.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": [
              "1",
              "2",
              "3",
              "4",
              "5"
            ]
          },
          "reviewsSince": {
            "title": "Reviews since (optional)",
            "type": "string",
            "description": "Only reviews from this day onward (UTC), or from a period back from the start of the run, such as 7 days or 2 weeks. For a daily alert of new reviews, use a watch name below: the stores publish reviews about a day late."
          },
          "watchName": {
            "title": "Only new reviews: watch name (optional)",
            "type": "string",
            "description": "Give a scheduled check a name, for example chatgpt-complaints. Each run then saves only reviews that earlier runs with the same name did not return, so a daily schedule gives each review once, even when the store publishes it a day late. The first run saves the matching reviews it finds. The list of returned reviews is kept in your own account."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}