Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the AliExpress API page →
E-commerce & Marketplaces

AliExpress API & Scraper

The AliExpress API returns product search, full detail and store data as clean JSON.

8 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary search endpoint returns products with id, title, URL, images, price, original price, discount, units sold and rating, and you can pull a product_detail with SKUs, reviews, similar products, description, shipping options, a store's info, items and categories, and current deals. It is built for price research, dropshipping and catalog tools that need AliExpress data without scraping a heavily-defended marketplace. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

AliExpress ids, SKU variants and what country plus currency change

The same AliExpress product is reachable under two different numeric ids, and the per-SKU block is where the prices and images that actually differ per variant live. Everything below was measured on 2026-08-27 with product_detail, search, reviews and shipping. Values shown as null were null in the response, not left blank in this table.

FieldMeasured exampleWhat it means
product_id (long form)3256806194871771The number in /item/<id>.html. 16 digits, begins 3256.
product_id (short form)1005006381186523The same product, exactly 2,251,799,813,685,248 (2^51) lower. Accepted as input and echoed back unchanged. Confirmed on four products.
sku_id12000036967401257One buyable variant, color plus size. 17 digits. A shoe listing returned 50 of them.
store_id / seller_id1102530031 / 2671009820Two different numbers on the same store block. store_items and store_info take store_id.
review_id60095699688325802From the reviews action, unrelated to product_id.
price_min / price_max14.99 / 18.79 EURCheapest and dearest SKU. price_current is the pre-selected SKU, not always the minimum.
sold_countnullAlways null on product_detail. The number lives in sold_text as free text ("5.000+ verkauft").
weightnullmeta.weight_found came back false on every product tried.
country / currencyUS, then DEChanged the price (2.64 USD to 14.99 EUR), the delivery window (8-14 days to 5-11 days) and the store_url host (aliexpress.com to de.aliexpress.com).

sku_variants[].props uses localized keys. With language=en the keys were "Color" and "Shoe Size"; with language=de the exact same product returned "Farbe" and "Schuhgroesse". Key your variant matching on sku_id, never on the property name.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/aliexpress/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "wireless earbuds",
    "country": "US",
    "currency": "USD"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "aliexpress",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1561.2,
    "record_count": 60,
    "bytes": 736717,
    "cache_hit": false,
    "version": "0.1",
    "page": 1,
    "pagination": {
      "page": 1,
      "has_more": true
    }
  },
  "data": {
    "query": "wireless earbuds",
    "country": "US",
    "currency": "USD",
    "results": [
      {
        "product_id": "[redacted-phone]",
        "title": "Baseus Bass EP10 NC -43dB Noise Cancelling ANC True Wireless Earbuds Bluetooth 6.0 In-Ear Wireless Earphones 4-Mics ENC Ear buds",
        "url": "https://www.aliexpress.com/item/[redacted-phone].html",
        "image": "https://ae-pic-a1.aliexpress-media.com/kf/Sa802af2e290b4ffdb151cacc25733ef8x.jpg",
        "images": [
          "https://ae-pic-a1.aliexpress-media.com/kf/Sa802af2e290b4ffdb151cacc25733ef8x.jpg",
          "https://ae-pic-a1.aliexpress-media.com/kf/Sa71cf8de22bb44808f92748d95d1413dt.png",
          "https://ae-pic-a1.aliexpress-media.com/kf/Sa73b727b92734a5bb1ac082531d50829Z.png"
        ],
        "price": 13.75,
        "original_price": 44.43,
        "currency": "USD",
        "discount_pct": 69,
        "price_formatted": "US $13.75",
        "sold_count": 10000,
        "sold_text": "10,000+ sold",
        "rating": 4.9,
        "store_name": null,
        "store_url": null,
        "product_type": "natural",
        "promo_tags": [
          "New shoppers save $30.68",
          "Lowest price in 90 days"
        ],
        "sku_id": "[redacted-phone]"
      },
      {
        "product_id": "[redacted-phone]",
        "title": "QCY T13 ANC Active Noise Cancelling Wireless Earbuds Bluetooth 5.3 Headphones 4 Mics ENC Clear Calls Earphones 30H Playtime IPX5",
        "url": "https://www.aliexpress.com/item/[redacted-phone].html",
        "image": "https://ae-pic-a1.aliexpress-media.com/kf/S5fdfcad8a1a24f919f7734a805f46c84l.jpg",
        "images": [
          "https://ae-pic-a1.aliexpress-media.com/kf/S5fdfcad8a1a24f919f7734a805f46c84l.jpg",
          "https://ae-pic-a1.aliexpress-media.com/kf/S46d0988a85bc42a38eb4155c50f516c26.jpg",
          "https://ae-pic-a1.aliexpress-media.com/kf/S66d59a917dd943caa4d014993d4215c6O.jpg"
        ],
        "price": 26.39,
        "original_price": 55.34,
        "currency": "USD",
        "discount_pct": 52,
        "price_formatted": "US $26.39",
        "sold_count": 5000,
        "sold_text": "5,000+ sold",
        "rating": 4.9,
        "store_name": null,
        "store_url": null,
        "product_type": "natural",
        "promo_tags": [
          "Save $28.95",
          "Delivery: Jul 24 - 29"
        ],
        "sku_id": "[redacted-phone]"
      },
      {
        "product_id": "[redacted-phone]",
        "title": "Bluetooth headset TWS hands-free LED Dispay headset Bluetooth HiFi stereo music wireless earplug game headset",
        "url": "https://www.aliexpress.com/item/[redacted-phone].html",
        "image": "https://ae-pic-a1.aliexpress-media.com/kf/S2b686cc68e564b6e83fb2a593aaa0f4fT.jpg",
        "images": [
          "https://ae-pic-a1.aliexpress-media.com/kf/S2b686cc68e564b6e83fb2a593aaa0f4fT.jpg",
          "https://ae-pic-a1.aliexpress-media.com/kf/Sa90e58eeca6c415885f6fab146615b63y.jpg",
          "https://ae-pic-a1.aliexpress-media.com/kf/Sbc5bb29cba2c4a81b05a7a8bf5b8c993c.jpg"
        ],
        "price": 0.33,
        "original_price": 7.95,
        "currency": "USD",
        "discount_pct": 95,
        "price_formatted": "US $0.33",
        "sold_count": 5000,
        "sold_text": "5,000+ sold",
        "rating": 4.9,
        "store_name": null,
        "store_url": null,
        "product_type": "natural",
        "promo_tags": [
          "Save $7.62",
          "Delivery: Jul 24 - 29"
        ],
        "sku_id": "[redacted-phone]"
      }
    ],
    "related_searches": [
      "wireless earrings earbuds",
      "aptx wireless earbuds",
      "wireless earbuds ear hook"
    ],
    "ranking_searches": [
      "wireless headphones",
      "white earbuds",
      "ear buds"
    ]
  }
}
Actions

What the AliExpress API does

ActionDescriptionConcrete use caseKey params
searchProduct search cards (price, sold_count, rating, store); filters sort/min_price/max_price/ship_from/free_shipping, paginatedPricing teams call search to get product search cards (price, sold_count, rating, store); filters sort/min_price/max_price/shi….query, country, currency, page, max_pages, ...
product_detailFull product + SKU-variant price/stock matrix + specs + images + video + store + shipping + rating + coupons + sale countdown + wishlist counts + item weight where the seller published one (empty when they did not — never guessed)Marketplace operators call product_detail to get full product + SKU-variant price/stock matrix + specs + images + video + store + shipping + r….product_id, url, country, currency, language, ...
reviewsBuyer reviews (paginated — fetch many pages in one call) + rating distributionCatalog enrichment teams call reviews to get buyer reviews (paginated.product_id, url, page, max_pages, max_results, ...
similarProducts similar to a given item (search-backed 'more like this', seed product excluded), paginatedRetail analysts call similar to get products similar to a given item (search-backed 'more like this', seed product excluded), pag….product_id, url, query, page, max_pages, ...
descriptionFull product description text + imagesPricing teams call description to get full product description text + images.product_id, url, description_url, country, currency
shippingShipping options per destination countryMarketplace operators call shipping to get shipping options per destination country.product_id, url, country, currency, language, ...
store_infoStore profile (+ live seller metrics when a query is supplied)Catalog enrichment teams call store_info to get store profile (+ live seller metrics when a query is supplied).store_id, store_url, query, country, currency
dealsSuperDeals / discounted cards (search-derived, sorted by discount)Retail analysts call deals to get superDeals / discounted cards (search-derived, sorted by discount).query, min_discount, sort, page, max_pages, ...
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/aliexpress/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"wireless earbuds","country":"US","currency":"USD"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.aliexpress.search with {"query":"wireless earbuds","country":"US","currency":"USD"}.
Use cases

Who uses this API and why

  • Dropshipping tools call search and product_detail to source products with prices, SKUs and shipping.
  • Price-research products use deals and reviews to find trending, well-rated items.
  • Catalog tools use store_items to mirror a supplier's full AliExpress inventory.
FAQ

Questions developers ask before integrating

Why does the same AliExpress product have two different ids, 3256... and 1005...?

They are the same item written two ways, and the gap between them is a constant: 2,251,799,813,685,248, which is 2^51. Measured on four products on 2026-08-27, for example 3256806194871771 minus 2^51 gives 1005006381186523. Both forms are accepted as product_id and the API echoes back whichever form you sent, so pick one and stay consistent if you are joining against your own table.

Do SKU-level images come through, and why did 50 variants share only 5 images?

Every variant carries image and thumbnail, and on a 50-variant running shoe all 50 were populated. Only 5 were distinct because AliExpress attaches the photo to the color, not to the color and size pair, so all ten sizes of the blue shoe point at the same blue photo. If you want the color swatch set on its own, sku_properties[].value_details[] carries one image, thumbnail and color_hex per color value.

Does every size of an AliExpress listing cost the same?

No, and that is the usual reason a scraped price looks wrong. On one measured listing price_min was 14.99 EUR and price_max 18.79 EUR, with EU 43 at 16.19 and EU 44 at 16.69. price_current (14.99) is the pre-selected SKU, not an average and not the minimum in every case. Read sku_variants[].price.sale if you need the price for a specific size.

Why is sold_count null when the listing clearly shows thousands sold?

AliExpress publishes the figure as a rounded label rather than an exact number, so product_detail returns sold_count null and puts the label in sold_text, for example "50,000+ sold". The search action does parse that label into sold_count, where "1,000+ sold" became 1000 and "24 sold" became 24. Treat search's sold_count as a floor, not an exact count.

What actually changes when I set country and currency?

Quite a lot. The same product returned 2.64 USD shipping to the US with an 8 to 14 day estimate, and 14.99 EUR to Germany with 5 to 11 days. The store_url host switched from aliexpress.com to de.aliexpress.com, and sold_text came back in German. meta also reports province_sent, which is defaulted from the country (US gave California, DE gave Berlin), so set province yourself if you need a state-accurate delivery estimate.

Why do the sku_variants property names change between calls?

Because the language parameter localizes them. The same shoe returned props keyed "Color" and "Shoe Size" under language=en and "Farbe" and "Schuhgroesse" under language=de. sku_id is stable across languages, so match on sku_id and use props only for display.

Why does review_count in product_detail differ from total_reviews in reviews?

They are two different counters read at two different moments. On 2026-08-27 the same product returned review_count 1354 from product_detail and total_reviews 1352 from reviews. The reviews action also gives you summary.distribution with a count per star (5: 1103, 4: 132, 3: 55, 2: 15, 1: 49) plus positive_num, neutral_num and negative_num, which is the block to use when the numbers have to add up.

What does product_type "ad" mean in search results?

It marks a sponsored placement. Search rows come back with product_type either "natural" or "ad", and the ad rows are interleaved with organic ones in the same results array. If you are measuring rank or building a price index, filter on product_type equal to "natural" first, otherwise paid placements will move your numbers around.

What is the AliExpress API?

AliExpress API is a ReefAPI endpoint group for product search, prices, variants, reviews and shipping. It returns live JSON through POST requests under /aliexpress/v1.

Is the AliExpress API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. AliExpress calls use the same shared credit balance as every other ReefAPI engine.

Do I need an AliExpress login or account?

No login to AliExpress is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the AliExpress data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the AliExpress API use?

AliExpress actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call AliExpress from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call aliexpress actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / aliexpress

AliExpress

Product search, prices, variants, reviews and shipping.

base /aliexpress/v18 endpoints
post/aliexpress/v1/product_detail2 credits

Full product + SKU-variant price/stock matrix + specs + images + video + store + shipping + rating + coupons + sale countdown + wishlist counts + item weight where the seller published one (empty when they did not — never guessed)

ParameterAllowed / rangeDescription
product_idoptionalAliExpress product ID — the digits in the product URL (…/item/<id>.html). Provide product_id OR url.
urloptionalFull product URL — alternative to product_id.
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
provinceoptionalDestination state/province, plain text (e.g. California, Berlin, Sao Paulo). Defaults to a major region of `country`. Affects delivery estimate and, for some warehouse-local items, whether shipping resolves at all. Measured: within the US the ETA shifts by state (California 3-8 days vs Alaska 4-14), so set it when you need a precise quote.
cityoptionalDestination city, plain text. Optional and only refines the estimate; `province` is the field that actually resolves the address (measured: city alone does not).
Try in playground →
post/aliexpress/v1/reviews1 credit

Buyer reviews (paginated — fetch many pages in one call) + rating distribution

ParameterAllowed / rangeDescription
product_idoptionalAliExpress product ID — the digits in the product URL (…/item/<id>.html). Provide product_id OR url.
urloptionalFull product URL — alternative to product_id.
filter = alloptionalall · image · additionalWhich reviews to return (passed to the upstream feedback API; the 3 listed are the documented values).
page_size = 10optional1–20Reviews per page (1–20; larger values are capped at 20).
max_pages = 1optional1–20How many consecutive review pages to gather in one call (1–20). Combine with page_size=20 to pull all reviews of a product (e.g. max_pages=10 → up to 200 reviews).
review_sort = complex_defaultoptionalUpstream sort key (advanced) — leave at the default.
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
page = 1optional1–60Page number to start from (easy paging: 1, 2, 3…). Measured ceiling: page 60 is the deepest page AliExpress still serves — page 100 comes back empty. Page until `meta.pagination.has_more` is false rather than probing for the end.
max_resultsoptional1–400How many reviews to return (1–400 — the ceiling is 20 per page × 20 pages). The engine works out how many review pages that costs. Use this instead of juggling `page_size` and `max_pages` yourself; if you pass both, the smaller budget wins.
Try in playground →
post/aliexpress/v1/similar1 credit

Products similar to a given item (search-backed 'more like this', seed product excluded), paginated

ParameterAllowed / rangeDescription
product_idoptionalAliExpress product ID — the digits in the product URL (…/item/<id>.html). Provide product_id OR url.
urloptionalFull product URL — alternative to product_id.
queryoptionalOptional seed keywords — overrides the product's own title (skips the detail lookup). Provide product_id/url OR query.
sort = best_matchoptionalbest_match · orders · price_low · price_high · newest · default · best_selling · price_asc · price_descResult ordering.
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
page = 1optional1–60Page number to start from (easy paging: 1, 2, 3…). Measured ceiling: page 60 is the deepest page AliExpress still serves — page 100 comes back empty. Page until `meta.pagination.has_more` is false rather than probing for the end.
max_pages = 1optional1–10How many consecutive pages to fetch in one call (1–10). AliExpress serves 46–60 results per page, so 10 pages is about 500 results and takes ~40s. Prefer `max_results` if you want a result count rather than a page count; larger values are capped at 10.
max_resultsoptional1–500How many results to return (1–500). AliExpress serves 46–60 per page, so asking for more than about 50 fetches further pages — each one is another request against AliExpress, and 500 results takes ~40s, so ask for what you will use. Omit to get a single page. If you pass both `max_results` and `max_pages`, whichever budget is smaller wins.
Try in playground →
post/aliexpress/v1/description1 credit

Full product description text + images

ParameterAllowed / rangeDescription
product_idoptionalAliExpress product ID — the digits in the product URL (…/item/<id>.html). Provide product_id OR url.
urloptionalFull product URL — alternative to product_id.
description_urloptionalDirect description URL from a previous product_detail response (advanced — skips one lookup).
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
provinceoptionalDestination state/province, plain text (e.g. California, Berlin, Sao Paulo). Defaults to a major region of `country`. Affects delivery estimate and, for some warehouse-local items, whether shipping resolves at all. Measured: within the US the ETA shifts by state (California 3-8 days vs Alaska 4-14), so set it when you need a precise quote.
cityoptionalDestination city, plain text. Optional and only refines the estimate; `province` is the field that actually resolves the address (measured: city alone does not).
Try in playground →
post/aliexpress/v1/shipping1 credit

Shipping options per destination country

ParameterAllowed / rangeDescription
product_idoptionalAliExpress product ID — the digits in the product URL (…/item/<id>.html). Provide product_id OR url.
urloptionalFull product URL — alternative to product_id.
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
provinceoptionalDestination state/province, plain text (e.g. California, Berlin, Sao Paulo). Defaults to a major region of `country`. Affects delivery estimate and, for some warehouse-local items, whether shipping resolves at all. Measured: within the US the ETA shifts by state (California 3-8 days vs Alaska 4-14), so set it when you need a precise quote.
cityoptionalDestination city, plain text. Optional and only refines the estimate; `province` is the field that actually resolves the address (measured: city alone does not).
Try in playground →
post/aliexpress/v1/store_info1 credit

Store profile (+ live seller metrics when a query is supplied)

ParameterAllowed / rangeDescription
store_idoptionalAliExpress store ID — the digits in the store URL (…/store/<id>), i.e. `store.store_id` from product_detail. AliExpress's internal shop number (`store.shop_id`) also resolves to the same shop. Provide store_id OR store_url.
store_urloptionalFull store URL — alternative to store_id.
queryoptionalAny keyword the store sells — unlocks live seller metrics (score, positive rate, feedback count). Optional.
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
provinceoptionalDestination state/province, plain text (e.g. California, Berlin, Sao Paulo). Defaults to a major region of `country`. Affects delivery estimate and, for some warehouse-local items, whether shipping resolves at all. Measured: within the US the ETA shifts by state (California 3-8 days vs Alaska 4-14), so set it when you need a precise quote.
cityoptionalDestination city, plain text. Optional and only refines the estimate; `province` is the field that actually resolves the address (measured: city alone does not).
Try in playground →
post/aliexpress/v1/deals1 credit

SuperDeals / discounted cards (search-derived, sorted by discount)

ParameterAllowed / rangeDescription
queryrequiredProduct keywords to find deals for.
min_discount = 0optional0–99Only items discounted at least this % off the original price.
sort = ordersoptionalbest_match · orders · price_low · price_high · newest · default · best_selling · price_asc · price_descHow candidate items are ranked before the discount filter.
country = USoptionalShip-to country (2-letter ISO code, e.g. US, DE, TR). Changes prices, availability and shipping options.
currency = USDoptionalCurrency for prices (3-letter ISO code, e.g. USD, EUR, TRY).
language = enoptionalResponse language (2-letter code, e.g. de, es, fr, ru, pt, ja, ko, tr, it, ar). Independent of `country`: you can ship to US and read titles in German. Measured 2026-08-26 — 11 of 12 languages localise the title; `zh` often returns English because sellers do not publish a Chinese title. The code is passed through to AliExpress as given: one it does not recognise comes back in English rather than failing. `meta.language_sent` echoes what was sent.
page = 1optional1–60Page number to start from (easy paging: 1, 2, 3…). Measured ceiling: page 60 is the deepest page AliExpress still serves — page 100 comes back empty. Page until `meta.pagination.has_more` is false rather than probing for the end.
max_pages = 1optional1–10How many consecutive pages to fetch in one call (1–10). AliExpress serves 46–60 results per page, so 10 pages is about 500 results and takes ~40s. Prefer `max_results` if you want a result count rather than a page count; larger values are capped at 10.
Try in playground →