{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Reviews Scraper + Google Play Reviews (All Countries)",
    "description": "Reviews from the App Store and Google Play in one run, in up to 58 countries: rating, text, version, date, developer reply, helpful votes, plus app details and a free summary (rating by version and country, topics of negative reviews). Alerts on new negative reviews.",
    "version": "0.1",
    "x-build-id": "gKfv8lO3uiWpHtdl0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/euroscrape~app-reviews/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-euroscrape-app-reviews",
        "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/euroscrape~app-reviews/runs": {
      "post": {
        "operationId": "runs-sync-euroscrape-app-reviews",
        "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/euroscrape~app-reviews/run-sync": {
      "post": {
        "operationId": "run-sync-euroscrape-app-reviews",
        "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 (URLs or IDs)",
            "type": "array",
            "description": "App Store URLs or IDs (e.g. https://apps.apple.com/us/app/instagram/id389801252 or id389801252) and Google Play URLs or package names (e.g. com.spotify.music). Mix both stores freely.",
            "items": {
              "type": "string"
            }
          },
          "appNames": {
            "title": "App names (search both stores)",
            "type": "array",
            "description": "Just type the app name (e.g. \"Duolingo\"): the Actor finds it on the App Store and on Google Play.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores (for app names)",
            "type": "array",
            "description": "Which stores to search for app names.",
            "items": {
              "type": "string",
              "enum": [
                "appstore",
                "googleplay"
              ],
              "enumTitles": [
                "App Store",
                "Google Play"
              ]
            },
            "default": [
              "appstore",
              "googleplay"
            ]
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Reviews differ per country: each country is a separate storefront.",
            "items": {
              "type": "string",
              "enum": [
                "us",
                "gb",
                "ca",
                "au",
                "nz",
                "ie",
                "in",
                "sg",
                "za",
                "ng",
                "ph",
                "my",
                "fr",
                "be",
                "ch",
                "lu",
                "de",
                "at",
                "es",
                "mx",
                "ar",
                "co",
                "cl",
                "pe",
                "it",
                "pt",
                "br",
                "nl",
                "pl",
                "se",
                "dk",
                "no",
                "fi",
                "cz",
                "sk",
                "hu",
                "ro",
                "bg",
                "gr",
                "hr",
                "si",
                "rs",
                "ua",
                "tr",
                "il",
                "ae",
                "sa",
                "eg",
                "jp",
                "kr",
                "tw",
                "hk",
                "th",
                "vn",
                "id",
                "ee",
                "lv",
                "lt"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "New Zealand",
                "Ireland",
                "India",
                "Singapore",
                "South Africa",
                "Nigeria",
                "Philippines",
                "Malaysia",
                "France",
                "Belgium",
                "Switzerland",
                "Luxembourg",
                "Germany",
                "Austria",
                "Spain",
                "Mexico",
                "Argentina",
                "Colombia",
                "Chile",
                "Peru",
                "Italy",
                "Portugal",
                "Brazil",
                "Netherlands",
                "Poland",
                "Sweden",
                "Denmark",
                "Norway",
                "Finland",
                "Czechia",
                "Slovakia",
                "Hungary",
                "Romania",
                "Bulgaria",
                "Greece",
                "Croatia",
                "Slovenia",
                "Serbia",
                "Ukraine",
                "Türkiye",
                "Israel",
                "United Arab Emirates",
                "Saudi Arabia",
                "Egypt",
                "Japan",
                "South Korea",
                "Taiwan",
                "Hong Kong",
                "Thailand",
                "Vietnam",
                "Indonesia",
                "Estonia",
                "Latvia",
                "Lithuania"
              ]
            },
            "default": [
              "us"
            ]
          },
          "allCountries": {
            "title": "All countries",
            "type": "boolean",
            "description": "Collect reviews in all 58 countries above.",
            "default": false
          },
          "maxReviewsPerCountry": {
            "title": "Maximum reviews per app and country",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The App Store gives at most 500 recent reviews per country; Google Play has no such limit.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "newest",
              "most_helpful"
            ],
            "type": "string",
            "description": "Which reviews first.",
            "default": "newest"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep reviews rated at least this (1-5)."
          },
          "maxRating": {
            "title": "Maximum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "E.g. 2 = only negative reviews."
          },
          "reviewedAfter": {
            "title": "Reviewed after",
            "type": "string",
            "description": "Only reviews written after this date (YYYY-MM-DD)."
          },
          "includeAppDetails": {
            "title": "Add app details (free)",
            "type": "boolean",
            "description": "One item per app: rating, number of ratings, version, installs, developer, genre.",
            "default": true
          },
          "includeSummary": {
            "title": "Add a free summary per app",
            "type": "boolean",
            "description": "Rating distribution, rating by version and by country, developer reply rate, topics of negative reviews.",
            "default": true
          },
          "includeReviewerNames": {
            "title": "Include reviewer names",
            "type": "boolean",
            "description": "Off by default: reviewer names are personal data and are rarely needed for analysis.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Set a name and schedule the Actor (e.g. every hour): each run returns only new reviews, and can alert you on negative ones."
          },
          "alertMaxRating": {
            "title": "Alert on reviews rated at most",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Monitoring: send an alert for each new review with this rating or lower (e.g. 2 = 1 and 2 stars).",
            "default": 2
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Alerts on Telegram: create a bot with @BotFather and paste its token."
          },
          "telegramChatId": {
            "title": "Telegram chat ID",
            "type": "string",
            "description": "Your chat ID (send a message to your bot, then open api.telegram.org/bot<token>/getUpdates)."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL",
            "type": "string",
            "description": "Alerts in a Discord channel: Channel settings → Integrations → Webhooks."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Alerts in Slack: create an Incoming Webhook for your channel."
          },
          "webhookUrl": {
            "title": "Webhook URL (JSON)",
            "type": "string",
            "description": "Receives one POST per run with the alerted reviews (Make, Zapier, n8n, your helpdesk…)."
          },
          "maxNotifications": {
            "title": "Maximum alerts per run",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum number of alert messages per run.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}