{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple App Store Top Charts & Reviews Scraper + AI App Ideas",
    "description": "Scrape Apple App Store top charts (free, paid, grossing, new) for any country and category, track rank changes, and analyse recent app reviews for common complaints and praise. Optional AI report of app ideas based on unmet user needs. Uses Apple's public feeds. Pay per app and per report.",
    "version": "1.1",
    "x-build-id": "iSFW6JqHUC88i01CM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/flyingkiwi~app-store-trends-app-ideas/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-flyingkiwi-app-store-trends-app-ideas",
        "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/flyingkiwi~app-store-trends-app-ideas/runs": {
      "post": {
        "operationId": "runs-sync-flyingkiwi-app-store-trends-app-ideas",
        "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/flyingkiwi~app-store-trends-app-ideas/run-sync": {
      "post": {
        "operationId": "run-sync-flyingkiwi-app-store-trends-app-ideas",
        "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": {
          "country": {
            "title": "Country",
            "type": "string",
            "description": "2-letter App Store country code, e.g. us, gb, nz, de, jp.",
            "default": "us"
          },
          "chart": {
            "title": "Chart",
            "enum": [
              "top-free",
              "top-paid",
              "top-grossing",
              "new-free",
              "new-paid"
            ],
            "type": "string",
            "description": "Which App Store chart to read.",
            "default": "top-free"
          },
          "genre": {
            "title": "Category",
            "enum": [
              "all",
              "books",
              "business",
              "developer-tools",
              "education",
              "entertainment",
              "finance",
              "food-drink",
              "games",
              "graphics-design",
              "health-fitness",
              "lifestyle",
              "magazines-newspapers",
              "medical",
              "music",
              "navigation",
              "news",
              "photo-video",
              "productivity",
              "reference",
              "shopping",
              "social-networking",
              "sports",
              "travel",
              "utilities",
              "weather"
            ],
            "type": "string",
            "description": "App Store category. 'all' means the overall chart.",
            "default": "all"
          },
          "chartLimit": {
            "title": "Chart size",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "How many chart positions to read (Apple serves up to 100).",
            "default": 100
          },
          "appsToAnalyse": {
            "title": "Apps to analyse",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "How many apps to analyse in depth (reviews, complaints, praise). Each is charged as one 'app analysed' event.",
            "default": 10
          },
          "pickAppsBy": {
            "title": "Pick apps by",
            "enum": [
              "rising",
              "top"
            ],
            "type": "string",
            "description": "'Rising' favours apps that climbed, are new to the chart, or were released recently. 'Top' takes the highest-ranked apps.",
            "default": "rising"
          },
          "appIds": {
            "title": "Also analyse these apps",
            "type": "array",
            "description": "Optional App Store IDs or app URLs (e.g. https://apps.apple.com/us/app/notion/id1232780281) to analyse as well, such as your own app or competitors.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "reviewsPerApp": {
            "title": "Recent reviews per app",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "How many of the most recent reviews to read per app. Apple's feed serves up to 500.",
            "default": 100
          },
          "generateReport": {
            "title": "Generate AI app-idea report",
            "type": "boolean",
            "description": "Write a Markdown report with rising apps, user complaints and 5-8 concrete app ideas. Needs at least 3 analysed apps. Charged as one 'report' event; the AI model usage is billed separately to your Apify account through Apify's OpenRouter proxy.",
            "default": true
          },
          "aiModel": {
            "title": "AI model",
            "type": "string",
            "description": "Any OpenRouter model ID available through Apify's OpenRouter proxy. The default is fast and cheap.",
            "default": "google/gemini-2.5-flash"
          },
          "reportFocus": {
            "title": "Report focus (optional)",
            "type": "string",
            "description": "Tell the AI what you care about, e.g. 'ideas a solo developer can build in a month' or 'subscription apps for students'."
          },
          "includeChartRows": {
            "title": "Include chart rows",
            "type": "boolean",
            "description": "Output one row per chart position with rating data and rank movement since your last run.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}