/v1/comments"platform": "xiaohongshu"Xiaohongshu (RedNote) Comments API
The comments under one note.
Get the comments under any public Xiaohongshu note and get back text, likes, reply count and time, as JSON over HTTP or from your AI client over MCP. A call to the Xiaohongshu (RedNote) Comments API costs 12 credits ($0.024 to $0.04 depending on the pack), failed calls are free, and the response has the same format as every other call. Last tested 2026-11-04.
Last updated:
limit: 100 and one call pages for you: at most 10 pages, 120 credits. It stops once it has them or the list ends; pages it does not use are not charged, and neither are pages that fail. Reading 1,000 items comes to about 1,200 credits, about $4.00.Daily watch: tell your AI “watch this daily” and this call runs by itself every day, sending only what is new: at most 372 credits a month, about $1.24. How to set it up
What you get from the Xiaohongshu (RedNote) Comments API.
From a recorded answer.
A recorded call returned 10 items; here is the first, field by field. Names and text are removed from the sample; the numbers are as recorded.
Lighter for your AI: the same recorded data (10 items) is about 4,683 tokens as the platform's raw JSON and about 1,609 as this interface returns it, 65% fewer (measured 2026-11-06). How it was measured
| Field | In the recorded answer |
|---|---|
| url | null: Xiaohongshu cannot give it |
| text | removed from the sample |
| published_at | 2026-10-11T13:28:37.000Z |
| author.label | anonymous_1 |
| metrics.likes | 0 |
| reply_count | 0 |
| content_id | removed from the sample |
| parent_id | null |
| root_id | null |
12 credits a call (≈ $0.024–$0.04): about 250 calls for $10.
Xiaohongshu (RedNote) Comments API: request and response
curl https://api.socialtoai.com/v1/comments \ -H "Authorization: Bearer $SOCIALTOAI_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "platform": "xiaohongshu", "id": "6a9c5884000000002b002d95" }'import osimport uuidimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/comments", headers={ "Authorization": f"Bearer {os.environ['SOCIALTOAI_API_KEY']}", # A new key for each request; the same one again retries it without paying twice. "Idempotency-Key": str(uuid.uuid4()), }, json={ "platform": "xiaohongshu", "id": "6a9c5884000000002b002d95", },)print(response.json())# Connected over MCP? Ask in plain words.Read the comments under this Xiaohongshu note: 6a9c5884000000002b002d95# Your AI calls the comments tool with:{ "platform": "xiaohongshu", "id": "6a9c5884000000002b002d95"}value{ "platform": "xiaohongshu", "status": "ok", "items": [ { "platform": "xiaohongshu", "id": "…", "ref": "…", "approx": [], "type": "comment", "url": null, "text": "…", "published_at": "2026-10-11T13:28:37.000Z", "author": { "label": "anonymous_1" }, "metrics": { "likes": 0 }, "reply_count": 0, "content_id": "…", "parent_id": null, "root_id": null } ], "unavailable": ["url"], "page": { "has_more": true, "cursor": "cur_…", "cursor_expires_at": "2026-10-12T19:13:50.000Z" }, "cost_credits": 12}Names and text were removed from the sample; the numbers are as recorded.
Xiaohongshu (RedNote) Comments API parameters.
5 parameters, 1 required.
Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| platform | string | Required | — | Always "xiaohongshu" on this page. |
| id | string | One of these | — | Note ID, 24 hexadecimal characters. With only a link or a share text, give it as url |
| url | string | One of these | — | Link to the note, pasted as it is: the https://www.xiaohongshu.com/explore/… address from the browser, the https://www.xiaohongshu.com/discovery/item/… link the website shares (query parameters such as xsec_token are fine), a whole share text with such a link in it, or the xhslink.com short link the app copies (alone or in its share text). A short link is opened once to see which note it leads to; where it cannot be, paste the note's full link or its ID |
| reply_of | string | Optional | — | When given, returns the replies under one comment (12 credits). |
| cursor | string | Optional | — | Pass page.cursor from the last response to get the next page. |
Where to get what you send.
idNote ID, 24 hexadecimal characters. With only a link or a share text, give it as url (e.g. 6a9c5884000000002b002d95)
Every item these return carries its ref; send it as it is:
searchXiaohongshu (RedNote) Search APIuser_postsXiaohongshu (RedNote) User Posts APItopic_notesXiaohongshu (RedNote) topic notes APIsearch · type=imageXiaohongshu (RedNote) Search API
Or send the web link: the url field of the same items.
Xiaohongshu (RedNote) Comments API response fields.
What Xiaohongshu cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].url | stringalways null | A link to the comment, where the platform has one. |
| items[].text | string | The comment itself. |
| items[].published_at | string | When it was posted, ISO 8601 in UTC. |
| items[].author.label | string | An anonymous label, stable within one response. Whoever wrote it is never named. |
| items[].metrics.likes | integer | Likes. |
| items[].reply_count | integer | How many replies it has. |
| items[].content_id | string | The item the comment is under. |
| items[].parent_id | string | The comment it replies to directly; null for a top-level comment. |
| items[].root_id | string | The top-level comment its thread hangs under. |
nullFields Xiaohongshu cannot giveRead null as “Xiaohongshu did not give this”, not as zero. These are always null on this call:
urlA link to the comment, where the platform has one.
Send the parameter and the call returns something else:
reply_ofthe replies under one comment12 creditsCompared with the Kuaishou Comments API, this call also gives reply count.
Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format
Xiaohongshu (RedNote) Comments API: paging and billing.
5 calls per second per key, 20 after a purchase; going over is not charged. Rate limits
A failed call costs 0 credits and is never retried on its own. Error codes
“Last tested” above is the last day a real call of this interface succeeded. Each call reads from the platform, and fetched_at in the answer is when it was read. The same request sent again with the same key within 5 minutes is a replay (replayed: true): 0 credits, and the answer as first read.
Once connected over MCP, these questions use the Xiaohongshu (RedNote) Comments API.
Read the comments under this Xiaohongshu note: 6a9c5884000000002b002d95
12 creditscomments {"platform":"xiaohongshu","id":"6a9c5884000000002b002d95"}Search Xiaohongshu for notes about "咖啡", then for the first 3: read the comments under this Xiaohongshu note.
48 creditssearch {"platform":"xiaohongshu","query":"咖啡"}comments {"platform":"xiaohongshu","id":"<ref>"} × 3
Give this to your AI.
Copy it into Claude or ChatGPT.
How to connectUse the SocialToAI MCP server (https://mcp.socialtoai.com/mcp) for this: Read the comments under this Xiaohongshu note: 6a9c5884000000002b002d95Call the comments tool with {"platform":"xiaohongshu","id":"6a9c5884000000002b002d95"}. Needed: id, url.For many items pass limit (limit=100 is at most 10 pages) and one call pages for you; each page costs 12 credits and unused pages are not charged.Before you start, work out how many credits it will take in all and ask me; call it only after I agree.If SocialToAI is not connected yet, tell me how to connect it; never ask me to paste a key into the chat.Answer with a link to every item you used, and tell me how many credits it cost.Paste it into a chat once SocialToAI is connected over MCP. There is no key in it: Claude and ChatGPT sign in, other clients send a key in a header.
These ready-made tools call it when they run.
brand-buzzHow people feel about it on each platform, what comes up most, and the posts behind it
comment-insightsThe topics in their comments and how big each is, plus questions, buying intent and complaints
creator-cardTheir accounts on other platforms, the numbers on each, and how sure the match is
Work scenarios that use it.
brand-monitoringYour AI tells you what people say about a brand: the share of each attitude, what they praise and what they complain about, with the posts behind each point.
product-researchYour AI reads what people say about a product category in threads and posts, and comes back with the complaints and wishes that keep coming up, each with the post it came from.
comment-sentiment-researchYour AI reads the comments under the posts you choose and tells you the topics and their shares, the questions people ask and the overall mood, with quotes.
The same call on other platforms.
All platforms and prices/v1/comments{ "platform": "xiaohongshu", "id": "6a9c5884000000002b002d95" }12 creditsper callRead next.
What its own API allows, who can use it and what it costs, with sources.
Which platforms give comments, how many a page, at what price.
connect ChatGPT to Xiaohongshu notes and comments
connect Claude Code and Cursor to Xiaohongshu and Douyin with no QR code or cookie, and what a self-run server costs you
monitor Xiaohongshu, Douyin and Weibo from outside China with AI, in English, with original links
what comments say, with original words: the tool or your AI, price per platform, a recorded answer
where the ID is in a link, what its first 8 characters mean, why it needs a token, tested
Let your AI read Xiaohongshu.