---
title: "AliExpress Product API: Search, Reviews and Shipping"
description: "Chain AliExpress search, product, product-reviews and product-shipping, with every required parameter, at 1 credit per call, and cost a 100-product review pull."
url: https://perceptlayer.com/blog/aliexpress-api-product-search-reviews
---

[Blog](https://perceptlayer.com/blog) / [API guides](https://perceptlayer.com/blog/category/api-guides)

# AliExpress Product API: Search, Reviews and Shipping

2 Oct 2026 Perceptlayer 6 min read

AliExpress's own Open Platform is built for affiliates, sellers and dropshippers, each with their own app keys and approval. To read AliExpress product data as JSON without that, the Perceptlayer AliExpress API chains four GET endpoints: `search` (required `query`, `page`, `sort`), `product` ( `product_id`), `product-reviews` ( `product_id`, `page`, `page_size`, `filter`) and `product-shipping` ( `product_id`, `country`). Each successful call costs 1 credit.

## Key takeaways

-   Search has three required parameters, not one: `query`, `page` and `sort`, where `sort` is `default`, `orders`, `price_asc` or `price_desc`.
-   `product-reviews` requires all four of `product_id`, `page`, `page_size` and `filter`, with `filter` set to `all`, `local`, `image` or `additional`.
-   Shipping depends on the destination, so `product-shipping` needs a `country` as well as the `product_id`. One call per product per country.
-   All 9 AliExpress endpoints cost 1 credit per successful call. Reviews for 100 products at 3 pages each is 300 credits, plus 100 for product details.
-   If you earn affiliate commission on AliExpress links, its own affiliate API is the sanctioned route; this API is for reading product data.

## What does AliExpress's own API cover?

AliExpress's Open Platform is organised around who is calling. Its getting-started guide has separate tracks for affiliate developers, sellers' apps and dropshipping developers, and seller apps must be authorised by the seller before they call any API ( [AliExpress Open Platform](https://openservice.aliexpress.com/doc/doc.htm), 2026). The affiliate programme accepts publishers with an online presence and traffic ( [AliExpress Portals](https://portals.aliexpress.com/), 2026).

That's the right route if you promote AliExpress products for commission or run a store on it. If you need to read product listings, reviews and shipping options for research, price monitoring or an agent, without joining a programme, the [AliExpress API](https://perceptlayer.com/apis/aliexpress) returns them as JSON with one key. Data is collected from publicly available sources and returned as found at the time of the call.

## Which AliExpress endpoints are there?

Nine GET endpoints in three groups: finding products, reading one product, and reading a store. Every one costs 1 credit per successful call. Most parameters are required, so a call missing one fails with `invalid_parameters` (422) and costs nothing. The table lists each endpoint with its required inputs.

| Endpoint | Returns | Required |
| --- | --- | --- |
| `/v1/aliexpress/autocomplete` | Search suggestions | `query` (up to 100 characters) |
| [`/v1/aliexpress/search`](https://perceptlayer.com/apis/aliexpress/search) | A page of products | `query`, `page`, `sort` |
| [`/v1/aliexpress/product`](https://perceptlayer.com/apis/aliexpress/product) | One product | `product_id` |
| `/v1/aliexpress/product-description` | Its description | `description_ref` |
| [`/v1/aliexpress/product-reviews`](https://perceptlayer.com/apis/aliexpress/product-reviews) | A page of reviews | `product_id`, `page`, `page_size`, `filter` |
| [`/v1/aliexpress/product-shipping`](https://perceptlayer.com/apis/aliexpress/product-shipping) | Shipping options | `product_id`, `country` |
| `/v1/aliexpress/store` | A store | `seller_id`, `store_id` |
| `/v1/aliexpress/store-benefits` | Store benefits | `seller_id`, `store_id` |
| `/v1/aliexpress/store-products` | A store's products | `seller_id`, `store_id` |

The chain this guide follows is search, then product, then reviews and shipping. The product description is a separate call because it takes a `description_ref` rather than the product ID; read that reference from the product response.

## How do you search AliExpress products?

Call `GET /v1/aliexpress/search` with all three required parameters: the `query`, the `page` number and a `sort`. Add `min_price` and `max_price` to bound the price, `ship_from` to restrict where items ship from, and `filters[]` for the site's own filters. This request asks for the first page of phone cases, sorted by number of orders:

```bash
curl "https://api.perceptlayer.com/v1/aliexpress/search?query=phone+case&page=1&sort=orders" \
  -H "X-API-Key: $API_KEY"
```

Keys go in the `X-API-Key` header and start with `sk_live_`. [Get a free API key](https://perceptlayer.com/signup), and see the [authentication docs](https://docs.perceptlayer.com/authentication) for the details.

| Parameter | Type | Required | Notes |
| --- | --- | --- | --- |
| `query` | string | yes | Up to 200 characters |
| `page` | integer | yes | Start at `1` |
| `sort` | string | yes | `default`, `orders`, `price_asc` or `price_desc` |
| `min_price`, `max_price` | number | no | Price bounds |
| `ship_from` | string | no | Where the item ships from |
| `filters[]` | list of strings | no | The site's search filters |

`autocomplete` is a quick way to find the wording buyers use: send a partial term as `query` and it returns AliExpress's suggestions, which make better search queries than guesses.

### What does a search response contain?

Our recorded search for `query=wireless earbuds&page=1&sort=orders` returns `total_results` 16,557 with `page_size` 60, and a `results` array. This is the first result, trimmed with `…`:

```json
{
  "success": true,
  "data": {
    "query": "wireless earbuds",
    "sort": "orders",
    "page": 1,
    "page_size": 60,
    "total_results": 16557,
    "has_more": true,
    "results": [
      {
        "product_id": "3256812408115438",
        "title": "HTC NE79 TWS Bluetooth 6.0 Earbuds AI Translation 135 Languages ENC Noise Cancelling HiFi Stereo Headphones with LED Display",
        "url": "https://www.aliexpress.com/item/3256812408115438.html",
        "price": { "amount": 4.35, "currency": "USD", "formatted": "US $4.35" },
        "original_price": { "amount": 17.31, "currency": "USD", "formatted": "US $17.31" },
        "discount_percent": 74,
        "rating": 4.9,
        "sold_count": 17921,
        "sold_text": "10,000+ sold",
        "selling_points": ["Fastest delivery in 6 days"],
        "is_sponsored": false,
        …
      },
      …
    ]
  }
}
```

`product_id` is what the product, reviews and shipping endpoints take. `price.amount` is the price shown, and `original_price` with `discount_percent` shows the advertised discount: 4.35 against 17.31 here. `sold_count` is a number while `sold_text` is the rounded label, so use the number for ranking. `is_sponsored` marks paid placement; filter on it before you treat order rank as popularity.

## How do you get a product's reviews?

Call `GET /v1/aliexpress/product-reviews` with the `product_id` and the three paging and filter parameters, all required. `page` and `page_size` control the paging, and `filter` picks which reviews: `all`, `local`, `image` (reviews with photos) or `additional`. Nothing is documented about the largest `page_size` the endpoint accepts, so test it in the playground before you pick one.

```bash
curl "https://api.perceptlayer.com/v1/aliexpress/product-reviews?product_id=$PRODUCT_ID&page=1&page_size=20&filter=all" \
  -H "X-API-Key: $API_KEY"
```

| Parameter | Type | Notes |
| --- | --- | --- |
| `product_id` | string, required | From the search results |
| `page` | integer, required | Start at `1` |
| `page_size` | integer, required | Reviews per page |
| `filter` | string, required | `all`, `local`, `image` or `additional` |

The `image` filter is useful when you want reviews that show the item, for example to check that a product matches its listing photos. Reviews are written by people, so drop reviewer names and anything else that identifies them unless you have a reason and a lawful basis to keep it.

This Python loop pulls a fixed number of review pages for a list of products and saves each page as it arrives, so one failure doesn't lose the rest:

```python
import json
import os
import requests

BASE = "https://api.perceptlayer.com/v1/aliexpress"
HEADERS = {"X-API-Key": os.environ["API_KEY"]}
PRODUCT_IDS = ["3256812408115438"]  # product_id values from search
PAGES = 3

spent = 0
for pid in PRODUCT_IDS:
    for page in range(1, PAGES + 1):
        r = requests.get(f"{BASE}/product-reviews", headers=HEADERS, timeout=60,
                         params={"product_id": pid, "page": page, "page_size": 20, "filter": "all"})
        if r.status_code != 200:
            print(pid, page, r.json()["error"]["code"])
            break
        spent += int(r.headers["X-Credits-Used"])
        with open(f"reviews-{pid}-{page}.json", "w") as f:
            json.dump(r.json(), f)
print("credits used:", spent)
```

We haven't run this loop live for this article, and the reviews response isn't recorded, so it saves pages as returned. The loop moves to the next product on the first error, and a failed call adds nothing to `spent` because it costs nothing. The [errors docs](https://docs.perceptlayer.com/errors) list the codes you might see.

## How do you check shipping to a country?

Call `GET /v1/aliexpress/product-shipping` with the `product_id` and the destination `country`. Shipping options and costs on AliExpress depend on where the buyer is, so a price comparison that ignores shipping compares the wrong numbers. One call returns the options for one product to one country.

```bash
curl "https://api.perceptlayer.com/v1/aliexpress/product-shipping?product_id=$PRODUCT_ID&country=US" \
  -H "X-API-Key: $API_KEY"
```

The `country` parameter is a string with no documented format beyond that, so confirm the code style the endpoint expects in the playground first. If you sell into several markets, multiply: 50 products checked for 4 countries is 200 calls.

## What does a 100-product review pull cost?

Each endpoint is 1 credit per successful call, so the cost is the number of calls. Take 100 products from search results: the search pages to find them, 100 `product` calls, 3 pages of reviews each and one shipping check each to a single country. The recorded search returned `page_size` 60, so 100 products take 2 search pages.

| Step | Calls | Credits |
| --- | --- | --- |
| `search`, 2 pages of 60 | 2 | 2 |
| `product` for 100 products | 100 | 100 |
| `product-reviews`, 3 pages × 100 products | 300 | 300 |
| `product-shipping`, 1 country × 100 products | 100 | 100 |
| **Total** | **502** | **502** |

That's 502 credits, inside the 1,000 free credits a month. Repeat it weekly to track new reviews and it's 502 × 4 = 2,008 credits a month, within the Starter pack's 10,000. To cut it, skip `product` for products you already have and fetch only page 1 of reviews on later runs. Failed calls cost nothing; the [credits docs](https://docs.perceptlayer.com/credits) explain the balance, and [pricing](https://perceptlayer.com/pricing) has what packs cost.

For comparing AliExpress prices with other marketplaces, the [Walmart product search guide](https://perceptlayer.com/blog/walmart-product-search-api) and the [Google Shopping guide](https://perceptlayer.com/blog/google-shopping-api-product-prices) cover two more sources. To try this one, run a search in the playground on the [AliExpress API page](https://perceptlayer.com/apis/aliexpress).

## APIs in this post

-   [AliExpress **1 credit per call** · 9 endpoints](https://perceptlayer.com/apis/aliexpress)

## Frequently asked questions

### How much does the AliExpress API cost?

All 9 endpoints cost 1 credit per successful call, and failed calls cost nothing. Reviews for 100 products at 3 pages each, with product details, 2 search pages and a shipping check, come to 502 credits. Every verified account gets 1,000 free credits a month, and the [pricing page](https://perceptlayer.com/pricing) has what credit packs cost.

### Do I need an AliExpress affiliate or seller account?

No. One Perceptlayer key works for AliExpress and every other API in the catalogue, with no programme to join. If you want to earn commission on links, join the AliExpress affiliate programme and use its API, since this one only reads product data and doesn't generate affiliate links.

### Why does my search call fail with invalid\_parameters?

Search requires `query`, `page` and `sort` together, and `sort` must be `default`, `orders`, `price_asc` or `price_desc`. Leaving out `page` or `sort`, or sending another sort value, fails with `invalid_parameters` (422) and a message naming the parameter. The failed call costs nothing.

### Can I get reviews with photos only?

Yes. Set `filter=image` on `product-reviews`. The other values are `all`, `local` and `additional`. The filter is required, so every reviews call names one. Paging works the same way for every filter, with `page` and `page_size` both required.

### Are the prices and shipping costs live?

They're what AliExpress showed at the time of the call, for the country you asked about in the case of shipping. Prices and shipping change, so store the time of each call with the data. For a price tracker, re-check the products you watch on a schedule rather than relying on an old pull.

aliexpress ecommerce product data reviews shipping

## More from the blog

1.  [API guides](https://perceptlayer.com/blog/category/api-guides) 18 Aug 2026 Perceptlayer 7 min read
    
    ## [Google Shopping API: Product Prices and Offers as JSON](https://perceptlayer.com/blog/google-shopping-api-product-prices)
    
    One GET to /v1/google-shopping/search returns product titles, sellers, prices and ratings as JSON. Parameters, a response and the cost of 500 products a day.
    
2.  [API guides](https://perceptlayer.com/blog/category/api-guides) 17 Aug 2026 Perceptlayer 7 min read
    
    ## [Mercado Libre API: Category Prices and Reviews as JSON](https://perceptlayer.com/blog/mercado-libre-api-product-search)
    
    Pull Mercado Libre best sellers and offers by category as JSON: price, previous price, shipping and reviews, at 1 credit per call.
    
3.  [API guides](https://perceptlayer.com/blog/category/api-guides) 22 Oct 2026 Perceptlayer 9 min read
    
    ## [Idealo API: Compare Product Prices Across Shops as JSON](https://perceptlayer.com/blog/idealo-api-price-comparison-json)
    
    Search idealo.de by keyword, then pass a product\_id to the offers endpoint. Endpoints, parameters, a real search response and the cost at 1 credit per call.
