API-Referenz

Einführung

Die AliExpress Reviews API liefert AliExpress-Produktbewertungen als JSON. Es ist ein einziger REST-Endpoint über HTTPS; jede Antwort, auch Fehler, ist JSON.

Basis-URL
https://api.aliexpress-reviews.com
Auth
Header x-api-key
Format
JSON, UTF-8

Schnellstart: kostenlosen Key erstellen, dann im API-Tester des Dashboards ausprobieren oder ausführen:

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

Authentifizierung

Erstelle im Dashboard einen API-Key und sende ihn im Header x-api-key jeder Anfrage. Keys beginnen mit rv_.

Der Key wird nur einmal angezeigt, nämlich beim Erstellen: Wir speichern einen Hash, nicht den Key. Wenn du ihn verlierst, erneuere ihn im Dashboard; der alte Key funktioniert dann innerhalb von 5 Minuten nicht mehr.

Bewahre den Key nur serverseitig auf. Jeder, der ihn hat, kann dein Kontingent verbrauchen.

GET /v1/reviews/{productId}

Liefert eine Seite mit Bewertungen eines Produkts sowie eine Übersicht seiner Bewertungen.

Pfadparameter

NameTypBeschreibung
productId erforderlichstringNumerische AliExpress-Produkt-ID: die Zahl in aliexpress.com/item/<id>.html.

Query-Parameter

NameTypStandardPlanBeschreibung
pageinteger1FreeSeitennummer, 1–1000.
pageSizeinteger20FreeBewertungen pro Seite: bis zu 20 bei Free, bis zu 100 bei Pro und Max.
filterstringallFreeEiner der unten genannten Filter. Manche Werte erfordern einen höheren Plan.
countrystringUSProLand des Käufers, ISO 3166-1 alpha-2. Bestimmt, welche Bewertungen filter=local liefert, und die Anzahl bei local.
langstringen_USProSprache, in die Bewertungen übersetzt werden. originalContent behält den Text des Käufers.

Unbekannte Parameter liefern 400. Ein Parameter, der nicht in deinem Plan enthalten ist, liefert 403, auch wenn sein Wert dem Standard entspricht.

Beispielanfrage

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

Filter

Die Filter sind dieselben, die AliExpress auf der Produktseite zeigt, und AliExpress wendet sie an. Sende pro Anfrage einen filter; sie lassen sich nicht kombinieren.

WertPlanLiefert
filter=allFreeAlle Bewertungen (Standard).
filter=5FreeNur 5-Sterne-Bewertungen.
filter=4FreeNur 4-Sterne-Bewertungen.
filter=3FreeNur 3-Sterne-Bewertungen.
filter=2FreeNur 2-Sterne-Bewertungen.
filter=1FreeNur 1-Stern-Bewertungen.
filter=additionalProBewertungen mit zusätzlichem (nachträglichem) Feedback.
filter=localProBewertungen von Käufern im Land aus dem Parameter country.
filter=imageMaxBewertungen mit Fotos.

summary.filterCounts in der Antwort zeigt dir, wie viele Bewertungen jeder Filter liefern würde, sodass du leere Filter in deiner UI ohne zusätzliche Anfragen ausblenden kannst.

Sprachen

Mit lang (Pro) werden content und additionalFeedback von AliExpress übersetzt. originalContent behält immer die Worte des Käufers.

WertSprache
en_USEnglisch
es_ESSpanisch
fr_FRFranzösisch
de_DEDeutsch
it_ITItalienisch
pt_BRPortugiesisch (Brasilien)
nl_NLNiederländisch
pl_PLPolnisch

Antwort

{
  "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://..."]
    }
  ]
}

Seitenfelder

FeldTypBeschreibung
productIdstringDas angefragte Produkt.
filterstringAngewendeter Filter.
page, pageSizeintegerZurückgegebene Seite und ihre angefragte Größe.
totalintegerBewertungen, die zum Filter passen.
totalPagesintegerVerfügbare Seiten mit diesem pageSize.
summary.averageRatingnumber | nullDurchschnittliche Sterne des Produkts, null ohne Bewertungen.
summary.totalReviewsintegerAlle Bewertungen des Produkts, unabhängig vom Filter.
summary.ratingDistributionobjectBewertungen pro Stern, Schlüssel "1"–"5".
summary.filterCountsobjectBewertungen pro Filter: all, image, additional, local (abhängig von country).
dataReview[]Die Bewertungen dieser Seite.

Bewertungsfelder

FeldTypBeschreibung
idstringAliExpress-Bewertungs-ID.
authorstringKäufername, von AliExpress maskiert (z. B. J***n).
countrystringLand des Käufers, ISO 3166-1 alpha-2.
ratingintegerSterne, 1–5.
contentstringBewertungstext, übersetzt in lang.
originalContentstringBewertungstext, wie der Käufer ihn geschrieben hat.
additionalFeedbackstring | nullNachträgliches Feedback, falls vorhanden.
datestringBewertungsdatum, YYYY-MM-DD.
skustring | nullVom Käufer gekaufte Variante (z. B. Color:Black).
helpfulVotesintegerWie oft andere Käufer sie als hilfreich markiert haben.
imagesstring[]URLs der Fotos in voller Größe. Nur Max-Plan.
thumbnailsstring[]Thumbnail-URLs. Nur Max-Plan.

images und thumbnails entfallen bei Free und Pro.

Paginierung

Rufe page=1, 2, … ab, bis page den Wert totalPages erreicht. Jede Seite zählt als eine Anfrage auf dein Kontingent, nutze also die größte pageSize, die dein Plan erlaubt.

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;
  }
}

Rate Limits

PlanAnfragen pro TagMax. pageSize
Free10020
Pro1.000100
Max10.000100

Kontingente werden um 00:00 UTC zurückgesetzt. Jede Antwort, die aufs Kontingent zählt (200, 404, 429, 502), enthält:

HeaderBeschreibung
x-ratelimit-limitDein Tageskontingent.
x-ratelimit-remainingHeute verbleibende Anfragen.
x-ratelimit-resetUnix-Zeit des nächsten Resets.

Mit 400/401/403 abgelehnte Anfragen zählen nicht. Bei überschrittenem Kontingent erhältst du bis zum Reset 429. Zusätzlich gilt ein globales Limit von 50 Anfragen pro Sekunde, das sich alle Nutzer teilen.

Caching

Jede Seite (Produkt + Parameter) wird bis zu 24 Stunden zwischengespeichert, daher kann es bis zu einen Tag dauern, bis neue Bewertungen erscheinen. Gecachte Antworten zählen trotzdem auf dein Kontingent.

Fehler

Fehler verwenden Standard-HTTP-Statuscodes und einen JSON-Body:

{ "error": { "message": "filter=image requires the MAX plan" } }
StatusBedeutungZählt zum Kontingent
400Ungültiger oder unbekannter Parameter oder fehlerhafte Produkt-ID.Nein
401Header x-api-key fehlt.Nein
403Ungültiger API-Key oder ein Parameter bzw. Filter, der nicht in deinem Plan enthalten ist.Nein
404AliExpress hat kein Produkt mit dieser ID.Ja
429Tageskontingent überschritten oder globales Rate Limit erreicht.—
502AliExpress hat nicht geantwortet. Versuche es später erneut.Ja

OpenAPI

Die vollständige Spezifikation findest du unter /openapi.json (OpenAPI 3.0). Importiere sie in Postman, Insomnia oder einen Client-Generator.