JD.com Keyword Rank Tracker avatar

JD.com Keyword Rank Tracker

Pricing

from $4.00 / 1,000 results

Go to Apify Store
JD.com Keyword Rank Tracker

JD.com Keyword Rank Tracker

Full JD.com search results per keyword (China (jd.com)) with position and sponsored flag — see where a brand ranks and who holds the paid slots. Dual-mode: the same code runs as an ATR BullMQ worker.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

AtTheRate AI

AtTheRate AI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Answers one question for a keyword on JD.com: who pays to appear on it, in what order, at what price. The actor reads JD's ad-fed keyword search, so every row is a paid placement with its slot position, the shop behind it and the store quality score JD publishes.

What you get

  • Slot order per keyword: keyword, page and a position that keeps counting across pages.
  • is_sponsored is true on every row by design. This feed is JD's advertising surface, so the dataset is a clean list of who buys the keyword.
  • ad_type for the placement type, next to total_results, JD's own count for the keyword.
  • Shop identity: seller is the store name, shop_id its numeric id, self_operated marks JD's first party stores.
  • Trust signals shoppers act on: good_rate_pct is the positive review percentage and comments_bucket the review volume band JD prints, such as 200万+.
  • Category placement as cid1, cid2 and cid3, showing whether an advertiser bids inside or outside its own category.
  • price in CNY as a number, plus product_url and image_url for every placement.

Input

Pass keywords and how many pages of the ad feed to capture.

{
"keywords": ["洗发水"],
"locale": "cn",
"pages": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "CN"
},
"delayMs": 1200,
"callsPerSession": 60
}
  • keywords (required): the search terms to capture. Chinese terms are expected. Duplicates are ignored.
  • locale: cn. JD.com has one storefront.
  • pages: pages of the feed per keyword, 1 to 10. Pages after the first come from JD's paging feed at about 24 placements each.
  • proxyConfiguration: residential inside mainland China, the input default.

Output

One dataset row per placement.

{
"platform": "jd",
"locale": "cn",
"keyword": "洗发水",
"page": 1,
"position": 1,
"id": "100178868918",
"name": "维特丝洗发水男女士专用去屑止痒控油持久蓬松留香洗头膏",
"price": 38.8,
"currency": "CNY",
"in_stock": true,
"is_sponsored": true,
"seller": "维特丝京东自营旗舰店",
"shop_id": 1000116943,
"self_operated": 1,
"good_rate_pct": 99,
"comments_bucket": "200万+",
"cid1": 16750,
"cid2": 16751,
"cid3": 16756,
"ad_type": 3,
"total_results": 7599,
"product_url": "https://item.jd.com/100178868918.html",
"captured_at": "2026-09-12T03:02:04.988Z"
}

brand, original_price and rating_count are null on this feed. rating mirrors good_rate_pct, so it is a positive review percentage out of 100, not a five star average. Read good_rate_pct and ignore rating.

Use cases

  • Ad monitoring: group seller and shop_id by position to see who dominates the paid shelf.
  • Category poaching: compare cid1 to cid3 against your own category to catch advertisers bidding outside their shelf.
  • First party versus marketplace advertising split, from self_operated.
  • Price positioning of advertisers, from price at each position.
  • Advertiser trust benchmarking from good_rate_pct and comments_bucket, to see if higher rated shops hold better slots.

Notes and limits

  • Every row is a paid placement. This actor does not report organic rank. For that, use the JD.com Catalogue by Category actor.
  • A keyword with no ad inventory legitimately returns zero rows and is counted as empty in the run stats. That is a real answer about the keyword, not a failure.
  • pages is capped at 10 per keyword. A verified capture of 洗发水 at pages: 2 returned 46 placements, all sponsored.
  • A residential proxy inside mainland China is the recommended default. In a parallel verified run from a non-China exit, two of three keywords returned placements and the third was refused, so an in-country exit makes captures reliable.
  • Results are deduplicated by SKU within a keyword, so a placement repeated across pages keeps its first position.

FAQ

Do I need a proxy? Residential inside mainland China (country CN) is recommended and is the input default. Other exits are refused unpredictably.

How many results can I get? Up to 10 pages per keyword at roughly 24 placements per page. A verified two page capture returned 46 rows.

Does it need a login or an API key? No. No JD account and no API key.

Why is every row marked sponsored? Because the feed behind this actor is JD's advertising search surface. Reporting the rows as organic would be wrong, so they are flagged honestly.