{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple App Store Scraper: apps, ratings and reviews",
    "description": "Get Apple App Store apps, ratings and customer reviews from many countries in one run: search apps, app details by ID, URL or bundle ID, reviews with rating and date filters, all apps of a developer, and top free, paid and grossing charts.",
    "version": "1.0",
    "x-build-id": "Paa0AcLRO8NWZwIne"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/angadseth~app-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-angadseth-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/angadseth~app-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-angadseth-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/angadseth~app-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-angadseth-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "searchApps",
              "appDetails",
              "reviews",
              "developerApps",
              "topCharts"
            ],
            "type": "string",
            "description": "Search apps = apps matching your search terms. App details = full details for the apps you list. Reviews = customer reviews of the apps you list. Developer apps = every app of the developers you list. Top charts = Apple's top free, paid or grossing charts.",
            "default": "reviews"
          },
          "searchTerms": {
            "title": "Search terms (Search apps)",
            "type": "array",
            "description": "Words to search the App Store for, e.g. \"budget tracker\", \"meditation\", \"food delivery\". Each term is searched in each country. Apple returns at most 200 apps per term per country.",
            "items": {
              "type": "string"
            }
          },
          "apps": {
            "title": "Apps (App details, Reviews)",
            "type": "array",
            "description": "Apps to look up or get reviews for. Use the numeric App Store ID (310633997), the App Store link (https://apps.apple.com/us/app/whatsapp-messenger/id310633997) or the bundle ID (net.whatsapp.WhatsApp). One per line.",
            "default": [
              "310633997"
            ],
            "items": {
              "type": "string"
            }
          },
          "developers": {
            "title": "Developers (Developer apps)",
            "type": "array",
            "description": "Developers whose apps you want. Use the numeric developer ID (310634000) or the developer link (https://apps.apple.com/us/developer/whatsapp-inc/id310634000). An app ID also works: the Actor then lists all apps of that app's developer.",
            "items": {
              "type": "string"
            }
          },
          "chartType": {
            "title": "Chart (Top charts)",
            "enum": [
              "free",
              "paid",
              "grossing",
              "newFree",
              "newPaid"
            ],
            "type": "string",
            "description": "Which Apple top chart to read. Each chart has up to 100 apps per country.",
            "default": "free"
          },
          "chartDevice": {
            "title": "Device (Top charts)",
            "enum": [
              "iphone",
              "ipad"
            ],
            "type": "string",
            "description": "iPhone or iPad charts. New free and New paid exist for iPhone only.",
            "default": "iphone"
          },
          "genre": {
            "title": "Category (Top charts)",
            "enum": [
              "all",
              "6000",
              "6001",
              "6002",
              "6003",
              "6004",
              "6005",
              "6006",
              "6007",
              "6008",
              "6009",
              "6010",
              "6011",
              "6012",
              "6013",
              "6014",
              "6015",
              "6016",
              "6017",
              "6018",
              "6020",
              "6021",
              "6023",
              "6024",
              "6025",
              "6026",
              "6027"
            ],
            "type": "string",
            "description": "Limit the chart to one App Store category. All = the overall chart.",
            "default": "all"
          },
          "includeReviews": {
            "title": "Also get reviews for each app",
            "type": "boolean",
            "description": "For Search apps, App details, Developer apps and Top charts: after each app record, also save its customer reviews (using the review settings below). Reviews mode always saves reviews.",
            "default": false
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Two-letter App Store country codes, e.g. us, gb, in, de, jp, br. Every country is a separate storefront with its own prices, ratings, charts and reviews, so add more countries to get more reviews.",
            "default": [
              "us"
            ],
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language of app texts",
            "type": "string",
            "description": "Optional. Language for app names, descriptions and categories, e.g. en_us or ja_jp. Leave empty for the country's default language. Reviews always come in the language the user wrote them in."
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many records in total (apps plus reviews). You pay per record saved.",
            "default": 200
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app per country",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Apple's feed gives up to 500 recent reviews (or 500 most helpful) per app per country. With sort order \"Both\" you can get up to about 1,000.",
            "default": 500
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "mostRecent",
              "mostHelpful",
              "both"
            ],
            "type": "string",
            "description": "Most recent = newest reviews first. Most helpful = reviews with the most helpful votes. Both = read both lists and merge them without duplicates, for more reviews per country.",
            "default": "mostRecent"
          },
          "minRating": {
            "title": "Minimum star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only reviews with at least this many stars (1 to 5).",
            "default": 1
          },
          "maxRating": {
            "title": "Maximum star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only reviews with at most this many stars (1 to 5). Set to 2 to collect complaints only.",
            "default": 5
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Optional. YYYY-MM-DD. Keep only reviews written or updated on or after this date. With \"Most recent\" order the Actor stops reading early once reviews get older."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Apple's public endpoints work without a proxy. Set one only if you run very large jobs and Apple starts slowing you down.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}