{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Review Insights",
    "description": "Turn iOS App Store reviews into insights: rating trends, app-version regression alerts, complaint themes (crashes, login, pricing, ads, bugs...) and the phrases customers repeat. Compare competitors. Official Apple review feed, no login.",
    "version": "0.1",
    "x-build-id": "cC1v5168gC8n99X3n"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/singgendarhan~app-store-review-insights/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-singgendarhan-app-store-review-insights",
        "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/singgendarhan~app-store-review-insights/runs": {
      "post": {
        "operationId": "runs-sync-singgendarhan-app-store-review-insights",
        "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/singgendarhan~app-store-review-insights/run-sync": {
      "post": {
        "operationId": "run-sync-singgendarhan-app-store-review-insights",
        "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": [
          "apps"
        ],
        "properties": {
          "apps": {
            "title": "Apps (App Store URLs, app IDs or bundle IDs)",
            "type": "array",
            "description": "One app per line. Accepts App Store links (https://apps.apple.com/us/app/calm/id571800810), numeric app IDs (571800810 or id571800810) and bundle IDs (com.calm.calmapp). Add competitors to compare them side by side.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries (App Store storefronts)",
            "type": "array",
            "description": "Reviews are stored per country. Each country is fetched separately (up to 500 reviews per sort order). Pick the markets you care about.",
            "items": {
              "type": "string",
              "enum": [
                "af",
                "al",
                "dz",
                "ao",
                "ai",
                "ag",
                "ar",
                "am",
                "au",
                "at",
                "az",
                "bs",
                "bh",
                "bd",
                "bb",
                "by",
                "be",
                "bz",
                "bj",
                "bm",
                "bt",
                "bo",
                "ba",
                "bw",
                "br",
                "vg",
                "bn",
                "bg",
                "bf",
                "cv",
                "kh",
                "cm",
                "ca",
                "ky",
                "td",
                "cl",
                "cn",
                "co",
                "cg",
                "cd",
                "cr",
                "hr",
                "cy",
                "cz",
                "ci",
                "dk",
                "dm",
                "do",
                "ec",
                "eg",
                "sv",
                "ee",
                "sz",
                "fj",
                "fi",
                "fr",
                "ga",
                "gm",
                "ge",
                "de",
                "gh",
                "gr",
                "gd",
                "gt",
                "gw",
                "gy",
                "hn",
                "hk",
                "hu",
                "is",
                "in",
                "id",
                "iq",
                "ie",
                "il",
                "it",
                "jm",
                "jp",
                "jo",
                "kz",
                "ke",
                "xk",
                "kw",
                "kg",
                "la",
                "lv",
                "lb",
                "lr",
                "ly",
                "lt",
                "lu",
                "mo",
                "mg",
                "mw",
                "my",
                "mv",
                "ml",
                "mt",
                "mr",
                "mu",
                "mx",
                "fm",
                "md",
                "mn",
                "me",
                "ms",
                "ma",
                "mz",
                "mm",
                "na",
                "nr",
                "np",
                "nl",
                "nz",
                "ni",
                "ne",
                "ng",
                "mk",
                "no",
                "om",
                "pk",
                "pw",
                "pa",
                "pg",
                "py",
                "pe",
                "ph",
                "pl",
                "pt",
                "qa",
                "ro",
                "ru",
                "rw",
                "ws",
                "sa",
                "sn",
                "rs",
                "sc",
                "sl",
                "sg",
                "sk",
                "si",
                "sb",
                "za",
                "kr",
                "es",
                "lk",
                "kn",
                "lc",
                "vc",
                "sr",
                "se",
                "ch",
                "st",
                "tw",
                "tj",
                "tz",
                "th",
                "to",
                "tt",
                "tn",
                "tm",
                "tc",
                "tr",
                "ug",
                "ua",
                "ae",
                "gb",
                "us",
                "uy",
                "uz",
                "vu",
                "ve",
                "vn",
                "ye",
                "zm",
                "zw"
              ],
              "enumTitles": [
                "Afghanistan (AF)",
                "Albania (AL)",
                "Algeria (DZ)",
                "Angola (AO)",
                "Anguilla (AI)",
                "Antigua and Barbuda (AG)",
                "Argentina (AR)",
                "Armenia (AM)",
                "Australia (AU)",
                "Austria (AT)",
                "Azerbaijan (AZ)",
                "Bahamas (BS)",
                "Bahrain (BH)",
                "Bangladesh (BD)",
                "Barbados (BB)",
                "Belarus (BY)",
                "Belgium (BE)",
                "Belize (BZ)",
                "Benin (BJ)",
                "Bermuda (BM)",
                "Bhutan (BT)",
                "Bolivia (BO)",
                "Bosnia and Herzegovina (BA)",
                "Botswana (BW)",
                "Brazil (BR)",
                "British Virgin Islands (VG)",
                "Brunei (BN)",
                "Bulgaria (BG)",
                "Burkina Faso (BF)",
                "Cabo Verde (CV)",
                "Cambodia (KH)",
                "Cameroon (CM)",
                "Canada (CA)",
                "Cayman Islands (KY)",
                "Chad (TD)",
                "Chile (CL)",
                "China mainland (CN)",
                "Colombia (CO)",
                "Congo (CG)",
                "Congo (DRC) (CD)",
                "Costa Rica (CR)",
                "Croatia (HR)",
                "Cyprus (CY)",
                "Czechia (CZ)",
                "Côte d'Ivoire (CI)",
                "Denmark (DK)",
                "Dominica (DM)",
                "Dominican Republic (DO)",
                "Ecuador (EC)",
                "Egypt (EG)",
                "El Salvador (SV)",
                "Estonia (EE)",
                "Eswatini (SZ)",
                "Fiji (FJ)",
                "Finland (FI)",
                "France (FR)",
                "Gabon (GA)",
                "Gambia (GM)",
                "Georgia (GE)",
                "Germany (DE)",
                "Ghana (GH)",
                "Greece (GR)",
                "Grenada (GD)",
                "Guatemala (GT)",
                "Guinea-Bissau (GW)",
                "Guyana (GY)",
                "Honduras (HN)",
                "Hong Kong (HK)",
                "Hungary (HU)",
                "Iceland (IS)",
                "India (IN)",
                "Indonesia (ID)",
                "Iraq (IQ)",
                "Ireland (IE)",
                "Israel (IL)",
                "Italy (IT)",
                "Jamaica (JM)",
                "Japan (JP)",
                "Jordan (JO)",
                "Kazakhstan (KZ)",
                "Kenya (KE)",
                "Kosovo (XK)",
                "Kuwait (KW)",
                "Kyrgyzstan (KG)",
                "Laos (LA)",
                "Latvia (LV)",
                "Lebanon (LB)",
                "Liberia (LR)",
                "Libya (LY)",
                "Lithuania (LT)",
                "Luxembourg (LU)",
                "Macao (MO)",
                "Madagascar (MG)",
                "Malawi (MW)",
                "Malaysia (MY)",
                "Maldives (MV)",
                "Mali (ML)",
                "Malta (MT)",
                "Mauritania (MR)",
                "Mauritius (MU)",
                "Mexico (MX)",
                "Micronesia (FM)",
                "Moldova (MD)",
                "Mongolia (MN)",
                "Montenegro (ME)",
                "Montserrat (MS)",
                "Morocco (MA)",
                "Mozambique (MZ)",
                "Myanmar (MM)",
                "Namibia (NA)",
                "Nauru (NR)",
                "Nepal (NP)",
                "Netherlands (NL)",
                "New Zealand (NZ)",
                "Nicaragua (NI)",
                "Niger (NE)",
                "Nigeria (NG)",
                "North Macedonia (MK)",
                "Norway (NO)",
                "Oman (OM)",
                "Pakistan (PK)",
                "Palau (PW)",
                "Panama (PA)",
                "Papua New Guinea (PG)",
                "Paraguay (PY)",
                "Peru (PE)",
                "Philippines (PH)",
                "Poland (PL)",
                "Portugal (PT)",
                "Qatar (QA)",
                "Romania (RO)",
                "Russia (RU)",
                "Rwanda (RW)",
                "Samoa (WS)",
                "Saudi Arabia (SA)",
                "Senegal (SN)",
                "Serbia (RS)",
                "Seychelles (SC)",
                "Sierra Leone (SL)",
                "Singapore (SG)",
                "Slovakia (SK)",
                "Slovenia (SI)",
                "Solomon Islands (SB)",
                "South Africa (ZA)",
                "South Korea (KR)",
                "Spain (ES)",
                "Sri Lanka (LK)",
                "St. Kitts and Nevis (KN)",
                "St. Lucia (LC)",
                "St. Vincent and the Grenadines (VC)",
                "Suriname (SR)",
                "Sweden (SE)",
                "Switzerland (CH)",
                "São Tomé and Príncipe (ST)",
                "Taiwan (TW)",
                "Tajikistan (TJ)",
                "Tanzania (TZ)",
                "Thailand (TH)",
                "Tonga (TO)",
                "Trinidad and Tobago (TT)",
                "Tunisia (TN)",
                "Turkmenistan (TM)",
                "Turks and Caicos Islands (TC)",
                "Türkiye (TR)",
                "Uganda (UG)",
                "Ukraine (UA)",
                "United Arab Emirates (AE)",
                "United Kingdom (GB)",
                "United States (US)",
                "Uruguay (UY)",
                "Uzbekistan (UZ)",
                "Vanuatu (VU)",
                "Venezuela (VE)",
                "Vietnam (VN)",
                "Yemen (YE)",
                "Zambia (ZM)",
                "Zimbabwe (ZW)"
              ]
            },
            "default": [
              "us"
            ]
          },
          "maxReviewsPerCountry": {
            "title": "Max reviews per app and country",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper limit of reviews saved for each app in each country. Apple's feed returns at most 500 per sort order (1,000 with 'Both'). You are charged per saved review, so this also caps cost.",
            "default": 500
          },
          "sinceDate": {
            "title": "Only reviews since",
            "type": "string",
            "description": "Optional. Skip reviews older than this date, e.g. 2026-09-01 or '30 days'. Leave empty to take as many as the feed allows."
          },
          "sortBy": {
            "title": "Review order",
            "enum": [
              "mostRecent",
              "mostHelpful",
              "both"
            ],
            "type": "string",
            "description": "'Most recent' is best for monitoring and trends. 'Most helpful' surfaces older, highly voted reviews. 'Both' merges the two windows (deduplicated) for up to ~1,000 reviews per app and country.",
            "default": "mostRecent"
          },
          "compareApps": {
            "title": "Compare apps side by side",
            "type": "boolean",
            "description": "When you enter 2 or more apps, add a competitor comparison (rating, 1-2 star share, themes each app over-indexes on). Included at no extra charge.",
            "default": true
          },
          "dropReviewerNames": {
            "title": "Drop reviewer nicknames",
            "type": "boolean",
            "description": "On by default for privacy: reviewer nicknames are not saved. Turn off only if you need them. Reviewer profile links are never saved.",
            "default": true
          },
          "includeAppDetails": {
            "title": "Add app details (name, store rating, current version)",
            "type": "boolean",
            "description": "Looks up each app once via Apple's public iTunes Lookup API so reports show the app name, overall store rating and current version. Required for bundle-ID inputs.",
            "default": true
          },
          "customThemes": {
            "title": "Custom themes to track",
            "type": "object",
            "description": "Optional. Your own themes as {\"theme name\": [\"keyword\", \"another keyword\"]}, matched case-insensitively as whole words. Example: {\"dark mode\": [\"dark mode\", \"night mode\"], \"widgets\": [\"widget\", \"widgets\"]}. Built-in themes: crash, login, subscription_price, ads, bug, slow, battery, sync, support, update."
          },
          "regressionThresholdPct": {
            "title": "Regression threshold (percentage points)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Flag a version when its share of 1-2 star reviews rises by at least this many percentage points vs the previous version (and the rise is statistically meaningful).",
            "default": 15
          },
          "regressionMinReviews": {
            "title": "Minimum reviews per version",
            "minimum": 2,
            "maximum": 500,
            "type": "integer",
            "description": "Versions with fewer reviews are reported but not used for regression flags.",
            "default": 10
          },
          "topPhrasesCount": {
            "title": "Phrases per list",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many complaint and praise phrases to list per app.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}