---
title: "AliExpress"
description: "AliExpress through the normalized schema — the same operations, parameters and response shape as every other marketplace."
---

AliExpress has **two surfaces**. This page is the normalized one — the same `SearchResult` and `Product`
that Amazon, eBay, Shopify and Walmart return, so one parser reads all five.

| | endpoint | returns | price |
|---|---|---|---|
| [search](/docs/api-reference/aliexpress/search) | `GET\|POST /v1/aliexpress/search` | `SearchResult` | $0.001 |
| [browse](/docs/api-reference/aliexpress/browse) | `GET\|POST /v1/aliexpress/browse` | `SearchResult` | $0.001 |
| [categories](/docs/api-reference/aliexpress/categories) | `GET\|POST /v1/aliexpress/categories` | `CategoryList` | $0.001 |
| [image-search](/docs/api-reference/aliexpress/image-search) | `POST /v1/aliexpress/image-search` | `SearchResult` | $0.001 |
| [product](/docs/api-reference/aliexpress/product) | `GET\|POST /v1/aliexpress/product` | `Product` | $0.001 |

The older endpoints — `/aliexpress/keyword-search`, `/aliexpress/product-details`,
`/aliexpress/image-search` — still answer, unchanged, but they are **deprecated**, have no v1 URL, and
sunset on **20 October 2026**. They are no longer documented: start here instead. If you are migrating
off them, [Versioning](/docs/versioning) has the rename table.

**`/v1/aliexpress/image-search` and `/aliexpress/image-search` are different endpoints.** The versioned
one is the normalized visual search documented below. The unversioned one is the older dialect, whose
response shape is AliExpress's own — same segment, different body. Outside v1 the normalized visual
search keeps its old name, `/aliexpress/visual-search`, because the canonical segment was already taken
there; inside v1 the dialect is simply not present, so the canonical name is free.

## Things specific to AliExpress

**Variants are not separately fetchable.** A size or colour is a SKU inside one product, so
`variant.productId` is absent — one call gives you the whole variation matrix, with per-SKU prices and
stock.

**A price filter matches any variant.** AliExpress products often span a price range, and a filter
matches a product if *any* of its variants falls in the band — while the card reports the lowest ("from")
price. So a `priceMin=40` request can return a row displaying $28 whose $50 variant matched. About
90–95% of returned rows land inside the band; filter the returned `price` yourself if you need a hard
bound.

**No reviews operation.** A product carries an aggregate rating (`rating.average` and `rating.count`)
but no review rows.
