# Huawei AppGallery Scraper | Cheapest & Reliable 📱🚀 (`contactminerlabs/huawei-appgallery-scraper-cheapest-reliable`) Actor

🔍 Easily Extract Huawei AppGallery Search Results 📱🚀

Collect app listings from Huawei AppGallery, including app name, category, description, icon URL, install label, search keyword, and source URL. Perfect for ASO research, competitor analysis and AI-powered mobile app analytics.

- **URL**: https://apify.com/contactminerlabs/huawei-appgallery-scraper-cheapest-reliable.md
- **Developed by:** [ContactMinerLabs](https://apify.com/contactminerlabs) (community)
- **Categories:** Lead generation, Automation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 📱🚀 Huawei AppGallery Search Scraper | App Search Results Scraper | Apify Actor

### 🚀 Extract Huawei AppGallery Search Results in Seconds (No Code)

The **Huawei AppGallery Search Scraper (Apify Actor)** is a powerful, scalable, and SEO-optimized app intelligence tool designed to extract application search results directly from Huawei AppGallery, one of the world's largest mobile app marketplaces.

Extract thousands of app listings, categories, descriptions, icons, and marketplace intelligence datasets with just a few clicks.

Perfect for:

✅ App market research

✅ Competitor analysis

✅ ASO (App Store Optimization)

✅ Mobile app intelligence

✅ Lead generation

✅ Market monitoring

✅ AI training datasets

✅ App discovery platforms

---

### 🔥 Why This Huawei AppGallery Scraper?

✔ Best Huawei AppGallery scraper on Apify

✔ Bulk keyword search support

✔ Scrape multiple search terms in a single run

✔ Fast & scalable extraction engine

✔ Structured JSON / CSV / Excel output

✔ Ideal for app intelligence workflows

✔ No coding required

---

### 🎯 What This Scraper Does

This Apify Actor extracts app listings directly from Huawei AppGallery search result pages.

Simply provide one or multiple keywords and the scraper automatically collects available app results.

#### 📌 Core Features

✅ Search Huawei AppGallery by keyword

✅ Bulk keyword scraping

✅ Extract app names

✅ Extract categories

✅ Extract descriptions

✅ Extract app icons

✅ Extract install button labels

✅ Structured export-ready datasets

✅ Fast cloud execution

---

### ⚡ Input Configuration

#### 🔍 KEYWORD SEARCH MODE

````

{
"keywords": \[
"beauty",
"foot",
"fitness"
],
"max\_items\_per\_keyword": 50
}

```

The scraper automatically builds search URLs such as:

```

https://appgallery.huawei.com/search/beauty
https://appgallery.huawei.com/search/foot
https://appgallery.huawei.com/search/fitness

```

and extracts available application results.

---

### 📊 Extracted App Data

| Field         | Description                  |
| ------------- | ---------------------------- |
| name          | Application name             |
| category      | App category                 |
| description   | Short app description        |
| icon          | App icon URL                 |
| installLabel  | Install button text          |
| searchKeyword | Keyword used for search      |
| sourceUrl     | Huawei AppGallery search URL |

---

### 📦 Example Output

```

{
"name": "Soccer Kicks",
"category": "Sports Games",
"description": "Real soccer kicks, one of the best soccer games.",
"icon": "https://appimg-drcn.dbankcdn.com/application/icon144/example.png",
"installLabel": "Install",
"searchKeyword": "foot",
"sourceUrl": "https://appgallery.huawei.com/search/foot"
}

```

---

### 💡 Use Cases

#### 📱 App Market Research

Analyze app availability and visibility across Huawei AppGallery.

#### 📊 Competitor Intelligence

Monitor competitors appearing for targeted keywords.

#### 🚀 ASO Research

Study keyword competition and discover ranking opportunities.

#### 🏢 Mobile Industry Analytics

Track:

• App categories

• App descriptions

• Marketplace trends

• Competitive landscapes

#### 🤖 AI & Machine Learning

Generate datasets for:

• App classification

• Search relevance models

• Market analysis

• Mobile intelligence systems

---

### 🚀 Key Features

⚡ Bulk keyword support

📱 Mobile app marketplace extraction

📊 Structured datasets

🧠 Clean JSON output

💾 Export-ready results

🔁 Auto retry system

⚙️ Scalable Apify cloud execution

🌍 Huawei AppGallery coverage

---

### 📤 Export Formats Supported

✔ JSON

✔ CSV

✔ Excel (XLSX)

✔ XML

✔ HTML

✔ API Access

---

### 🔥 Why This Is The BEST Huawei AppGallery Scraper On Apify?

✔ Optimized for AppGallery search extraction

✔ Bulk keyword support

✔ Fast scraping engine

✔ Reliable cloud execution

✔ Structured app intelligence datasets

✔ Enterprise-ready scalability

✔ Perfect for ASO and market research

✔ Built for mobile app intelligence workflows

---

### 🔒 Proxy Recommendation

To maximize reliability and reduce detection risks:

```

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": \["RESIDENTIAL"]
}
}

```

Residential proxies are strongly recommended for large-scale scraping.

---

### 💸 Pricing

This scraper runs on a pay-per-result pricing model.

You only pay for successfully extracted records.

💳 Price: $9.98 / 1,000 results

---

### ❓ FAQ

#### Can I scrape multiple keywords at once?

Yes.

Simply provide multiple keywords and the scraper will process each one.

#### Can I limit the number of apps extracted?

Yes.

Use:

```

{
"max\_items\_per\_keyword": 50
}

````

#### Can I export data?

Yes.

Supported formats:

• JSON

• CSV

• Excel

• XML

• HTML

#### Is coding required?

No.

This is a fully no-code Apify Actor.

---

### ⚠️ Disclaimer

This tool is an independent automation and data extraction solution.

It is not affiliated with, endorsed by, or sponsored by Huawei or Huawei AppGallery.

---

### 🌍 ContactMinerLabs Ecosystem

Built for large-scale:

📊 Data extraction

🚀 Automation

🏢 Business intelligence

📈 Market research

🤖 AI datasets

⚙️ Scalable cloud scraping

---

### 📬 Support

⭐⭐⭐⭐⭐ Leave a review if you enjoy this scraper.

📩 Need custom scraping solutions or enterprise features?

Contact ContactMinerLabs through Apify.

# Actor input Schema

## `keywords` (type: `array`):

List of search keywords. 

Examples:
• beauty
• foot
• fitness
## `max_items_per_keyword` (type: `integer`):

Maximum number of apps to extract per keyword. 
## `language` (type: `string`):

Sets the browser locale, timezone, and Accept-Language header used to load AppGallery — affects which language the search results (names, categories, descriptions) are returned in.
## `useSharedBrowserContext` (type: `boolean`):

When enabled, all keywords are scraped within a single shared browser context (same cookies/session) instead of a fresh one per keyword. Can help avoid anti-bot heuristics that flag repeated 'first visit' sessions, at the cost of slightly less isolation between keywords.
## `proxyConfiguration` (type: `object`):

Recommended: use residential proxies to reduce detection risk.

## Actor input object example

```json
{
  "keywords": [
    "beauty"
  ],
  "max_items_per_keyword": 50,
  "language": "en",
  "useSharedBrowserContext": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "beauty"
    ],
    "max_items_per_keyword": 50,
    "language": "en",
    "useSharedBrowserContext": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("contactminerlabs/huawei-appgallery-scraper-cheapest-reliable").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["beauty"],
    "max_items_per_keyword": 50,
    "language": "en",
    "useSharedBrowserContext": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("contactminerlabs/huawei-appgallery-scraper-cheapest-reliable").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "beauty"
  ],
  "max_items_per_keyword": 50,
  "language": "en",
  "useSharedBrowserContext": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call contactminerlabs/huawei-appgallery-scraper-cheapest-reliable --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=contactminerlabs/huawei-appgallery-scraper-cheapest-reliable",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Huawei AppGallery Scraper | Cheapest & Reliable 📱🚀",
        "description": "🔍 Easily Extract Huawei AppGallery Search Results 📱🚀\n\nCollect app listings from Huawei AppGallery, including app name, category, description, icon URL, install label, search keyword, and source URL. Perfect for ASO research, competitor analysis and AI-powered mobile app analytics.",
        "version": "0.0",
        "x-build-id": "Y9oewFJvR9T7XxkRl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/contactminerlabs~huawei-appgallery-scraper-cheapest-reliable/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-contactminerlabs-huawei-appgallery-scraper-cheapest-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/contactminerlabs~huawei-appgallery-scraper-cheapest-reliable/runs": {
            "post": {
                "operationId": "runs-sync-contactminerlabs-huawei-appgallery-scraper-cheapest-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/contactminerlabs~huawei-appgallery-scraper-cheapest-reliable/run-sync": {
            "post": {
                "operationId": "run-sync-contactminerlabs-huawei-appgallery-scraper-cheapest-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",
                "required": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Search Keywords 🔍",
                        "type": "array",
                        "description": "List of search keywords. \n\nExamples:\n• beauty\n• foot\n• fitness",
                        "default": [
                            "beauty"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_items_per_keyword": {
                        "title": "Maximum Apps to Scrape per Keyword",
                        "type": "integer",
                        "description": "Maximum number of apps to extract per keyword. ",
                        "default": 50
                    },
                    "language": {
                        "title": "Language / Locale 🌐",
                        "enum": [
                            "fr",
                            "en",
                            "de",
                            "es",
                            "it",
                            "pt",
                            "ar",
                            "zh"
                        ],
                        "type": "string",
                        "description": "Sets the browser locale, timezone, and Accept-Language header used to load AppGallery — affects which language the search results (names, categories, descriptions) are returned in.",
                        "default": "en"
                    },
                    "useSharedBrowserContext": {
                        "title": "Reuse Browser Context Across Keywords 🔄",
                        "type": "boolean",
                        "description": "When enabled, all keywords are scraped within a single shared browser context (same cookies/session) instead of a fresh one per keyword. Can help avoid anti-bot heuristics that flag repeated 'first visit' sessions, at the cost of slightly less isolation between keywords.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Recommended: use residential proxies to reduce detection risk.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
