/v1/detail"platform": "xiaohongshu"Xiaohongshu (RedNote) Detail API
One note by ID or link.
Get any public Xiaohongshu note by ID or link and get back text, author, likes, comment count and publish time, as JSON over HTTP or from your AI client over MCP. A call to the Xiaohongshu (RedNote) Detail 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-05.
Last updated:
What you get from the Xiaohongshu (RedNote) Detail API.
From a recorded answer.
A recorded call returned the object below, field by field. Names and text are removed from the sample; the numbers are as recorded.
101 real calls in the last 7 days, 100% succeeded, median 1.4 s (data to 2026-11-05).
Lighter for your AI: the same recorded data (1 item) is about 9,619 tokens as the platform's raw JSON and about 1,470 as this interface returns it, 84% fewer (measured 2026-11-06). How it was measured
| Field | In the recorded answer |
|---|---|
| url | removed from the sample |
| format | image |
| title | removed from the sample |
| text | removed from the sample |
| published_at | 2026-10-09T01:00:34.000Z |
| author.id | removed from the sample |
| author.username | removed from the sample |
| author.name | removed from the sample |
| author.verified | null: Xiaohongshu cannot give it |
| author.followers | null: Xiaohongshu cannot give it |
| metrics.likes | 927 |
| metrics.comments | 122 |
| metrics.shares | 256 |
| metrics.collects | 59 |
| metrics.views | null: Xiaohongshu cannot give it |
| metrics.reposts | null: Xiaohongshu cannot give it |
| images | 2 entries |
| hashtags | 2 entries |
| is_pinned | false |
12 credits a call (≈ $0.024–$0.04): about 250 calls for $10.
Xiaohongshu (RedNote) Detail API: request and response
curl https://api.socialtoai.com/v1/detail \ -H "Authorization: Bearer $SOCIALTOAI_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "platform": "xiaohongshu", "id": "6ac76250000000000a021233" }'import osimport uuidimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/detail", 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": "6ac76250000000000a021233", },)print(response.json())# Connected over MCP? Ask in plain words.Read this Xiaohongshu note: 6ac76250000000000a021233# Your AI calls the detail tool with:{ "platform": "xiaohongshu", "id": "6ac76250000000000a021233"}{ "platform": "xiaohongshu", "status": "ok", "items": [ { "platform": "xiaohongshu", "id": "…", "ref": "…", "approx": [], "type": "content", "url": "https://example.com/…", "format": "image", "title": "…", "text": "…", "published_at": "2026-10-09T01:00:34.000Z", "author": { "id": "…", "username": "…", "name": "…", "verified": null, "followers": null }, "metrics": { "likes": 927, "comments": 122, "shares": 256, "collects": 59, "views": null, "reposts": null }, "images": ["https://example.com/…", "https://example.com/…"], "hashtags": ["…", "…"], "is_pinned": false } ], "unavailable": ["author.verified", "author.followers", "metrics.views", "metrics.reposts"], "cost_credits": 12}nullNames and text were removed from the sample; the numbers are as recorded.
Xiaohongshu (RedNote) Detail API parameters.
3 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 |
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. 6ac76250000000000a021233)
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) Detail API response fields.
What Xiaohongshu cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].url | string | A link that opens the item. |
| items[].format | string | video, image, text or article. |
| items[].title | string | The title. |
| items[].text | string | The body text or caption. |
| items[].published_at | string | When it was published, ISO 8601 in UTC. |
| items[].author.id | string | The author's account ID. |
| items[].author.username | string | The author's handle. |
| items[].author.name | string | The author's display name. |
| items[].author.verified | booleanalways null | Whether the author is verified. |
| items[].author.followers | integeralways null | The author's follower count. |
| items[].metrics.likes | integer | Likes. |
| items[].metrics.comments | integer | Comments. |
| items[].metrics.shares | integer | Shares. |
| items[].metrics.collects | integer | Saves. |
| items[].metrics.views | integeralways null | Views or plays. |
| items[].metrics.reposts | integeralways null | Reposts. |
| items[].images | string[] | Image addresses. |
| items[].hashtags | string[] | Hashtags, without the #. |
| items[].is_pinned | boolean | Whether the author pinned it. |
nullFields Xiaohongshu cannot giveRead null as “Xiaohongshu did not give this”, not as zero. These are always null on this call:
author.verifiedWhether the author is verified.author.followersThe author's follower count.metrics.viewsViews or plays.metrics.repostsReposts.
Compared with the Weibo Detail API, this call also gives title, shares and saves but does not give reposts or views.
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) Detail 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.
These numbers come from real calls only, worked out once a day, without our own accounts: a customer's same request on one day counts once, by how it last ended; something that does not exist or a wrong parameter is not a failure; an interface with fewer than 20 calls shows none.
Once connected over MCP, these questions use the Xiaohongshu (RedNote) Detail API.
Read this Xiaohongshu note: 6ac76250000000000a021233
12 creditsdetail {"platform":"xiaohongshu","id":"6ac76250000000000a021233"}Search Xiaohongshu for notes about "咖啡", then for the first 3: read this Xiaohongshu note.
48 creditssearch {"platform":"xiaohongshu","query":"咖啡"}detail {"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 this Xiaohongshu note: 6ac76250000000000a021233Call the detail tool with {"platform":"xiaohongshu","id":"6ac76250000000000a021233"}. Needed: id, url.For several, call it once for each: 12 credits each.Before you start, work out how many credits it will take in all and ask me; call it only after I agree.What usually comes next, with the ref or username it returns: comments (Comments).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.
batch-statsOne row per link with its numbers as they are now. Links that no longer work are marked
Work scenarios that use it.
china-market-researchYour AI reads what Chinese consumers post on Xiaohongshu, Douyin, Weibo and other Chinese platforms, and answers in your language, with the posts it read and their links.
The same call on other platforms.
All platforms and prices/v1/detail{ "platform": "xiaohongshu", "id": "6ac76250000000000a021233" }12 creditsper callRead next.
What its own API allows, who can use it and what it costs, with sources.
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
the numbers of hundreds of links in one job: prices per platform, what the free credits run, and what it stops for
what Claude can and cannot read on Xiaohongshu (RedNote), with sources and a real request
what ChatGPT can and cannot read on Xiaohongshu (RedNote), with sources and a real request
where the ID is in a link, what its first 8 characters mean, why it needs a token, tested
Let your AI read Xiaohongshu.