{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple App Store Scraper — Apps, Ratings, Charts & Developers",
    "description": "Scrape the Apple App Store: search results with rank, full app details by id, URL or bundle id, a developer's apps, and top free / paid / grossing charts by country and genre. One flat row per app: ratings, price, version, size, screenshots. $1 per 1,000 apps + $0.001/run.",
    "version": "0.1",
    "x-build-id": "8nz4IWBugusJ7jd3X"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tagadanar~apple-app-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tagadanar-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/tagadanar~apple-app-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tagadanar-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/tagadanar~apple-app-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tagadanar-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "App Store searches, as users type them (e.g. \"habit tracker\", \"budget planner\"). Each term returns up to \"Max apps\" apps in Apple's search order, with searchRank 1, 2, 3… Up to 100 terms per run.",
            "items": {
              "type": "string"
            }
          },
          "appIds": {
            "title": "App ids, URLs or bundle ids",
            "type": "array",
            "description": "Apps to fetch in full: the numeric App Store id (1232780281), the apps.apple.com link, or the bundle id (com.burbn.instagram). Up to 1,000 per run, looked up 100 at a time. An id that does not exist in the chosen country is named in the run status and never charged.",
            "items": {
              "type": "string"
            }
          },
          "developerIds": {
            "title": "Developer ids or URLs",
            "type": "array",
            "description": "Developers whose apps you want: the number after /developer/…/id in a developer page link (284882218 for Meta), or the link itself. Returns up to \"Max apps\" of their apps in the chosen country (Apple lists at most 200).",
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "Top charts",
            "type": "array",
            "description": "App Store top charts to return in rank order (chartRank 1, 2, 3…). Apple's chart feeds list up to 100 apps. Combine with Chart genre for a category chart (the new-apps lists have no genre filter).",
            "items": {
              "type": "string",
              "enum": [
                "top-free",
                "top-paid",
                "top-grossing",
                "top-free-ipad",
                "top-paid-ipad",
                "top-grossing-ipad",
                "new-free",
                "new-paid"
              ],
              "enumTitles": [
                "Top free (iPhone)",
                "Top paid (iPhone)",
                "Top grossing (iPhone)",
                "Top free (iPad)",
                "Top paid (iPad)",
                "Top grossing (iPad)",
                "New free apps",
                "New paid apps"
              ]
            }
          },
          "chartGenre": {
            "title": "Chart genre",
            "enum": [
              "all",
              "6018",
              "6000",
              "6026",
              "6017",
              "6016",
              "6015",
              "6023",
              "6014",
              "6027",
              "6013",
              "6012",
              "6021",
              "6020",
              "6011",
              "6010",
              "6009",
              "6008",
              "6007",
              "6006",
              "6024",
              "6005",
              "6004",
              "6003",
              "6002",
              "6001"
            ],
            "type": "string",
            "description": "Optional: limit the top charts to one App Store category. Leave on All apps for the overall chart.",
            "default": "all"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter code of the App Store storefront (us, gb, de, fr, jp, br…). Prices, ratings, charts and search results are per country. Default: us.",
            "default": "us"
          },
          "maxApps": {
            "title": "Max apps per search, developer or chart",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many apps to return for each search term, developer and chart. Apple's search API returns at most about 190 per term; charts stop at 100. App ids always return every app found.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}