{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple App Store Scraper: Reviews, Apps & Charts",
    "description": "Apple App Store app details (rating, ratings count, price, version, what's new, age rating), keyword search rankings, top free, paid and grossing charts by genre, a developer's apps, and reviews with date and rating filters, no reviewer personal data. Any country.",
    "version": "0.1",
    "x-build-id": "kMXsRWSheTbECjVJB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fabricalabs~apple-app-store/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fabricalabs-apple-app-store",
        "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/fabricalabs~apple-app-store/runs": {
      "post": {
        "operationId": "runs-sync-fabricalabs-apple-app-store",
        "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/fabricalabs~apple-app-store/run-sync": {
      "post": {
        "operationId": "run-sync-fabricalabs-apple-app-store",
        "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 collect",
            "enum": [
              "search",
              "details",
              "reviews",
              "developer",
              "topCharts"
            ],
            "type": "string",
            "description": "What to collect. App details: every public field of each app. Search: the apps the App Store shows for keywords, with positions. Reviews: rating, title, text, date and app version, without reviewer data. A developer's apps, or a top chart (free, paid or grossing) per genre and country, each app with its position.",
            "default": "details"
          },
          "appIds": {
            "title": "Apps",
            "type": "array",
            "description": "For details and reviews. Apple's numeric app ID (310633997), the bundle ID (com.spotify.client) or the App Store link (https://apps.apple.com/us/app/whatsapp-messenger/id310633997). Up to 200 apps are looked up in one request, so long lists are fast.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "For search mode. Each term returns the apps the App Store shows for it, up to 200, in order, with their position.",
            "items": {
              "type": "string"
            }
          },
          "developerIds": {
            "title": "Developers",
            "type": "array",
            "description": "For a developer's apps. The developer's numeric ID (281956209) or App Store developer link (https://apps.apple.com/us/developer/google/id281956209). Every app row carries developerId, so details or search results lead you to it.",
            "items": {
              "type": "string"
            }
          },
          "chartCollection": {
            "title": "Chart",
            "enum": [
              "topFree",
              "topPaid",
              "topGrossing"
            ],
            "type": "string",
            "description": "For top charts: which ranking. Apple's charts list up to 100 apps per genre and country.",
            "default": "topFree"
          },
          "chartCategory": {
            "title": "Chart genre",
            "type": "string",
            "description": "For top charts: empty for all apps and games, or a genre such as games, productivity, photo-video, health-fitness, social-networking, finance or shopping, a game genre such as games-puzzle or games-action, or Apple's genre ID such as 6014."
          },
          "maxResults": {
            "title": "Maximum results per search term, app, developer or chart",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Results per input in each country. Apple returns at most 200 apps per search or developer, 100 per chart and 500 reviews per app and country. Not used by app details.",
            "default": 100
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter code of the App Store country, e.g. us, gb, de, jp. Prices, rankings, reviews and availability depend on it.",
            "default": "us"
          },
          "countries": {
            "title": "Several countries",
            "type": "array",
            "description": "Optional. Two-letter codes (us, gb, de) to run every input in each of these App Stores; replaces Country when set. Up to 50. Reviews differ per country, so this is also how to get more than 500 reviews of one app.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Optional. Language of titles, descriptions and release notes, as a code like en_us, es_mx or ja_jp. Empty: each country's own language. Apple uses it where that App Store offers the language (en_us in Germany or Japan, es_mx in the US), ignores other known codes and refuses unknown ones. Reviews stay as written."
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "mostRecent",
              "mostHelpful"
            ],
            "type": "string",
            "description": "For reviews: which ones come first. With Most recent, Reviews since stops the paging as soon as older reviews arrive.",
            "default": "mostRecent"
          },
          "reviewScores": {
            "title": "Only reviews with these ratings",
            "type": "array",
            "description": "Optional. Star ratings to keep, e.g. [1, 2] for the unhappy reviews. Leave empty for all. Reviews left out are not charged."
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Optional. Only reviews written or edited on or after this date (2026-09-01), or within this period back from now (7 days). With Most recent, the Actor stops as soon as it reaches older reviews, saving time and money."
          },
          "reviewsUntil": {
            "title": "Reviews until",
            "type": "string",
            "description": "Optional. Only reviews up to this date, inclusive (2026-09-15), or up to this long ago (1 day)."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy is the cheapest option. Either way, requests are paced to Apple's limit of about 20 a minute; switch to residential only if your runs get refused.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}