{
  "openapi": "3.0.1",
  "info": {
    "title": "Huawei AppGallery Scraper - App Data, Ratings & Reviews",
    "description": "Huawei AppGallery scraper and app data API, no API key. Search or look up apps by ID, URL or Android package name and export name, developer, ratings, reviews, downloads, size, version, screenshots, permissions and privacy data across 10 locales. For ASO and app market research. JSON, CSV, Excel.",
    "version": "0.1",
    "x-build-id": "h05PVmpTc9IMxaqGm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~huawei-appgallery-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-huawei-appgallery-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/scrapers_lat~huawei-appgallery-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-huawei-appgallery-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/scrapers_lat~huawei-appgallery-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-huawei-appgallery-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": {
          "maxApps": {
            "title": "Max Apps",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of apps to collect across the whole run. Optional."
          },
          "withDetails": {
            "title": "Fetch Full Details",
            "type": "boolean",
            "description": "When enabled, every app found in search mode is enriched by fetching its detail page (full description, screenshots, developer, release date, exact size and version). When disabled, only the listing-level fields are returned. App IDs mode always fetches full details.",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "appIds",
              "packageNames"
            ],
            "type": "string",
            "description": "How to find apps. Search finds apps by keyword. App IDs looks up specific AppGallery app IDs.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Keyword to search for, used when mode is Search. Example: whatsapp, game, photo editor, vpn."
          },
          "appIds": {
            "title": "App IDs",
            "type": "array",
            "description": "Huawei AppGallery app IDs OR full app URLs to look up, used when mode is App IDs. IDs start with C followed by digits, for example C101184875 (Telegram), C101130285 (Viber). You can paste a full AppGallery app URL and the ID is extracted automatically.",
            "items": {
              "type": "string"
            }
          },
          "packageNames": {
            "title": "Package Names",
            "type": "array",
            "description": "Android package names to look up, used when mode is Package names. Example: org.telegram.messenger, com.viber.voip. The app must be listed in the chosen locale's AppGallery catalog.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Locale",
            "enum": [
              "en_US",
              "en_GB",
              "es_ES",
              "es_LA",
              "pt_BR",
              "zh_CN",
              "ru_RU",
              "de_DE",
              "fr_FR",
              "it_IT"
            ],
            "type": "string",
            "description": "Locale for the returned text and store region. Affects app availability, language of titles and descriptions.",
            "default": "en_US"
          },
          "withSummary": {
            "title": "AI app summary (paid add-on)",
            "type": "boolean",
            "description": "Use AI to write a concise summary of each app from its description and editorial text. Charged per app summarised. Paid plans only.",
            "default": false
          },
          "withCategorize": {
            "title": "AI category & tags (paid add-on)",
            "type": "boolean",
            "description": "Use AI to classify each app's category and topical keyword tags. Charged per app classified. Paid plans only.",
            "default": false
          },
          "withReviewSentiment": {
            "title": "AI review sentiment (paid add-on)",
            "type": "boolean",
            "description": "Use AI to analyse aggregate user-review sentiment and recurring themes for each app (only when reviews are present). Charged per app analysed. Paid plans only.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy used to reach the store. Leave the default (Apify Residential) for best reliability. AppGallery returns no search results to US IPs, so a non-US country is selected automatically to match your locale when the country is left blank.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}