Apinoa Docs

AliExpress

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

View raw .mdx

Operations

OperationEndpointReturnsPrice
SearchGET | POST /v1/aliexpress/searchSearchResult$0.001
Image SearchPOST /v1/aliexpress/image-searchSearchResult$0.001
BrowseGET | POST /v1/aliexpress/browseSearchResult$0.001
CategoriesGET | POST /v1/aliexpress/categoriesCategoryList$0.001
ProductGET | POST /v1/aliexpress/productProduct$0.001–$0.002
ShippingGET | POST /v1/aliexpress/shippingShippingQuote$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 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 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.

On this page