Référence de l’API

Introduction

AliExpress Reviews API renvoie les avis produits AliExpress en JSON. C’est un unique endpoint REST en HTTPS ; toutes les réponses, erreurs comprises, sont en JSON.

URL de base
https://api.aliexpress-reviews.com
Authentification
En-tête x-api-key
Format
JSON, UTF-8

Démarrage rapide : créez une clé gratuite, puis essayez-la dans le testeur d’API du tableau de bord ou exécutez :

curl "https://api.aliexpress-reviews.com/v1/reviews/1005006123456789?filter=5&pageSize=20" \
  -H "x-api-key: $REVIEWS_API_KEY"

Authentification

Créez une clé API dans le tableau de bord et envoyez-la dans l’en-tête x-api-key de chaque requête. Les clés commencent par rv_.

La clé n’est affichée qu’une seule fois, à sa création : nous stockons un hash, pas la clé. Si vous la perdez, renouvelez-la depuis le tableau de bord ; l’ancienne clé cesse de fonctionner sous 5 minutes.

Gardez la clé côté serveur. Quiconque la possède peut consommer votre quota.

GET /v1/reviews/{productId}

Renvoie une page d’avis d’un produit, ainsi qu’un résumé de ses notes.

Paramètres de chemin

NomTypeDescription
productId obligatoirestringIdentifiant numérique du produit AliExpress : le nombre dans aliexpress.com/item/<id>.html.

Paramètres de requête

NomTypePar défautPlanDescription
pageinteger1FreeNuméro de page, 1–1000.
pageSizeinteger20FreeAvis par page : jusqu’à 20 avec Free, jusqu’à 100 avec Pro et Max.
filterstringallFreeL’un des filtres ci-dessous. Certaines valeurs nécessitent un plan supérieur.
countrystringUSProPays de l’acheteur, ISO 3166-1 alpha-2. Détermine les avis renvoyés par filter=local et le compteur local.
langstringen_USProLangue de traduction des avis. originalContent conserve le texte de l’acheteur.

Les paramètres inconnus renvoient 400. Un paramètre que votre plan n’inclut pas renvoie 403, même si sa valeur est celle par défaut.

Exemple de requête

curl "https://api.aliexpress-reviews.com/v1/reviews/1005006123456789?filter=5&pageSize=20" \
  -H "x-api-key: $REVIEWS_API_KEY"

Filtres

Les filtres sont les mêmes que ceux qu’AliExpress affiche sur la page produit, et c’est AliExpress qui les applique. Envoyez un seul filter par requête ; ils ne peuvent pas être combinés.

ValeurPlanRenvoie
filter=allFreeTous les avis (par défaut).
filter=5FreeAvis 5 étoiles uniquement.
filter=4FreeAvis 4 étoiles uniquement.
filter=3FreeAvis 3 étoiles uniquement.
filter=2FreeAvis 2 étoiles uniquement.
filter=1FreeAvis 1 étoile uniquement.
filter=additionalProAvis avec commentaire complémentaire (suivi).
filter=localProAvis d’acheteurs du pays indiqué dans le paramètre country.
filter=imageMaxAvis avec photos.

Le champ summary.filterCounts de la réponse indique combien d’avis chaque filtre renverrait, ce qui vous permet de masquer les filtres vides dans votre interface sans requête supplémentaire.

Langues

Avec lang (Pro), content et additionalFeedback sont traduits par AliExpress. originalContent conserve toujours les mots de l’acheteur.

ValeurLangue
en_USAnglais
es_ESEspagnol
fr_FRFrançais
de_DEAllemand
it_ITItalien
pt_BRPortugais (Brésil)
nl_NLNéerlandais
pl_PLPolonais

Réponse

{
  "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://..."],
      "thumbnails": ["https://..."]
    }
  ]
}

Champs de la page

ChampTypeDescription
productIdstringLe produit demandé.
filterstringFiltre appliqué.
page, pageSizeintegerPage renvoyée et taille demandée.
totalintegerAvis correspondant au filtre.
totalPagesintegerPages disponibles avec ce pageSize.
summary.averageRatingnumber | nullNote moyenne du produit, null sans avis.
summary.totalReviewsintegerTous les avis du produit, quel que soit le filtre.
summary.ratingDistributionobjectAvis par nombre d’étoiles, clés "1"–"5".
summary.filterCountsobjectAvis par filtre : all, image, additional, local (dépend de country).
dataReview[]Les avis de cette page.

Champs d’un avis

ChampTypeDescription
idstringIdentifiant de l’avis AliExpress.
authorstringNom de l’acheteur, masqué par AliExpress (p. ex. J***n).
countrystringPays de l’acheteur, ISO 3166-1 alpha-2.
ratingintegerÉtoiles, 1–5.
contentstringTexte de l’avis traduit dans lang.
originalContentstringTexte de l’avis tel que l’acheteur l’a rédigé.
additionalFeedbackstring | nullCommentaire complémentaire, le cas échéant.
datestringDate de l’avis, YYYY-MM-DD.
skustring | nullVariante achetée par l’acheteur (p. ex. Color:Black).
helpfulVotesintegerNombre de fois où d’autres acheteurs l’ont jugé utile.
imagesstring[]URL des photos en taille réelle. Plan Max uniquement.
thumbnailsstring[]URL des miniatures. Plan Max uniquement.

images et thumbnails sont omis avec Free et Pro.

Pagination

Demandez page=1, 2, … jusqu’à ce que page atteigne totalPages. Chaque page compte pour une requête sur votre quota : utilisez donc le pageSize le plus grand autorisé par votre plan.

async function allReviews(productId, filter = 'all') {
  const reviews = [];
  for (let page = 1; ; page++) {
    const url = `https://api.aliexpress-reviews.com/v1/reviews/${productId}?filter=${filter}&page=${page}`;
    const res = await fetch(url, { headers: { 'x-api-key': process.env.REVIEWS_API_KEY } });
    const body = await res.json();
    reviews.push(...body.data);
    if (page >= body.totalPages) return reviews;
  }
}

Limites de débit

PlanRequêtes par jourpageSize max.
Free10020
Pro1 000100
Max10 000100

Les quotas sont réinitialisés à 00:00 UTC. Chaque réponse décomptée du quota (200, 404, 429, 502) contient :

En-têteDescription
x-ratelimit-limitVotre quota quotidien.
x-ratelimit-remainingRequêtes restantes aujourd’hui.
x-ratelimit-resetHeure Unix de la prochaine réinitialisation.

Les requêtes rejetées avec 400/401/403 ne sont pas décomptées. Une fois le quota dépassé, vous recevez 429 jusqu’à la réinitialisation. Il existe aussi une limite globale de 50 requêtes par seconde, partagée entre tous les utilisateurs.

Cache

Chaque page (produit + paramètres) est mise en cache pendant 24 heures maximum : les nouveaux avis peuvent donc mettre jusqu’à un jour à apparaître. Les réponses en cache sont tout de même décomptées de votre quota.

Erreurs

Les erreurs utilisent les codes de statut HTTP standard et un corps JSON :

{ "error": { "message": "filter=image requires the MAX plan" } }
StatutSignificationDécompté du quota
400Paramètre invalide ou inconnu, ou identifiant de produit mal formé.Non
401En-tête x-api-key manquant.Non
403Clé API invalide, ou paramètre ou filtre non inclus dans votre plan.Non
404AliExpress n’a aucun produit avec cet identifiant.Oui
429Quota quotidien dépassé, ou limite de débit globale atteinte.—
502AliExpress n’a pas répondu. Réessayez plus tard.Oui

OpenAPI

La spécification complète est disponible sur /openapi.json (OpenAPI 3.0). Importez-la dans Postman, Insomnia ou un générateur de clients.