{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Top Charts & Search Scraper - All Countries",
    "description": "Top free, paid and grossing App Store charts for all 155 countries and every category, plus keyword search results and full app metadata. Track your app's rank across countries in one run. No proxy, no login.",
    "version": "0.1",
    "x-build-id": "43jZRhudha0b8XlO7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/olsols4~app-store-search-top-charts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-olsols4-app-store-search-top-charts",
        "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/olsols4~app-store-search-top-charts/runs": {
      "post": {
        "operationId": "runs-sync-olsols4-app-store-search-top-charts",
        "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/olsols4~app-store-search-top-charts/run-sync": {
      "post": {
        "operationId": "run-sync-olsols4-app-store-search-top-charts",
        "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": {
          "charts": {
            "title": "Top charts",
            "type": "array",
            "description": "Which App Store charts to collect. Each chart returns up to 100 apps per country and category.",
            "items": {
              "type": "string",
              "enum": [
                "top-free",
                "top-paid",
                "top-grossing",
                "top-free-ipad",
                "top-paid-ipad",
                "top-grossing-ipad",
                "new-apps",
                "new-free",
                "new-paid",
                "top-free-mac"
              ],
              "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",
                "Top Free Mac"
              ]
            }
          },
          "genres": {
            "title": "Categories",
            "type": "array",
            "description": "Optional. Category names (games, finance, productivity, puzzle games...) or Apple genre IDs (6014). Leave empty for the overall chart. Add 'all' alongside categories to also get the overall chart.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Two-letter App Store country codes (us, gb, de, jp...). Add ALL for all 155 storefronts.",
            "items": {
              "type": "string"
            }
          },
          "chartLimit": {
            "title": "Apps per chart",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many positions to keep from each chart (Apple publishes up to 100).",
            "default": 100
          },
          "searchTerms": {
            "title": "Search keywords",
            "type": "array",
            "description": "Optional. App Store keyword searches, e.g. 'habit tracker'. Results keep Apple's order, so 'rank' is the keyword ranking in each country.",
            "items": {
              "type": "string"
            }
          },
          "maxSearchResults": {
            "title": "Results per search",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many search results to keep per keyword and country (Apple returns up to 200).",
            "default": 50
          },
          "apps": {
            "title": "Apps",
            "type": "array",
            "description": "Optional. App Store URLs or numeric app IDs (e.g. https://apps.apple.com/us/app/notion/id1232780281). Used for metadata lookups and/or rank tracking, see 'What to do with these apps'.",
            "items": {
              "type": "string"
            }
          },
          "appsMode": {
            "title": "What to do with these apps",
            "enum": [
              "details",
              "trackRanks",
              "both"
            ],
            "type": "string",
            "description": "'Track ranks' keeps only chart and search rows for your apps, so you pay only for positions you care about. An app missing from the output is not in that top list.",
            "default": "details"
          },
          "enrichChartRows": {
            "title": "Add ratings and full metadata to chart rows",
            "type": "boolean",
            "description": "Chart feeds give name, developer, price and category. Turn on to add rating, rating count, version, size, last update, languages and more (one extra lookup per chart). Same price per row.",
            "default": false
          },
          "includeDescription": {
            "title": "Include description",
            "type": "boolean",
            "description": "Adds the full app description text to each row (makes the dataset much larger).",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many chart feeds to fetch at once.",
            "default": 8
          },
          "searchApiDelaySecs": {
            "title": "Search API delay (seconds)",
            "minimum": 0.1,
            "maximum": 10,
            "type": "number",
            "description": "Pause between Apple Search/Lookup API calls. Apple rate-limits this API; raise it if you see 'Gave up' warnings on big search runs.",
            "default": 0.4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}