GETListar avaliações
Lista as avaliações de produtos com filtros por estado, nota, produto, seller, data e texto.
Devolve as avaliações que os clientes deixaram nos produtos, de todos os estados, com filtros e ordenação. Avaliações de produtos que foram apagados não aparecem. A resposta traz também a nota média do conjunto filtrado.
/api/v1/admin/reviewsAdminLista as avaliações de produtos para moderação
Rota ligada ao módulo product-reviews: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_reviews ou manage_content.
Parâmetros de consulta
statusstringapprovedpendingrejectedspamdisabledhiddenEstado. Aceita a palavra ou a letra (
A, P, R, S, D, H).product_iduuidSó avaliações desse produto.
user_iduuidSó avaliações desse cliente.
vendor_iduuidSó avaliações de produtos desse seller.
ratingintegerNota exata, de 1 a 5. Valor fora disso é ignorado.
rating_minintegerNota mínima, 1 a 5.
rating_maxintegerNota máxima, 1 a 5.
date_fromstringEnviadas a partir desta data (
YYYY-MM-DD, início do dia UTC, ou RFC 3339).date_tostringEnviadas até esta data (
YYYY-MM-DD inclui o dia inteiro, ou RFC 3339).searchstringTexto no nome do produto, no nome do avaliador, no título ou no texto.
sort_bystringpadrão: created_atcreated_atratinghelpful_countCampo de ordenação.
sort_orderstringpadrão: descascdescDireção.
pageintegerpadrão: 1Página, a partir de 1.
per_pageintegerpadrão: 20Itens por página, 1 a 100; fora disso vale 20.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/reviews?status=pending&per_page=20" \
-H "Authorization: Bearer $TOKEN"Resposta
200Avaliações
json
{
"reviews": [
{
"id": "9a6b0b5e-3d3c-4d0f-b6ad-0e9c4f6f2a71",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"product_name": "Camiseta Azul",
"product_slug": "camiseta-azul",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"rating": 5,
"title": "Ótima",
"body": "Tecido muito bom e chegou rápido.",
"pros": "Caimento",
"cons": "",
"images": [],
"status": "pending",
"helpful_count": 0,
"created_at": "2026-10-10T14:00:00Z",
"reviewer_name": "Maria Souza",
"user_name": "Maria Souza",
"order_id": "3f73310d-bfdd-4713-a664-305c08eda58b",
"order_number": "PEDIDO-20261011-0002"
}
],
"total": 1,
"page": 1,
"per_page": 20,
"total_pages": 1,
"avg_rating": 5
}Campos da resposta
reviewsarrayAvaliações da página.
iduuidIdentificador da avaliação.
product_iduuidProduto avaliado.
product_namestringNome do produto, para a tabela de moderação.
product_slugstringSlug do produto.
vendor_iduuidSeller dono do produto.
ratingintegerNota de 1 a 5 estrelas.
titlestringTítulo da avaliação.
bodystringTexto da avaliação.
prosstringPontos positivos.
consstringPontos negativos.
imagesarrayFotos enviadas pelo cliente.
statusstringapproved, pending, rejected, spam, disabled ou hidden.helpful_countintegerVotos de "útil".
reviewer_namestringNome de quem avaliou (visitante usa o nome informado ou "Anonymous").
user_namestringIgual a
reviewer_name, mantido por compatibilidade.is_guestbooleantrue quando a avaliação veio de um visitante sem cadastro. Ausente caso contrário.vendor_replyobjectResposta do seller, quando existe:
id, review_id, vendor_id, vendor_name, reply_text, replied_at.videoobjectVídeo do cliente (
url, poster_url, duration_seconds), só em avaliação aprovada.order_iduuidPedido que originou a avaliação, quando há.
order_numberstringNúmero do pedido.
created_atstringEnvio, RFC 3339.
totalintegerTotal que atende ao filtro.
pageintegerPágina devolvida.
per_pageintegerItens por página usados.
total_pagesintegerTotal de páginas.
avg_ratingnumberNota média do conjunto filtrado (0 quando vazio).
Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_content","view_content"]} |
| 500 | Falha de banco. | {"error":"failed to list reviews","detail":"..."} |