{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Search Scraper - Top Charts & Keyword Rankings (ASO)",
    "description": "App Store search scraper: get Apple App Store search results by keyword with rank positions, top charts (free, paid, grossing, by category), developer apps and app details via Apple's official APIs. ASO keyword rank tracking. $1 per 1,000 apps.",
    "version": "0.1",
    "x-build-id": "A3graUajWbdH2wn0K"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pandabear~app-store-search-charts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pandabear-app-store-search-charts-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/pandabear~app-store-search-charts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-pandabear-app-store-search-charts-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/pandabear~app-store-search-charts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-pandabear-app-store-search-charts-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 keywords",
            "type": "array",
            "description": "Keywords to search on the App Store. Each result gets its rank position for that keyword.",
            "default": [
              "habit tracker"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Max results per keyword",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Up to 200 (Apple's limit).",
            "default": 20
          },
          "trackApps": {
            "title": "Track keyword ranks for these apps (ASO)",
            "type": "array",
            "description": "Optional. App Store URLs, app IDs, bundle IDs or names. For each keyword and country, the SUMMARY record shows where these apps rank (or null if outside the results).",
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "Top charts",
            "type": "array",
            "description": "Optional. Apple top charts to scrape.",
            "items": {
              "type": "string",
              "enum": [
                "topFree",
                "topPaid",
                "topGrossing",
                "topFreeIpad",
                "topPaidIpad",
                "topGrossingIpad",
                "new",
                "newFree",
                "newPaid"
              ],
              "enumTitles": [
                "Top Free iPhone",
                "Top Paid iPhone",
                "Top Grossing iPhone",
                "Top Free iPad",
                "Top Paid iPad",
                "Top Grossing iPad",
                "New apps",
                "New free apps",
                "New paid apps"
              ]
            }
          },
          "chartCategories": {
            "title": "Chart categories",
            "type": "array",
            "description": "Optional. Category names or IDs, e.g. Games, Productivity, Health & Fitness, Finance, 6014. Empty = overall charts.",
            "items": {
              "type": "string"
            }
          },
          "chartLimit": {
            "title": "Apps per chart",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Up to 200 (Apple usually serves 100–200).",
            "default": 100
          },
          "apps": {
            "title": "App details (URLs, IDs or bundle IDs)",
            "type": "array",
            "description": "Optional. Get full details for specific apps.",
            "items": {
              "type": "string"
            }
          },
          "developers": {
            "title": "Developers (all their apps)",
            "type": "array",
            "description": "Optional. Developer page URLs (https://apps.apple.com/us/developer/.../id284882218), developer IDs or names.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries (storefronts)",
            "type": "array",
            "description": "Two-letter App Store country codes, e.g. us, gb, de, jp. Every source is collected for each country.",
            "default": [
              "us"
            ],
            "items": {
              "type": "string"
            }
          },
          "includeDescription": {
            "title": "Include description & release notes",
            "type": "boolean",
            "description": "Long text fields. Turn off for smaller output.",
            "default": true
          },
          "enrichChartApps": {
            "title": "Full details for chart apps",
            "type": "boolean",
            "description": "Add ratings, rating count, version, size, etc. to chart entries via the official Lookup API.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}