---
title: "AliExpress"
description: "AliExpress through the shared marketplace schema: the same `SearchResult` and `Product` every marketplace returns, plus shipping quotes."
---

> Every apinoa docs page as markdown: https://apinoa.com/llms.txt (all in one file: https://apinoa.com/llms-full.txt; this API family in one file: https://apinoa.com/docs/marketplace/llms.txt)

## Operations

| Operation | Endpoint | Returns | Price |
|---|---|---|---|
| [Search](/docs/api-reference/aliexpress/search) | `GET \| POST /v1/aliexpress/search` | `SearchResult` | $0.001 |
| [Image Search](/docs/api-reference/aliexpress/image-search) | `POST /v1/aliexpress/image-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 |
| [Product](/docs/api-reference/aliexpress/product) | `GET \| POST /v1/aliexpress/product` | `Product` | $0.001–$0.002 |
| [Shipping](/docs/api-reference/aliexpress/shipping) | `GET \| POST /v1/aliexpress/shipping` | `ShippingQuote` | $0.001–$0.002 |

AliExpress's older endpoints (`/aliexpress/keyword-search`, `/aliexpress/product-details` and the unversioned `/aliexpress/image-search`) are deprecated and have no `v1` URL; [Versioning](/docs/versioning) maps each to its replacement.

## 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 number). A variant's `id` is AliExpress's numeric SKU id, which is what `shipping` takes.

**One id per product.** AliExpress spells some products two ways (`3256…` in keyword search, `1005…`
elsewhere). Every response uses the global `1005…` form; both are accepted as input.

**Shipping is a quote, on request.** `product?include=shipping` adds `delivery` (the cheapest option to
`region`) and `shippingOptions` (all of them); [shipping](/docs/api-reference/aliexpress/shipping)
quotes any variant and quantity on its own. Without it, `delivery.handlingDays` still says how long the
seller takes to dispatch.

**The product carries everything AliExpress states.** The named category path, `package` weight (its
dimensions in the package's `ext`), the store's `country` (its three store scores in the seller's
`ext.detailedRatings`), per-variant `purchaseLimit` (`bulkPrice` and `taxIncluded` in the variant's `ext`),
and `wholesale` in the product's `ext`. Prices default to USD.

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