JD and Taobao product reviews API: pull buyer reviews by SKU

To pull buyer reviews of a product, JD.com and Taobao/Tmall are two parallel paths: JD takes a sku_id (from item.jd.com/<SKU>.html), and Taobao and Tmall take an item_id (the id= in the item URL). Each path pages on its own. Every step below is a real endpoint with real parameters.

A new account gets 50 trial calls; after that, successful calls are billed from a prepaid balance. See pricing.

Pull product reviews on two platform paths

The sku_id 100006271091 and item_id 611261922146 in the examples are catalog example placeholders: replace them with the product you are looking up. You need an API key, and a new account has 50 trial calls; once the trial calls are used, the product-review endpoints are billed from your balance.

  1. Pull JD.com product reviews by SKU

    sku_id is the JD.com SKU ID, the number in item.jd.com/<SKU>.html; 100006271091 in the example is a placeholder. Optional page (default 1) and only_this_sku (default true, this SKU only; false returns every variant of the product). About 10 a page, newest first; raise page up to the previous max_page and stop when has_more is false. A SKU without reviews, or one that does not exist, answers empty and is not charged.

    JD.com product reviewsGET /v1/raw/jd/comments

    cURL
    curl 'https://api.qovia.ai/v1/raw/jd/comments?sku_id=100006271091' \
      -H "Authorization: Bearer $QOVIA_KEY"
    Python
    import os
    import requests
    
    resp = requests.get(
        "https://api.qovia.ai/v1/raw/jd/comments",
        params={"sku_id": "100006271091"},
        headers={"Authorization": f"Bearer {os.environ['QOVIA_KEY']}"},
        timeout=30,
    )
    resp.raise_for_status()
    body = resp.json()
    print(body["meta"]["charged_usd"], body["data"])

    The data in the response. The sample comes from the endpoint catalog, not live data; lists are cut to their first two entries and picture links are left out:

    200 OK
    {
      "data": {
        "items": [
          {
            "id": "eco_jd_43a365a0aaef",
            "cid": "106314560218561793",
            "text": "还可以吧,唯一的缺点就是颗粒太大了,吞咽的时候有点不舒服",
            "rating": 5,
            "likes": 0,
            "created_at": "2026-10-20T19:45:27+08:00",
            "sku": "规格:【60片*1盒】院线同款-60天用量",
            "sku_id": "100006271091",
            "user_name": "j***i",
            "anonymous": false,
            "ip_location": "广东",
            "images": [],
            "shop_reply": "非常感谢您的反馈!我们注意到您对颗粒大小的反馈,这可能给您带来了些许不适。我们会努力改进产品。…"
          },
          {
            "id": "eco_jd_001042af4786",
            "cid": "106191920223780233",
            "text": "一直喝的这个,每天一个,挺好的,一家人都在喝。",
            "rating": 5,
            "likes": 0,
            "created_at": "2026-10-18T18:55:50+08:00",
            "sku": "规格:【60片*1盒】院线同款-60天用量",
            "sku_id": "100006271091",
            "user_name": "赵***g",
            "anonymous": false,
            "ip_location": "河北",
            "images": [
              "https://img30.360buyimg.com/shaidan/jfs/t1/549256/12/1897/1368430/6ad4a5b5Fc881e4a1/00a9c00000e872a7.jpg"
            ],
            "shop_reply": "嘿,看到您一直钟爱我们的善存多维元素片,真是倍感荣幸!…"
          }
        ],
        "page": 1,
        "has_more": true,
        "max_page": 2,
        "total": 20000,
        "prov": {
          "hash": "0x494e4995216cc2cc",
          "ts": "2026-10-21T20:03:12+08:00",
          "source": "live"
        }
      }
    }
  2. Pull Taobao and Tmall product reviews by item_id

    item_id is the Taobao or Tmall item ID (the id= in the item URL); both platforms work the same way, and 611261922146 in the example is a placeholder. Optional page (default 1) and skip_default_reviews (default true, skips default positive reviews without text unless they carry a follow-up). About 20 a page, newest first; stop paging when has_more is false. An item without reviews, or one that does not exist, answers empty and is not charged.

    Taobao & Tmall product reviewsGET /v1/raw/taobao/comments

    cURL
    curl 'https://api.qovia.ai/v1/raw/taobao/comments?item_id=611261922146' \
      -H "Authorization: Bearer $QOVIA_KEY"

More endpoints for this

FAQ

Where do sku_id and item_id come from?

JD's sku_id is the number in item.jd.com/<SKU>.html. Taobao and Tmall item_id is the id= in the item URL. The two paths are independent — do not pass a JD SKU to the Taobao endpoint.

Do Tmall and Taobao use the same endpoint?

Yes. raw.taobao.comments takes Taobao and Tmall item IDs alike. For the platform's own JSON (including popular review keywords and more), use raw.taobao.comments_v2, listed under more endpoints on this page.

What about Fliggy hotel reviews?

Yes. raw.fliggy.hotel reads a hotel's rating summary and raw.fliggy.reviews pulls guest reviews by hotel_id; both are listed under more endpoints on this page.

How is it billed?

A new account gets 50 trial calls; after that, calls are billed from a prepaid balance, and only successful calls that return data are charged. Empty results and errors are not, and meta.charged_usd in each response says what the call cost. Each endpoint's price is in the API reference, and the plans are on the pricing page.

Your agent only knows what you give it

Give it Douyin, Xiaohongshu (RedNote), WeChat and product reviews: structured, per call, nothing charged for failures.