API リファレンス

はじめに

AliExpress Reviews API は、AliExpress の商品レビューを JSON で返します。HTTPS 上の単一の REST エンドポイントで、エラーを含むすべてのレスポンスが JSON です。

ベース URL
https://api.aliexpress-reviews.com
認証
x-api-key ヘッダー
形式
JSON, UTF-8

クイックスタート:無料のキーを作成し、ダッシュボードの API テスターで試すか、次のコマンドを実行します。

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

認証

ダッシュボードで API key を作成し、すべてのリクエストの x-api-key ヘッダーに含めて送信してください。キーは rv_ で始まります。

キーは作成時に一度だけ表示されます。保存しているのはキーそのものではなくハッシュです。紛失した場合はダッシュボードからローテーションしてください。古いキーは5分以内に使えなくなります。

キーはサーバー側で管理してください。キーを持っている人は誰でもあなたのクォータを消費できます。

GET /v1/reviews/{productId}

商品のレビュー1ページ分と、その評価のサマリーを返します。

パスパラメーター

名前型説明
productId 必須stringAliExpress の数値の商品 ID:aliexpress.com/item/<id>.html に含まれる数字です。

クエリパラメーター

名前型デフォルトプラン説明
pageinteger1Freeページ番号(1〜1000)。
pageSizeinteger20Free1ページあたりのレビュー数:Free は最大20、Pro と Max は最大100。
filterstringallFree下記のフィルターのいずれか。一部の値は上位プランが必要です。
countrystringUSPro購入者の国(ISO 3166-1 alpha-2)。filter=local が返すレビューと local の件数を決定します。
langstringen_USProレビューの翻訳先の言語。originalContent には購入者の原文が残ります。

不明なパラメーターは 400 を返します。ご利用のプランに含まれないパラメーターは、値がデフォルトであっても 403 を返します。

リクエスト例

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

フィルター

フィルターは AliExpress の商品ページに表示されるものと同じで、AliExpress 側で適用されます。filter は1リクエストにつき1つだけ指定でき、組み合わせることはできません。

値プラン返す内容
filter=allFreeすべてのレビュー(デフォルト)。
filter=5Free星5のレビューのみ。
filter=4Free星4のレビューのみ。
filter=3Free星3のレビューのみ。
filter=2Free星2のレビューのみ。
filter=1Free星1のレビューのみ。
filter=additionalPro追加(フォローアップ)フィードバック付きのレビュー。
filter=localProcountry パラメーターで指定した国の購入者によるレビュー。
filter=imageMax写真付きのレビュー。

レスポンスの summary.filterCounts で各フィルターが返すレビュー数がわかるため、追加のリクエストなしで UI から空のフィルターを非表示にできます。

言語

lang(Pro)を指定すると、content と additionalFeedback が AliExpress によって翻訳されて返されます。originalContent には常に購入者自身の言葉がそのまま残ります。

値言語
en_US英語
es_ESスペイン語
fr_FRフランス語
de_DEドイツ語
it_ITイタリア語
pt_BRポルトガル語(ブラジル)
nl_NLオランダ語
pl_PLポーランド語

レスポンス

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

ページのフィールド

フィールド型説明
productIdstringリクエストした商品。
filterstring適用されたフィルター。
page, pageSizeinteger返されたページと、リクエストしたページサイズ。
totalintegerフィルターに一致するレビュー数。
totalPagesintegerこの pageSize で取得できるページ数。
summary.averageRatingnumber | null商品の平均星数。レビューがない場合は null。
summary.totalReviewsintegerフィルターに関係なく、商品のすべてのレビュー数。
summary.ratingDistributionobject星ごとのレビュー数。キーは "1"〜"5"。
summary.filterCountsobjectフィルターごとのレビュー数:all、image、additional、local(country に依存)。
dataReview[]このページのレビュー。

レビューのフィールド

フィールド型説明
idstringAliExpress のレビュー ID。
authorstringAliExpress によってマスクされた購入者名(例:J***n)。
countrystring購入者の国(ISO 3166-1 alpha-2)。
ratinginteger星の数(1〜5)。
contentstringlang に翻訳されたレビュー本文。
originalContentstring購入者が書いたままのレビュー本文。
additionalFeedbackstring | nullフォローアップのフィードバック(ある場合)。
datestringレビューの日付(YYYY-MM-DD)。
skustring | null購入者が購入したバリエーション(例:Color:Black)。
helpfulVotesinteger他の購入者が「役に立った」と評価した回数。
imagesstring[]フルサイズ写真の URL。Max プランのみ。
thumbnailsstring[]サムネイルの URL。Max プランのみ。

Free と Pro では images と thumbnails は省略されます。

ページネーション

page が totalPages に達するまで、page=1、2、… とリクエストします。各ページがクォータの1リクエストとして計上されるため、プランで許可されている最大の pageSize を使ってください。

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

レート制限

プラン1日あたりのリクエスト数最大 pageSize
Free10020
Pro1,000100
Max10,000100

クォータは 00:00 UTC にリセットされます。クォータに計上されるすべてのレスポンス(200、404、429、502)には次のヘッダーが含まれます。

ヘッダー説明
x-ratelimit-limit1日のクォータ。
x-ratelimit-remaining本日の残りリクエスト数。
x-ratelimit-reset次回リセットの Unix 時刻。

400/401/403 で拒否されたリクエストは計上されません。クォータを超えると、リセットまで 429 が返されます。また、全ユーザー共通で毎秒50リクエストのグローバル制限があります。

キャッシュ

各ページ(商品+パラメーター)は最大24時間キャッシュされるため、新しいレビューが表示されるまで最大1日かかることがあります。キャッシュされたレスポンスもクォータに計上されます。

エラー

エラーは標準的な HTTP ステータスコードと、次の JSON ボディで返されます。

{ "error": { "message": "filter=image requires the MAX plan" } }
ステータス意味クォータに計上
400パラメーターが無効または不明か、商品 ID の形式が正しくありません。いいえ
401x-api-key ヘッダーがありません。いいえ
403API key が無効か、ご利用のプランに含まれないパラメーターまたはフィルターです。いいえ
404その ID の商品は AliExpress に存在しません。はい
4291日のクォータを超えたか、グローバルなレート制限に達しました。—
502AliExpress から応答がありませんでした。しばらくしてから再試行してください。はい

OpenAPI

完全な仕様は /openapi.json(OpenAPI 3.0)にあります。Postman、Insomnia、クライアントジェネレーターにインポートして使えます。