{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple Scraper | App Store Apps, Ratings and Charts",
    "description": "Apple App Store scraper: find apps by keyword, top chart, developer link, app id or bundle id, in any country. Get 100 apps in 2 seconds with 43 fields each: rating, ratings count, price, developer, category, release and update dates, languages, screenshots, plus in-app purchases. No account.",
    "version": "1.0",
    "x-build-id": "yu2X61SDTwdgIKTcv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~apple-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-apple-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/silentflow~apple-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-apple-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/silentflow~apple-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-apple-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": {
          "keywords": {
            "title": "🔎 Search keywords",
            "type": "array",
            "description": "Words to search in the App Store, as you would type them on an iPhone: <code>photo editor</code>, <code>vpn</code>, <code>budget</code>, <code>meditation</code>. Every matching app becomes one row, in the App Store's own order (<code>position</code>). Apple returns up to about 200 apps per keyword; add more keywords to go wider, an app found twice is delivered once.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 App Store links",
            "type": "array",
            "description": "Paste App Store pages copied from a browser or the Share button:<ul><li>an app: <code>https://apps.apple.com/us/app/instagram/id389801252</code></li><li>a developer, for all of its apps: <code>https://apps.apple.com/us/developer/meta-platforms-inc/id284882218</code></li><li>a top chart: <code>https://apps.apple.com/us/iphone/charts/6014?chart=top-free</code></li></ul>The country in the link wins over the country field, so a <code>/gb/</code> link reads the UK store.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "appIds": {
            "title": "🆔 App ids or bundle ids",
            "type": "array",
            "description": "The numeric App Store id (<code>389801252</code>, the digits after <code>id</code> in any App Store link) or the bundle id (<code>com.burbn.instagram</code>). Up to 100 apps are read in one go, so a watchlist of competitors refreshes in seconds. An id the store does not carry gives no row and is counted in the run summary.",
            "items": {
              "type": "string"
            }
          },
          "chart": {
            "title": "🏆 Top chart",
            "enum": [
              "",
              "top-free",
              "top-paid",
              "top-grossing",
              "new-free",
              "new-paid",
              "top-free-ipad",
              "top-paid-ipad",
              "top-grossing-ipad",
              "top-free-mac"
            ],
            "type": "string",
            "description": "One of Apple's charts, 100 ranked apps at most, each with its rank in <code>position</code>. Runs next to your keywords and links. With no keyword, link or id at all, the run reads the top free iPhone chart.",
            "default": ""
          },
          "category": {
            "title": "📂 Category",
            "enum": [
              "",
              "games",
              "business",
              "education",
              "entertainment",
              "finance",
              "food-drink",
              "health-fitness",
              "lifestyle",
              "medical",
              "music",
              "navigation",
              "news",
              "photo-video",
              "productivity",
              "reference",
              "shopping",
              "social-networking",
              "sports",
              "travel",
              "utilities",
              "weather",
              "books",
              "developer-tools",
              "graphics-design",
              "magazines-newspapers"
            ],
            "type": "string",
            "description": "Limit the chart to one App Store category: <b>Top grossing</b> + <b>Finance</b> lists the finance apps that earn the most. A category alone, with no chart picked, reads its top free iPhone chart.",
            "default": ""
          },
          "country": {
            "title": "🌍 App Store country",
            "type": "string",
            "description": "Two-letter country code of the store: <code>us</code>, <code>gb</code>, <code>de</code>, <code>fr</code>, <code>jp</code>, <code>br</code>, <code>in</code>. Prices, currency, ratings, rankings and search results are those of that country; an app missing from a store gives no row there.",
            "default": "us"
          },
          "maxItems": {
            "title": "🔢 Max apps",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many apps, across keywords, links, ids and the chart. 100 apps from a keyword take a few seconds. Set it to what you need, the cost grows with it.",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Read each app's App Store page",
            "type": "boolean",
            "description": "Open every app's public App Store page for the fields only the page shows: <b>subtitle</b>, <b>in-app purchases with their prices</b>, the <b>1 to 5 star ratings histogram</b>, age rating, copyright, privacy policy link, privacy labels (data used to track you, linked and not linked to you) and the app's rank in its category chart. Adds two to three seconds per app: 50 apps take under three minutes. A page that cannot be read leaves the row with every other field.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}