LinkDigest ·

Xiaohongshu (RedNote) comments API: the top comments and their replies from a note link — what you get, what you don't

Short answer: Xiaohongshu has no public comments endpoint, and the web page only expands comments after a login. The share link a note's author copies from the app (the one carrying xsec_token) opens a public page that embeds the note's top comments — at most 5, each with up to 3 replies. LinkDigest reads them in the same request as the note: no Xiaohongshu account, no cookies, no comments endpoint. That is also the limit: you get the top comments and reply excerpts, never the whole thread, and nothing about who wrote them.

Disclosure: LinkDigest is the author's own service. The numbers below are from a scan of the live digest cache on 2026-11-06 and one public note read on the author's own account.

What a read returns

Each entry in comments:

field content
text the comment
posted_at its date
replies how many replies it has
reply_texts up to 3 of those replies, verbatim
likes the like count (the share page often reports 0 — do not sort by it)

stats.comments is the total the note shows (207 on the example below); comments is the handful the share page embeds (5). The two differ by design.

Measured on 725 notes (2026-11-06)

  • 404 of 725 Xiaohongshu notes (56%) carried comments; 321 carried none — no comments yet, comments closed, or the share page did not embed them.
  • Of the notes with comments, 274 had exactly 5 — the share page's cap, not ours. The other 130 had 1–4, which is all those notes had.
  • Douyin: 584 videos, 0 with comments. Douyin is read through its embed player, which serves no comments; a Douyin link returns the caption, transcript and on-screen text only (Douyin).

One note, one read

A note arguing that video generation will be overtaken by LLMs plus video understanding: 1,360 likes, 1,042 saves, 207 comments. One read (1 credit, a single-image note) returned 7 key points with quotes, 5 top comments with 22, 3, 14, 14 and 3 replies, and 3 reply texts under each — 20 pieces of comment text out of 207. Enough to see what the comment section argues about; not enough for a count.

The call

curl -s -X POST https://linkdigest.dev/api/v1/digest \
  -H "Authorization: Bearer ld_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://xhslink.com/o/...", "format": "json"}' \
  | python3 -c 'import json,sys; d=json.load(sys.stdin); [print(c["replies"], c["text"][:60]) for c in d["comments"]]'
import requests

d = requests.post(
    "https://linkdigest.dev/api/v1/digest",
    headers={"Authorization": "Bearer ld_live_..."},
    json={"url": share_link, "format": "json"},
    timeout=300,
).json()
print(d["stats"])            # {'likes': '1360', 'collects': '1042', 'comments': '207', ...}
for c in d["comments"]:      # at most 5
    print(c["posted_at"], c["replies"], c["text"])
    for t in c["reply_texts"]:
        print("   ↳", t)

In MCP (Claude Code, Cursor) the same tool, digest_url, returns Markdown with a "Top comments" section. To read a set of notes together, send 10–20 links to /api/v1/digest/batch with synthesis for one comparison.

Conclusions instead of raw comments: insight

Add "insight": true (+1 credit) for a consumer-insight block: audience, selling points, objections and complaints, purchase intent, questions readers asked. Every item is a quote taken from the note or its top comments and checked against them word for word — a sentence with no source is dropped. comments_read says how many comments the insight drew on; 0 means it came from the note alone.

What you do not get

  • Not the thread. 5 top comments with 3 replies each is the ceiling. All 207 means logging in and paging the official site, which this service does not do.
  • No commenter identity. No nickname, ID, avatar or region — text, date and reply count only.
  • No Douyin comments. See the numbers above.
  • Bare links do not read. /explore/<id> without xsec_token shows Xiaohongshu's "page not found", the same screen as a deleted note (why, with nine link forms measured); copy the link from the app's share sheet. Deleted, private or platform-refused notes come back as errors and are not charged.

Pricing: an image note is 1 credit (up to 6 images, +1 per further 6), a video 1 credit plus 1 per minute; comments are included. insight is +1. A link read once is free to read again. Sign-up gives 10 free credits; after that $5 buys 250 (one-time) or ¥9.9 via Alipay buys 50. Chinese version of this page: 小红书评论提取. Platform notes: Xiaohongshu.

Related


This is the write-up behind LinkDigest, which does the above as a hosted service — with an MCP server for Claude Code and Cursor, a REST API, and 10 free credits to try it.