{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Scraper: Reviews, Ratings & App Data",
    "description": "Get Apple App Store reviews from many countries plus full app details, search results, developer apps and top charts. Filter reviews by rating and date, or get only new reviews on scheduled runs. Uses Apple's public endpoints: no proxies, no login, fast and cheap.",
    "version": "1.0",
    "x-build-id": "qgWwWqMZO8WhCqz4W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/digital_influx~app-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-digital_influx-app-store-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/digital_influx~app-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-digital_influx-app-store-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/digital_influx~app-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-digital_influx-app-store-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: an App Store link (apps.apple.com/us/app/notion/id1232780281), an app id (1232780281), a bundle id (com.openai.chat) or a developer page link (apps.apple.com/us/developer/…/id123) to get all of that developer's apps.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Find apps the way users do in the App Store search, e.g. 'habit tracker'.",
            "items": {
              "type": "string"
            }
          },
          "searchLimit": {
            "title": "Results per search term",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "1 to 200.",
            "default": 50
          },
          "charts": {
            "title": "Top charts",
            "type": "array",
            "description": "Add top-free, top-paid and/or top-grossing to get the ranked apps of that chart.",
            "items": {
              "type": "string"
            }
          },
          "chartGenre": {
            "title": "Chart category",
            "enum": [
              "",
              "6000",
              "6001",
              "6002",
              "6003",
              "6004",
              "6005",
              "6006",
              "6007",
              "6008",
              "6009",
              "6010",
              "6011",
              "6012",
              "6013",
              "6014",
              "6015",
              "6016",
              "6017",
              "6018",
              "6020",
              "6021",
              "6023",
              "6024",
              "6026",
              "6027"
            ],
            "type": "string",
            "description": "Limit charts to one category. Leave empty for all apps.",
            "default": ""
          },
          "chartLimit": {
            "title": "Apps per chart",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "1 to 99 (Apple's own maximum for these charts).",
            "default": 50
          },
          "country": {
            "title": "Store country",
            "type": "string",
            "description": "Two-letter code of the App Store used for app details, search and charts: us, gb, de, br, ar, jp…",
            "default": "us"
          },
          "includeAppDetails": {
            "title": "Save app details",
            "type": "boolean",
            "description": "One record per app with rating, rating count, price, version, size, category, dates, description and more.",
            "default": true
          },
          "includeReviews": {
            "title": "Save reviews",
            "type": "boolean",
            "description": "Newest reviews of every app found.",
            "default": true
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 1,
            "type": "integer",
            "description": "Apple shows up to 500 of the newest reviews per country. For more, add countries below.",
            "default": 100
          },
          "reviewCountries": {
            "title": "Review countries",
            "type": "array",
            "description": "Each country's App Store has its own reviews. Countries are read in this order until the per-app maximum is reached. Empty = the store country above.",
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Min stars",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep reviews with at least this many stars (1-5)."
          },
          "maxRating": {
            "title": "Max stars",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep reviews with at most this many stars (1-5). Set 2 to collect complaints only."
          },
          "reviewsWithinDays": {
            "title": "Reviews from the last (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Only reviews written in the last N days. Reading stops as soon as older reviews appear, so this also makes runs faster."
          },
          "onlyNewReviews": {
            "title": "Only new reviews (for scheduled runs)",
            "type": "boolean",
            "description": "Save only reviews that earlier runs with this option did not save, so a daily or weekly schedule gives you just the new reviews of each app and you pay only for those. Reading an app stops at the first review already saved. The memory is one record per app, kept for a year in a key-value store named \"app-store-state\" in your account.",
            "default": false
          },
          "stateKey": {
            "title": "Memory name (optional)",
            "type": "string",
            "description": "Give a name to keep a separate memory (for example one per client or per task), or a new name to start over. Letters, digits, dot, dash and underscore."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}