Apinoa Docs

Reviews

从店铺所用的评价应用获取 Shopify 商品的评价。

查看原始 .mdx
GET | POST /v1/shopify/reviews

参数可以用 GET 的查询字符串发送,也可以用 POST 的 JSON 请求体发送,两者等价。

请求

curl "https://gateway.apinoa.com/v1/shopify/reviews?id=www.orthofeet.com%2Fcoral-black" \
  -H "x-api-key: $APINOA_API_KEY"

参数

参数类型必填说明
idstring是The composite Shopify shop/handle — the same id product takes, not a global identifier. This is the one Shopify operation whose cost varies: a first page can cost more than 1, while a page fetched with cursor costs 1.
cursorstringOpaque cursor from the previous response; the only paging knob that works on every shop, and it wins if page is sent too. A page fetched with a cursor costs 1.
pageinteger1-based starting page. Not every shop supports jumping to a page number; cursor works on every shop, so prefer it for paging.

这些参数及所有响应类型也写在OpenAPI 文档中。

响应

在 data 中返回 ReviewPage。 真实响应的节选:数组只保留前几项,长文本已截断。

{
  "success": true,
  "data": {
    "marketplace": "shopify",
    "productId": "www.orthofeet.com/coral-black",
    "page": {
      "index": 1,
      "size": 30,
      "total": 990
    },
    "reviews": [
      {
        "id": "df4c25ec-c5c8-41e5-8fd2-8c72cec3ab88",
        "author": "Karen Michel",
        "rating": 3,
        "title": "Not as expected",
        "body": "I needed good shoes to take on a tour in italy. I used these shoes thinking they would support my feet. But they did no…",
        "date": "2026-10-24T15:13:07.824Z",
        "verified": true,
        "helpfulCount": 0,
        "variant": "Coral - Beige Leopard",
        "images": []
      },
      {
        "id": "0788f651-a9a4-4c14-9c4d-25ca08b88951",
        "author": "Anna Prigozhin",
        "rating": 5,
        "body": "Coral - White",
        "date": "2026-10-24T15:05:48.452Z",
        "verified": true,
        "helpfulCount": 0,
        "variant": "Coral - White",
        "images": []
      }
    ],
    "summary": {
      "average": 4.1,
      "count": 38998,
      "distribution": {
        "1": 11,
        "2": 6,
        "3": 9,
        "4": 10,
        "5": 64
      }
    },
    "grouped": true,
    "cursor": "eyJhIjoianVkZ2VtZSIsImkiOnsibXlzaG9waWZ5Ijoib3J0aG9mZWV0Lm15c2hvcGlmeS5jb20iLCJwcm9kdWN0SWQiOiI2NzAyNDYxNzQ4OCJ9LCJjIjo…"
  }
}

错误

状态代码含义
400INVALID_CURSOR该 cursor 不是本操作返回的。请不带它重新开始。
400INVALID_PARAMS参数缺失、未知或超出范围。消息中会指出是哪一个。
401UNAUTHORIZED缺少 x-api-key 请求头,或密钥已吊销或未知。
402INSUFFICIENT_BALANCE余额不足以支付本次调用。请在控制台充值。
429MARKETPLACE_SATURATED并发调用过多。请等待 Retry-After 秒后重试。
501REVIEWS_UNREACHABLE该店铺展示了评价,但无法读取任何一条。
501REVIEW_APP_UNSUPPORTED该店铺的评价来自本 API 尚未支持读取的应用。
502UPSTREAM_ERROR平台返回了无法使用的内容。请退避后重试。

全部错误代码见 Errors。失败的调用不计费。

价格

价格 每次调用 $0.001,每多一次调用加 $0.001——最多再加 6 次,合计最多 $0.007。第一页通常比基础价多一个单位;cursor 页只收基础价。标价;单日调用超过 1,000 次后单价下调。

说明

  • 使用 cursor 获取下一页。 并非每个店铺都支持 page;cursor 始终可用。第一页通常比基础价格多一个单位;cursor 页只计基础价格。
  • 没有评价也是一种答案。 没有评价的商品返回 200,并带有 reviews: [] 和 page.total: 0,且只有在确实为零时才会返回零。只有星级没有文字的评分计为零条评价。
  • 501 表示评价存在但无法读取——刻意不使用 404,也不返回空列表。
  • 评价常常是分组的。 店铺可能对某个颜色的页面返回整个商品系列的评价。计算单个商品的评分前,请检查 grouped。

本页内容