Referência da API

Introdução

A AliExpress Reviews API retorna avaliações de produtos do AliExpress em JSON. É um único endpoint REST sobre HTTPS; toda resposta, inclusive os erros, é JSON.

URL base
https://api.aliexpress-reviews.com
Autenticação
Header x-api-key
Formato
JSON, UTF-8

Início rápido: crie uma chave grátis e teste no testador de API do painel ou execute:

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

Autenticação

Crie uma chave de API no painel e envie-a no header x-api-key de cada requisição. As chaves começam com rv_.

A chave é exibida apenas uma vez, quando você a cria: armazenamos um hash, não a chave. Se você a perder, gere uma nova pelo painel; a chave antiga deixa de funcionar em até 5 minutos.

Mantenha a chave no servidor. Qualquer pessoa com ela pode consumir sua cota.

GET /v1/reviews/{productId}

Retorna uma página de avaliações de um produto, junto com o resumo das notas.

Parâmetros de caminho

NomeTipoDescrição
productId obrigatóriostringId numérico do produto no AliExpress: o número em aliexpress.com/item/<id>.html.

Parâmetros de consulta

NomeTipoPadrãoPlanoDescrição
pageinteger1FreeNúmero da página, 1–1000.
pageSizeinteger20FreeAvaliações por página: até 20 no Free, até 100 no Pro e no Max.
filterstringallFreeUm dos filtros abaixo. Alguns valores exigem um plano superior.
countrystringUSProPaís do comprador, ISO 3166-1 alpha-2. Define quais avaliações filter=local retorna e a contagem de local.
langstringen_USProIdioma para o qual as avaliações são traduzidas. originalContent mantém o texto do comprador.

Parâmetros desconhecidos retornam 400. Um parâmetro que seu plano não inclui retorna 403, mesmo que o valor seja o padrão.

Exemplo de requisição

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

Filtros

Os filtros são os mesmos que o AliExpress mostra na página do produto, e é o AliExpress que os aplica. Envie um filter por requisição; eles não podem ser combinados.

ValorPlanoRetorna
filter=allFreeTodas as avaliações (padrão).
filter=5FreeApenas avaliações de 5 estrelas.
filter=4FreeApenas avaliações de 4 estrelas.
filter=3FreeApenas avaliações de 3 estrelas.
filter=2FreeApenas avaliações de 2 estrelas.
filter=1FreeApenas avaliações de 1 estrela.
filter=additionalProAvaliações com feedback adicional (de acompanhamento).
filter=localProAvaliações de compradores no país indicado no parâmetro country.
filter=imageMaxAvaliações com fotos.

O summary.filterCounts da resposta informa quantas avaliações cada filtro retornaria, para você ocultar filtros vazios na sua interface sem requisições extras.

Idiomas

Com lang (Pro), content e additionalFeedback vêm traduzidos pelo AliExpress. originalContent sempre mantém as palavras do próprio comprador.

ValorIdioma
en_USInglês
es_ESEspanhol
fr_FRFrancês
de_DEAlemão
it_ITItaliano
pt_BRPortuguês (Brasil)
nl_NLHolandês
pl_PLPolonês

Resposta

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

Campos da página

CampoTipoDescrição
productIdstringO produto solicitado.
filterstringFiltro aplicado.
page, pageSizeintegerPágina retornada e o tamanho solicitado.
totalintegerAvaliações que correspondem ao filtro.
totalPagesintegerPáginas disponíveis com este pageSize.
summary.averageRatingnumber | nullMédia de estrelas do produto, null sem avaliações.
summary.totalReviewsintegerTodas as avaliações do produto, independentemente do filtro.
summary.ratingDistributionobjectAvaliações por estrela, chaves "1"–"5".
summary.filterCountsobjectAvaliações por filtro: all, image, additional, local (depende de country).
dataReview[]As avaliações desta página.

Campos da avaliação

CampoTipoDescrição
idstringId da avaliação no AliExpress.
authorstringNome do comprador, mascarado pelo AliExpress (ex.: J***n).
countrystringPaís do comprador, ISO 3166-1 alpha-2.
ratingintegerEstrelas, 1–5.
contentstringTexto da avaliação traduzido para lang.
originalContentstringTexto da avaliação como o comprador o escreveu.
additionalFeedbackstring | nullFeedback de acompanhamento, se houver.
datestringData da avaliação, YYYY-MM-DD.
skustring | nullVariante que o comprador adquiriu (ex.: Color:Black).
helpfulVotesintegerVezes que outros compradores a marcaram como útil.
imagesstring[]URLs das fotos em tamanho original. Apenas no plano Max.
thumbnailsstring[]URLs das miniaturas. Apenas no plano Max.

images e thumbnails são omitidos nos planos Free e Pro.

Paginação

Solicite page=1, 2, … até que page chegue a totalPages. Cada página é uma requisição na sua cota, então use o maior pageSize que seu plano permitir.

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 requisições

PlanoRequisições por diapageSize máximo
Free10020
Pro1.000100
Max10.000100

As cotas são renovadas às 00:00 UTC. Toda resposta que conta na cota (200, 404, 429, 502) traz:

HeaderDescrição
x-ratelimit-limitSua cota diária.
x-ratelimit-remainingRequisições restantes hoje.
x-ratelimit-resetHorário Unix da próxima renovação.

Requisições rejeitadas com 400/401/403 não contam. Ao exceder a cota, você recebe 429 até a renovação. Há também um limite global de 50 requisições por segundo compartilhado por todos os usuários.

Cache

Cada página (produto + parâmetros) fica em cache por até 24 horas, então novas avaliações podem levar até um dia para aparecer. Respostas em cache também contam na sua cota.

Erros

Os erros usam códigos de status HTTP padrão e um corpo JSON:

{ "error": { "message": "filter=image requires the MAX plan" } }
StatusSignificadoConta na cota
400Parâmetro inválido ou desconhecido, ou id de produto malformado.Não
401Header x-api-key ausente.Não
403Chave de API inválida, ou parâmetro ou filtro que seu plano não inclui.Não
404O AliExpress não tem nenhum produto com esse id.Sim
429Cota diária excedida, ou o limite global de requisições foi atingido.—
502O AliExpress não respondeu. Tente novamente mais tarde.Sim

OpenAPI

A especificação completa está em /openapi.json (OpenAPI 3.0). Importe-a no Postman, no Insomnia ou em um gerador de clientes.