Apinoa Docs

AliExpress

AliExpress through the normalized schema — the same operations, parameters and response shape as every other marketplace.

View raw .mdx

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.

endpointreturnsprice
searchGET|POST /v1/aliexpress/searchSearchResult$0.001
browseGET|POST /v1/aliexpress/browseSearchResult$0.001
categoriesGET|POST /v1/aliexpress/categoriesCategoryList$0.001
image-searchPOST /v1/aliexpress/image-searchSearchResult$0.001
productGET|POST /v1/aliexpress/productProduct$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 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.

On this page