API reference

Authentication

Create an API key in the dashboard and send it in the x-api-key header. Keep it server-side: anyone with the key can spend your quota.

GET /v1/products/{productId}/reviews

productId is the numeric AliExpress product id (the number in aliexpress.com/item/<id>.html).

Filters are the same ones AliExpress shows on the product page, and AliExpress applies them: onefilter per request.

ParameterPlanDescription
pageFreePage number, starting at 1.
pageSizeFree1–20 on Free, 1–100 on Pro and Max. Default 20.
filter=allFreeAll reviews (default).
filter=5 … filter=1FreeOnly reviews with that many stars.
filter=additionalProReviews with additional feedback.
filter=localProReviews from buyers in country.
filter=imageMaxReviews with photos.
countryProShopper country, ISO 3166-1 alpha-2 (default US). Used by filter=local.
langProTranslation language: en_US (default), es_ES, fr_FR, de_DE, it_IT, pt_BR, nl_NL, pl_PL.

Using a parameter or filter your plan doesn't include returns 403.

Response

{
  "productId": "1005006123456789",
  "filter": "all",
  "page": 1,
  "pageSize": 20,
  "total": 452,
  "totalPages": 23,
  "summary": {
    "averageRating": 4.4,
    "totalReviews": 452,
    "ratingDistribution": { "5": 323, "4": 54, "3": 33, "2": 12, "1": 30 },
    "filterCounts": { "all": 452, "image": 32, "additional": 6, "local": 63 }
  },
  "data": [
    {
      "id": "60012345678901234",
      "author": "J***n",
      "country": "ES",
      "rating": 5,
      "content": "Very good quality, arrived in 10 days",
      "originalContent": "Muy buena calidad, llegó en 10 días",
      "additionalFeedback": null,
      "date": "2026-08-09",
      "sku": "Color:Black",
      "helpfulVotes": 3,
      "images": ["https://..."],      // Max only
      "thumbnails": ["https://..."]   // Max only
    }
  ]
}

Quotas

Every response carries x-ratelimit-limit, x-ratelimit-remaining andx-ratelimit-reset (Unix time of the next reset, 00:00 UTC). Over the quota you get 429.

Each page is cached for up to 24 hours.

Errors

StatusMeaning
400Invalid parameter.
401 / 403Missing or invalid API key, or a filter outside your plan.
404Product not found.
429Daily quota exceeded, or global rate limit.
502The upstream source failed; retry later. Still counts against your quota.

Errors look like { "error": { "message": "..." } }.