{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple App Store Scraper — Apps, Reviews & Charts",
    "description": "Scrape Apple App Store app details, reviews, keyword search, top charts, and developer portfolios in one actor. HTTP-only via official iTunes + RSS endpoints. MCP-ready.",
    "version": "0.2",
    "x-build-id": "dFVZrHbMe58Z5EFby"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~apple-app-store-all-in-one-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-apple-app-store-all-in-one-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/khadinakbar~apple-app-store-all-in-one-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-apple-app-store-all-in-one-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/khadinakbar~apple-app-store-all-in-one-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-apple-app-store-all-in-one-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": {
          "queries": {
            "title": "App URLs, IDs, developer IDs, or search keywords",
            "type": "array",
            "description": "What to scrape. Each item is auto-detected: an App Store app URL (https://apps.apple.com/us/app/instagram/id389801252), a numeric app ID (389801252 or id389801252), a developer URL (https://apps.apple.com/us/developer/id389801252), a 'dev:389801252' developer ID, or a free-text keyword for catalog search ('photo editor'). Ignored when Mode is 'charts'. NOT a Google Play URL — this actor is Apple App Store only.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "auto",
              "app-detail",
              "search",
              "developer-apps",
              "charts"
            ],
            "type": "string",
            "description": "What to do with each query. 'auto' detects intent per query (URL/ID -> app detail or developer apps; keyword -> search). 'charts' ignores queries and returns top-chart rankings instead. Choose a specific mode to force behavior. Defaults to 'auto'.",
            "default": "auto"
          },
          "country": {
            "title": "Storefront country",
            "type": "string",
            "description": "Two-letter ISO country code of the App Store storefront to query (e.g., 'us', 'gb', 'de', 'jp', 'br'). Controls localized metadata, prices, reviews, and chart rankings. Defaults to 'us'. NOT a language code — use 'gb' not 'en'.",
            "default": "us"
          },
          "includeReviews": {
            "title": "Also fetch reviews",
            "type": "boolean",
            "description": "When true, every app returned by app-detail, search, or developer-apps mode is also enriched with its customer reviews (up to Max reviews per app). When false, only app metadata is returned. Reviews are billed separately. Defaults to false.",
            "default": false
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on reviews fetched per app. Apple's public RSS feed caps at ~500 reviews per app per storefront (10 pages x 50). Values above 500 are honored only when the best-effort amp-api path succeeds; otherwise capped at 500. Defaults to 200. Set to 0 to disable reviews even when 'Also fetch reviews' is on.",
            "default": 200
          },
          "reviewsSort": {
            "title": "Reviews sort order",
            "enum": [
              "mostRecent",
              "mostHelpful"
            ],
            "type": "string",
            "description": "Order reviews are returned in. 'mostRecent' returns newest first (best for monitoring). 'mostHelpful' returns highest-voted first (best for sentiment themes). Defaults to 'mostRecent'.",
            "default": "mostRecent"
          },
          "maxResults": {
            "title": "Max results per search / developer / chart",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Upper bound on apps returned per keyword search, per developer portfolio, and per chart. Does not limit reviews (see Max reviews per app). Defaults to 50, maximum 200 (Apple's search and chart APIs cap there). Ignored by app-detail mode.",
            "default": 50
          },
          "chartType": {
            "title": "Chart type (charts mode)",
            "enum": [
              "top-free",
              "top-paid",
              "top-grossing"
            ],
            "type": "string",
            "description": "Which top chart to return when Mode is 'charts'. 'top-free' for free apps, 'top-paid' for paid apps, 'top-grossing' for revenue leaders. Ignored in every other mode. Defaults to 'top-free'.",
            "default": "top-free"
          },
          "chartGenre": {
            "title": "Chart category (charts mode)",
            "enum": [
              "all",
              "6014",
              "6016",
              "6017",
              "6015",
              "6023",
              "6018",
              "6000",
              "6026",
              "6013",
              "6012",
              "6020",
              "6011",
              "6010",
              "6009",
              "6008",
              "6007",
              "6006",
              "6024",
              "6005",
              "6004",
              "6003",
              "6002",
              "6001"
            ],
            "type": "string",
            "description": "App Store category to filter the top chart by, when Mode is 'charts'. 'all' returns the overall chart. Ignored in every other mode. Defaults to 'all'.",
            "default": "all"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy routing for outbound requests. Apple's iTunes and RSS endpoints are open, so the default Apify datacenter proxy is sufficient and cheapest. Enable residential only if you hit rate limits at very high volume. Defaults to Apify Proxy (datacenter).",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}