# AliExpress Scraper for Dropshipping - Exact Sales & Prices (`badr_xba/aliexpress-scraper`) Actor

Find winning AliExpress products by keyword: exact sales count (not '10,000+'), price, original price, discount, rating, Choice badge and delivery days. Rating and order-count filters run before saving, so skipped products are not billed. $3 per 1,000 products.

- **URL**: https://apify.com/badr_xba/aliexpress-scraper.md
- **Developed by:** [Badr Bouargan](https://apify.com/badr_xba) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 products

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AliExpress Scraper for Dropshipping – Exact Sales, Prices & Delivery

![AliExpress Scraper: visual report of a real run, key figures and charts](https://api.apify.com/v2/key-value-stores/R1P4OnWyoV0LnGBin/records/aliexpress-scraper-overview.png)

**Type a product idea, pick the country you sell to, and get every matching AliExpress product with its price, discount, exact number of sales, rating, ship-from warehouse and delivery days.**

**The problem it solves.** AliExpress rounds its sales figures ("10,000+ sold"), changes prices and delivery times with the *Deliver to* country, and mixes sponsored listings and unrelated suggestions into results. Comparing products by hand in a browser is slow and misleading. This Actor turns a search into a clean table where products can be ranked by real demand, real landed price and real delivery time, for your market.

**Who it is for.** Dropshippers and Shopify / WooCommerce / TikTok Shop sellers looking for winning products; importers and resellers in Morocco, Egypt, Nigeria, Saudi Arabia, the UAE and Europe who source from AliExpress; price-monitoring and market-research teams; developers and AI agents that need AliExpress search data through an API.

**What you get, per product:** `title`, `url`, `price`, `originalPrice`, `discountPercent`, `currency`, `soldCount` (exact) and `soldText`, `rating`, `isChoice`, `isAd`, `shipsFrom`, `deliveryDaysMin` / `deliveryDaysMax`, estimated delivery dates, `freeShipping`, `storeName` (when shown), `categoryId`, `images`, `searchResultTotal`, `position`, `country`, `scrapedAt`. Full example below.

### Start in 3 steps

1. Open [AliExpress Scraper on Apify Store](https://apify.com/badr_xba/aliexpress-scraper) and click **Try for free**.
2. Type one or more **Search terms** (for example `wireless earbuds`), pick **Deliver to** (your market: the currency and language follow), optionally sort by **Best selling**.
3. Click **Start**, then export the products as Excel, CSV or JSON, or send them to Google Sheets.

No AliExpress account, login or cookies needed.

### Why choose this Actor

- **Exact sales, not rounded labels.** You get `soldCount: 155346` next to the site label `soldText: "100K+ sold"`, so products can be ranked by actual demand.
- **63 deliver-to markets, 44 currencies.** Including Morocco (MAD), Egypt (EGP), Nigeria (NGN), South Africa (ZAR), Saudi Arabia (SAR), the UAE (AED), Qatar, Kuwait, Turkey, Europe, the Americas and Asia. Products, prices, VAT, warehouses and delivery times are the ones a shopper there sees.
- **Fast-delivery stock.** Filter on *Ships from* (US, Spain, France, Germany, Poland, Saudi Arabia, UAE…) and read the delivery window of every product.
- **Filters that are never billed.** *Minimum rating*, *Minimum orders* and *Include sponsored products* are applied before saving: skipped products cost nothing. Duplicates, unrelated "suggestions" and failed searches are free too.
- **Niche saturation at a glance.** `searchResultTotal` tells you how crowded a search term is in your market.
- **One simple price.** One event per product saved plus a tiny $0.00005 start fee per run, proxies included (residential fallback in your market when AliExpress refuses a page, at no extra cost to you).

### How much it costs

Pay per product saved. Platform usage and proxies are included.

| Event | Free plan | Starter | Scale | Business |
| --- | --- | --- | --- | --- |
| Product | $0.003 | $0.0024 | $0.00195 | $0.0015 |
| **Per 1,000 products** | **$3.00** | **$2.40** | **$1.95** | **$1.50** |

Worked examples on the Free plan: 50 products = $0.15 · **1,000 products = $3.00** · 10,000 products = $30.00. On the Business plan, 1,000 products = $1.50.

**Never billed:** duplicates, products removed by your rating / orders / ads filters, unrelated suggestions AliExpress adds when a search has no real match, and searches that fail. Set *Maximum cost per run* when you start the Actor and it stops cleanly at that amount.

### Use cases

- **Dropshipping product research:** sort by best selling, keep 4.8★+ products with 1,000+ real sales, then check delivery days and the ship-from warehouse.
- **Sourcing for an African or Middle-East shop:** set *Deliver to* Morocco, Egypt, Nigeria, Saudi Arabia or the UAE and read prices in MAD, EGP, NGN, SAR or AED with the delivery time to that country.
- **AliExpress-to-marketplace arbitrage:** compare AliExpress cost with selling prices on local marketplaces, for example with [Jumia Scraper](https://apify.com/badr_xba/jumia-scraper) (8 African countries) or [Marjane Mall Scraper](https://apify.com/badr_xba/marjane-mall-scraper) (Morocco).
- **Price and trend monitoring:** schedule the same searches daily and watch prices, discounts and sales counts move.
- **Market research:** compare `searchResultTotal` between terms to find crowded and empty niches, in any of 63 markets.

### Input examples

**Quick start**

```json
{
  "keywords": ["wireless earbuds"],
  "maxResults": 50,
  "country": "US",
  "sort": "orders"
}
```

**Best sellers under a price ceiling**

```json
{
  "keywords": ["kitchen gadget"],
  "sort": "orders",
  "priceMax": 10,
  "filters": ["four_star_plus"],
  "maxResults": 200
}
```

**Several products at once, French market in euros**

```json
{
  "keywords": ["led strip light", "smart bulb", "motion sensor light"],
  "country": "FR",
  "maxResults": 300
}
```

*Number of products* is the total for the run, shared evenly between your search terms. Use *Products per search term* if you want a fixed number for each term.

**Morocco, prices in dirhams**

```json
{
  "keywords": ["phone holder", "car charger"],
  "country": "MA",
  "sort": "orders",
  "maxResults": 60
}
```

**Stock already in the US, for fast delivery**

```json
{
  "keywords": ["garden hose"],
  "country": "US",
  "shipFrom": "US",
  "maxResults": 150
}
```

**Only proven products** (rating 4.8+ and 1,000+ real sales, no sponsored listings)

```json
{
  "keywords": ["phone holder"],
  "sort": "orders",
  "minRating": "4.8",
  "minOrders": 1000,
  "includeAds": false,
  "maxResults": 100
}
```

**A category or a search you already filtered on AliExpress**

```json
{
  "startUrls": ["https://www.aliexpress.com/category/63705/earphones-headphones.html"],
  "maxResults": 100
}
```

### Input parameters

| Field | Type | Description |
| --- | --- | --- |
| `keywords` | array | Search terms, one per line. `searchQueries`, `query` and `search` are accepted too. |
| `startUrls` | array | AliExpress search or category URLs. Filters already in the URL are kept. |
| `maxResults` | integer | Total products for the run (default 50). `0` = no limit: everything AliExpress shows, about 3,600 per term. |
| `country` | string | Deliver-to market, one of 63 (default `US`). |
| `currency` | string | Currency of all prices. Empty = the currency of the country. |
| `language` | string | Language of titles. Empty = the language of the country. |
| `sort` | string | `relevance`, `orders` (best selling), `price_asc`, `price_desc`. |
| `filters` | array | `free_shipping`, `four_star_plus`, `choice`, `big_sale`, `ships_from_local`. |
| `priceMin` / `priceMax` | integer | Price range in the selected currency. |
| `shipFrom` | string | Only products shipped from this country (`CN`, `US`, `ES`, `FR`, `DE`, `PL`…). |
| `categoryId` | string | Keep one category (copy a `categoryId` from a previous run). |
| `minRating` | string | Keep products rated at least this, e.g. `4.5`. Others are skipped and not billed. |
| `minOrders` | integer | Keep products with at least this many real sales. Others are skipped and not billed. |
| `includeAds` | boolean | Keep sponsored listings (flagged `isAd`). Default `true`. |
| `deduplicate` | boolean | A product found by several terms is saved and billed once. Default `true`. |
| `maxResultsPerKeyword` | integer | Fixed number of products per term instead of sharing `maxResults`. |

### Output example

![AliExpress Scraper: result cards from a real run](https://api.apify.com/v2/key-value-stores/R1P4OnWyoV0LnGBin/records/aliexpress-scraper-results.png)

*Screenshots from a real platform run.*

One row per product. This is a real row from a run (`keywords: ["phone holder"]`, `sort: "orders"`):

```json
{
  "productId": "3256806808312725",
  "url": "https://www.aliexpress.us/item/3256806808312725.html",
  "title": "Magnetic Car Phone Holder Universal Car Dashboard Wall Mounted Phone Stand Car Magnet Sticker for iPhone Samsung Xiaomi Huawei",
  "price": 0.33,
  "priceFormatted": "US $0.33",
  "originalPrice": 3.84,
  "discountPercent": 91,
  "currency": "USD",
  "currencySymbol": "$",
  "taxRate": 0.0,
  "isFreeGift": false,
  "isNewShopperPrice": false,
  "lowestPriceDays": null,
  "rating": 4.9,
  "soldCount": 155346,
  "soldText": "100K+ sold",
  "isChoice": true,
  "isAd": false,
  "freeShipping": false,
  "freeShippingCondition": null,
  "shipsFrom": "CN",
  "deliveryDaysMin": 6,
  "deliveryDaysMax": 12,
  "estimatedDeliveryFrom": "2026-11-08",
  "estimatedDeliveryTo": "2026-11-14",
  "storeName": null,
  "companyName": null,
  "categoryId": "5093004",
  "categoryPath": ["202192403", "202228620", "5093004"],
  "postCategoryId": "5093004",
  "listedAt": "2024-05-16 00:00:00",
  "image": "https://ae-pic-a1.aliexpress-media.com/kf/S935229b680484514bb97733e91fe62edn.jpg",
  "imageWidth": 350,
  "imageHeight": 350,
  "images": ["https://ae-pic-a1.aliexpress-media.com/kf/S935229b680484514bb97733e91fe62edn.jpg", "…"],
  "attributes": [],
  "sellingPoints": ["Save $3.51", "Fastest delivery in 6 days"],
  "skuId": "12000038983434826",
  "altProductId": "1005012579242866",
  "searchKeyword": "phone holder",
  "searchUrl": null,
  "searchResultTotal": 58385,
  "page": 1,
  "position": 1,
  "country": "US",
  "language": "en_US",
  "scrapedAt": "2026-11-02T10:25:07Z"
}
```

#### What each field tells you

- **Demand:** `soldCount` (exact), `soldText` (label shown on the site), `rating`, `searchResultTotal` (how crowded the term is in your market), `position`.
- **Price:** `price`, `originalPrice`, `discountPercent`, `currency`, `taxRate` (VAT included in European prices). `isFreeGift` marks "free with any purchase" listings, which have no price of their own. `isNewShopperPrice` is `true` when the card shows a new-shopper (Welcome Deal) offer such as "New shoppers save $4.12": that extra saving is for first-time AliExpress buyers only. `lowestPriceDays` is N when the card shows AliExpress' "Lowest price in N days" tag (empty otherwise). The **Deals** dataset view puts these next to the price, original price and discount.
- **Delivery:** `shipsFrom` (warehouse country), `deliveryDaysMin` / `deliveryDaysMax`, estimated delivery dates, `freeShipping` (no minimum) and `freeShippingCondition` (e.g. "Free shipping over €10").
- **Listing:** `isChoice`, `isAd`, `storeName` and `companyName` (when AliExpress shows them), `categoryId` / `categoryPath`, `listedAt`, `attributes`, `sellingPoints`, images.
- **Where it came from:** `searchKeyword` or `searchUrl`, `page`, `country`, `language`.

Every run also saves a **RUN_SUMMARY** (products per search, AliExpress result totals, skipped rows, amount charged) and **FAILED_INPUTS** (searches that gave nothing, with the reason). Neither is billed.

### Visual report

Every run also saves a **visual report**: one HTML page that shows your products as a product catalogue instead of rows.

- **Product cards**: photo, store, title, star rating, units sold ("4,000+ sold"), price, original price struck through, discount badge, "Save $x", Choice and Ad badges, "Lowest in N days" and new-shopper offer badges, free shipping, ships-from country, delivery days and the search that found it.
- **Photo gallery**: up to 3 photos per product (the card's main photo first). Click a photo to view it in full size, with a thumbnail strip, arrows, keyboard (← → Esc) and swipe on mobile. The dataset still lists every photo in `images`.
- **Live progress**: while the run is going, the report shows a progress bar (searches done / total), the products saved so far and refreshes itself every 30 seconds.
- **Data quality**: a panel shows how often the key fields (title, price, rating, units sold, store, ships from, delivery days) are filled, and how many products have a photo.
- **Compare**: tick up to 4 products and open a side-by-side table (price, discount, rating, units sold, delivery days, ships from, store…); the best value of each row is highlighted.
- **Key figures and charts**: median price, average rating, units sold, share on sale and with free shipping; price distribution, discounts and best sellers. They follow your filters.
- **Search, filters and sorting**: search titles, stores and product IDs; filter by search term, ships-from country, store, rating, price range, on sale, free shipping or Choice; sort by sales, price, discount, rating or delivery time. Card or table view.
- **Export**: download the filtered products as JSON or CSV, or the full dataset as JSON, CSV or Excel.
- Searches that gave nothing are listed at the top, grouped by reason (they are not billed), with notes on products skipped by your filters.

**How to open it:** in the run, go to the **Output** tab and choose **Visual report** (or open the `REPORT` record of the key-value store).

Photos are shown straight from AliExpress in your browser; nothing is re-hosted. Prices are shown in each product's own currency. The report holds the first 2,000 products of a run; the full dataset is one click away. Saving the report is never billed and can never make a run fail.

### Use it from code, Make, Zapier or AI agents

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("badr_xba/aliexpress-scraper").call(run_input={
    "keywords": ["wireless earbuds"], "sort": "orders", "maxResults": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["price"], item["soldCount"])
```

**JavaScript**

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('badr_xba/aliexpress-scraper').call({
    keywords: ['wireless earbuds'], sort: 'orders', maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

**AI agents (MCP):** add `https://mcp.apify.com/?tools=badr_xba/aliexpress-scraper` to Claude, ChatGPT or Cursor, then ask for example "find the 50 best-selling yoga mats on AliExpress France under €15".

**No-code:** results can go straight to Google Sheets, Make, Zapier, n8n or a webhook through Apify integrations, and an Apify **Schedule** reruns the same searches every day.

### Limits

- Reads **search and category results** only. Product pages, variants, stock per variant and reviews are not collected; product URLs pasted in the input are listed in FAILED_INPUTS and never billed.
- About **3,600 products per search term** (AliExpress stops after 60 pages of 60). Use more specific terms, filters or price ranges to go further.
- Prices are the ones AliExpress shows to a **logged-out visitor** in the chosen market; logged-in or "new shopper" prices may differ.
- `storeName` / `companyName` are filled only when AliExpress shows them in the results.
- AliExpress reorders results between requests, so two runs of the same search can list products in a different order.

### FAQ

**Is the sales count really exact?**
AliExpress rounds the number on the page ("4,000+ sold") but the real count is in the search data. You get both: `soldCount` (exact) and `soldText` (label).

**Can I see prices in dirhams, Egyptian pounds or naira?**
Yes. Pick *Deliver to* Morocco, Egypt or Nigeria and the currency follows (MAD, EGP, NGN), or choose any of the 44 currencies yourself.

**How many products can I get?**
About 3,600 per search term. To go further, add more specific terms or use filters and price ranges.

**Why are prices different from what I see on AliExpress?**
Prices follow the *Deliver to* country and currency you choose, and AliExpress often shows lower "new shopper" prices to visitors. The Actor returns the price AliExpress shows to a logged-out visitor in that market.

**What happens with a search that has no results?**
Nothing is billed. AliExpress fills empty searches with unrelated suggestions; the Actor recognises them, skips them and explains why in FAILED_INPUTS.

**Can I get variants, stock per variant or reviews?**
Not in this version (see Limits).

**Do I need an AliExpress account or cookies?**
No. Nothing to log in to, nothing to configure.

**Is it legal to scrape AliExpress?**
The Actor scrapes only publicly available data (the search pages a logged-out visitor sees) and collects no personal data. You are responsible for complying with AliExpress's terms and with the data-protection law that applies to you.

### Support

Something missing or wrong? Open an issue on the Actor's **Issues** tab, with the run link if you can.

### Feedback and reviews

If this Actor saved you time, a short review on its [Store page](https://apify.com/badr_xba/aliexpress-scraper/reviews) helps other users find it. If something did not work as expected, please open an issue on the [Issues tab](https://apify.com/badr_xba/aliexpress-scraper/issues) with your run ID: we read every issue.

# Changelog

This Actor's version history is a separate document: https://apify.com/badr_xba/aliexpress-scraper/changelog.md

# Actor input Schema

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

What to search for on AliExpress, one term per line, for example <code>wireless earbuds</code>. Each term is searched separately and every row says which term found it.

## `startUrls` (type: `array`):

Optional. Paste AliExpress search or category pages, for example <code>https://www.aliexpress.com/category/63705/earphones-headphones.html</code> or a search page you already filtered on the site. Its own filters are kept.

## `maxResults` (type: `integer`):

Total products to return, shared evenly between your search terms and URLs. Set <code>0</code> for no limit: everything AliExpress shows, up to about 3,600 products per term (60 pages). Duplicates and products removed by your filters are never billed.

## `country` (type: `string`):

The market you shop from. It changes which products appear, their prices, delivery times and the ship-from warehouses.

## `currency` (type: `string`):

Leave empty to use the currency of the country above (EUR for France, GBP for the UK…).

## `language` (type: `string`):

Language of titles and labels. Leave empty to use the language of the country above.

## `sort` (type: `string`):

<b>Best selling</b> puts the products with the most orders first: the quickest way to find winning products.

## `filters` (type: `array`):

AliExpress filters, applied on the site before the products are read.

## `priceMin` (type: `integer`):

Lowest price to include, in the selected currency.

## `priceMax` (type: `integer`):

Highest price to include, in the selected currency.

## `shipFrom` (type: `string`):

Only products sent from this country, for example stock already in Europe or the US for fast delivery.

## `categoryId` (type: `string`):

Optional. Keep only one AliExpress category: copy a <code>categoryId</code> from a previous run.

## `minRating` (type: `string`):

Optional. Keep products rated at least this many stars, for example <code>4.5</code>. Products below are skipped and not billed.

## `minOrders` (type: `integer`):

Optional. Keep products sold at least this many times (exact count). Products below are skipped and not billed.

## `includeAds` (type: `boolean`):

Sponsored listings are flagged with <code>isAd</code>. Turn off to skip them (not billed).

## `deduplicate` (type: `boolean`):

A product found by several search terms is saved and billed once.

## `maxResultsPerKeyword` (type: `integer`):

Optional. Fixed number per term instead of sharing <b>Number of products</b> between them.

## `proxyConfiguration` (type: `object`):

Keep the default. If AliExpress refuses a page, the Actor retries from new IP addresses and, if needed, from residential IPs in your market, at no extra cost to you.

## Actor input object example

```json
{
  "keywords": [
    "wireless earbuds"
  ],
  "startUrls": [],
  "maxResults": 20,
  "country": "US",
  "sort": "relevance",
  "filters": [],
  "shipFrom": "",
  "includeAds": true,
  "deduplicate": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `visualReport` (type: `string`):

Interactive page: product cards with photo gallery, price, original price, discount, rating, units sold, free shipping and delivery days; search, filters, side-by-side comparison, charts and CSV/JSON export of the filtered rows.

## `overview` (type: `string`):

Image, title, price, original price, discount, exact sales, rating, ship-from, delivery, store and link.

## `winning` (type: `string`):

Exact sales, rating, Choice, free shipping, ship-from and delivery days.

## `deals` (type: `string`):

Price, original price, discount, new-shopper offer and 'lowest price in N days' tag.

## `allFields` (type: `string`):

Every field as JSON, CSV or Excel.

## `runSummary` (type: `string`):

Products saved per search, AliExpress result totals, skipped rows, stop reason and amount charged.

## `failedInputs` (type: `string`):

Searches or URLs that gave nothing, with an error code (no_results, invalid_url, blocked…).

# 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": [
        "wireless earbuds"
    ],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("badr_xba/aliexpress-scraper").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": ["wireless earbuds"],
    "maxResults": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("badr_xba/aliexpress-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": [
    "wireless earbuds"
  ],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call badr_xba/aliexpress-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,badr_xba/aliexpress-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/w2AO768jwV0cljqVp/builds/1j0zQxWk00hh0yBaC/openapi.json
