{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store & Google Play API: iOS, Android, ASO",
    "description": "App Store and Google Play API: iOS and Android app details, keyword search ranks and top charts in any country. Ratings, installs, versions. Pay per app.",
    "version": "0.1",
    "x-build-id": "nwGcWq9b1tMTrgiyy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ocius-data~app-store-data-reliable/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ocius-data-app-store-data-reliable",
        "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/ocius-data~app-store-data-reliable/runs": {
      "post": {
        "operationId": "runs-sync-ocius-data-app-store-data-reliable",
        "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/ocius-data~app-store-data-reliable/run-sync": {
      "post": {
        "operationId": "run-sync-ocius-data-app-store-data-reliable",
        "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": "Mode",
            "enum": [
              "details",
              "search",
              "topCharts"
            ],
            "type": "string",
            "description": "What to extract. Details uses the apps list; Search uses the search terms; Top charts uses chart type and category. Optional: when it is left empty, the mode follows the input (apps: Details; only search terms: Search; neither: Top charts)."
          },
          "apps": {
            "title": "Apps (IDs or URLs)",
            "type": "array",
            "description": "For Details mode. The store is detected automatically: Apple numeric ID (284882215 or id284882215), App Store URL, Google Play package (com.whatsapp) or Google Play URL. Prefix an Apple bundle ID with apple: (for example apple:com.burbn.instagram). You are charged once per app found; IDs not found are free.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "For Search mode. Each term is searched in every selected store and country. Results keep their position (searchPosition) for keyword tracking.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores",
            "type": "array",
            "description": "Stores to use in Search and Top charts modes. In Details mode the store comes from each ID.",
            "items": {
              "type": "string",
              "enum": [
                "appStore",
                "googlePlay"
              ],
              "enumTitles": [
                "Apple App Store",
                "Google Play"
              ]
            },
            "default": [
              "appStore",
              "googlePlay"
            ]
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Two-letter country codes (us, gb, co, de, br...). Each app, term or chart is processed for every country. Prices, currency, ratings and availability depend on the country.",
            "default": [
              "us"
            ],
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language for titles and descriptions, for example en, es, de or pt-BR. Apple applies it only where the country store offers that language.",
            "default": "en"
          },
          "chartType": {
            "title": "Chart type",
            "enum": [
              "free",
              "paid",
              "grossing"
            ],
            "type": "string",
            "description": "Which top chart to extract in Top charts mode.",
            "default": "free"
          },
          "category": {
            "title": "Category",
            "enum": [
              "ALL",
              "GAMES",
              "BOOKS",
              "BUSINESS",
              "EDUCATION",
              "ENTERTAINMENT",
              "FINANCE",
              "FOOD_AND_DRINK",
              "HEALTH_AND_FITNESS",
              "LIFESTYLE",
              "MEDICAL",
              "MUSIC",
              "NAVIGATION",
              "NEWS",
              "PHOTO_AND_VIDEO",
              "PRODUCTIVITY",
              "SHOPPING",
              "SOCIAL",
              "SPORTS",
              "TRAVEL",
              "UTILITIES",
              "WEATHER"
            ],
            "type": "string",
            "description": "Chart category, mapped to the equivalent category in each store.",
            "default": "ALL"
          },
          "maxResults": {
            "title": "Max results per search or chart",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum apps per search term or chart, per store and country. Store limits: Apple search 200, Apple charts 100, Google Play search about 30, Google Play charts 200.",
            "default": 50
          },
          "fetchFullDetails": {
            "title": "Full details for Google Play results",
            "type": "boolean",
            "description": "Open each Google Play app page in Search and Top charts modes to get every field (installs, version, dates, description, screenshots). Turn off for faster runs with basic fields only. Apple results always include full details.",
            "default": true
          },
          "includeDeveloperEmail": {
            "title": "Include developer support email",
            "type": "boolean",
            "description": "Adds the support email that the developer publishes on the Google Play page (a public business contact). Off by default. Apple does not publish it.",
            "default": false
          },
          "maxItems": {
            "title": "Max items per run",
            "minimum": 0,
            "type": "integer",
            "description": "Stops the run after this many dataset items. 0 means no limit.",
            "default": 0
          },
          "maxRetries": {
            "title": "Max attempts per request",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many times a blocked or failed request is attempted, with a new session each time.",
            "default": 6
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel requests to Google Play. Apple requests are spaced automatically to respect its rate limit.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "By default the Actor uses Apify datacenter proxies and switches automatically to residential proxies if a store blocks requests.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}