{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple App Store Scraper — Apps, Top Charts & Prices",
    "description": "Scrape Apple App Store apps by link, ID, bundle ID, developer or top chart (free/paid, any category, iPhone, iPad, Mac) in 169 countries: price, rating and count, version, release notes, size, languages, screenshots, chart rank. Monitor mode flags price, rating, version and rank changes. No login.",
    "version": "0.1",
    "x-build-id": "yswz14AS24VoQMewe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~apple-app-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-apple-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/yugenox~apple-app-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-apple-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/yugenox~apple-app-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-apple-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 (links, IDs or bundle IDs)",
            "type": "array",
            "description": "App Store links (e.g. https://apps.apple.com/us/app/finch-self-care-pet/id1528595748), app IDs (1528595748 or id1528595748) or bundle IDs (com.duolingo.DuolingoMobile). Top-chart links (apps.apple.com/us/iphone/charts/6014) work too.",
            "items": {
              "type": "string"
            }
          },
          "developers": {
            "title": "🏢 Developers",
            "type": "array",
            "description": "Developer links (e.g. https://apps.apple.com/us/developer/meta-platforms-inc/id284882218) or developer IDs. Every iPhone, iPad and Mac app of that developer is saved (up to 200 per developer).",
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "🏆 Top charts",
            "type": "array",
            "description": "Save Apple's top charts: Top Free and/or Top Paid (up to 200 positions each). Pick the platform and categories below.",
            "items": {
              "type": "string",
              "enum": [
                "top-free",
                "top-paid"
              ],
              "enumTitles": [
                "Top Free",
                "Top Paid"
              ]
            }
          },
          "chartPlatforms": {
            "title": "Chart platform",
            "type": "array",
            "description": "Which store's charts: iPhone (default), iPad and/or Mac.",
            "items": {
              "type": "string",
              "enum": [
                "iphone",
                "ipad",
                "mac"
              ],
              "enumTitles": [
                "iPhone",
                "iPad",
                "Mac"
              ]
            },
            "default": [
              "iphone"
            ]
          },
          "chartCategories": {
            "title": "Chart categories",
            "type": "array",
            "description": "Leave empty for All Apps. Category names: Games, Books, Business, Developer Tools, Education, Entertainment, Finance, Food & Drink, Graphics & Design, Health & Fitness, Lifestyle, Magazines & Newspapers, Medical, Music, Navigation, News, Photo & Video, Productivity, Reference, Shopping, Social Networking, Sports, Travel, Utilities, Weather. Game genres: \"Games: Action\", \"Games: Puzzle\", \"Games: Casual\", \"Games: Strategy\" … (Action, Adventure, Board, Card, Casino, Casual, Family, Music, Puzzle, Racing, Role Playing, Simulation, Sports, Strategy, Trivia, Word). Numeric category IDs (e.g. 6014) work too.",
            "items": {
              "type": "string"
            }
          },
          "chartLimit": {
            "title": "Positions per chart",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many places of each chart to save (1–200).",
            "default": 100
          },
          "countries": {
            "title": "🌍 Countries",
            "type": "array",
            "description": "Two-letter App Store country codes, e.g. us, gb, de, fr, jp, in, br — or country names, or \"all\" for all 169 App Store countries. Every app, developer and chart is scraped in every country you list (price, currency, rating and texts differ per country). Leave empty for the United States (or the country in each pasted link).",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language of names and texts",
            "enum": [
              "store",
              "en",
              "ja"
            ],
            "type": "string",
            "description": "Each store's own language (default; e.g. German in Germany), or always English, or always Japanese.",
            "default": "store"
          },
          "monitorChanges": {
            "title": "Compare with the previous run (monitor mode)",
            "type": "boolean",
            "description": "Each row gets \"changes\" (new, price, rating, version, title, rank, newInChart) and the previous values, compared with the last run of the same input. Schedule the run daily to track prices, ratings, updates and chart positions.",
            "default": false
          },
          "onlyChanges": {
            "title": "Only save apps that changed",
            "type": "boolean",
            "description": "Turns monitor mode on and saves only new or changed apps. Unchanged apps are checked (a small \"check\" charge each) but not saved. The first run saves everything.",
            "default": false
          },
          "monitorName": {
            "title": "Watchlist name",
            "type": "string",
            "description": "Optional. Runs with the same name share their history. Leave empty to use one history per distinct input."
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on saved rows for the whole run, shared fairly between countries. 0 = no cap.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Parallel requests (each from a different proxy IP).",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is the default and comes with every Apify plan; the App Store country is chosen above, not by the proxy. If Apple refuses datacenter IPs for a while, the run switches to residential proxies when your account has them.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}