SocialToAIStart freeConsole
POST/v1/user_posts"platform": "xiaohongshu"

Xiaohongshu (RedNote) User Posts API

The recent notes of one account.

Get the recent notes of any public Xiaohongshu account 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) User Posts 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.

100 credits on sign-up, no card needed
12 creditsper call, ≈ $0.024–$0.04
Usually 20 itemsup to 30 per page, one page per call
2026-11-05last tested
1.1 KBsample response, 1 item

Last updated:

Need 100 items? Send limit: 100 and one call pages for you: at most 5 pages, 60 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 600 credits, about $2.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) User Posts API.
From a recorded answer.

A recorded call returned 20 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 (20 items) is about 48,908 tokens as the platform's raw JSON and about 7,308 as this interface returns it, 85% fewer (measured 2026-11-06). How it was measured

FieldIn the recorded answer
urlnull: Xiaohongshu cannot give it
formatvideo
titleremoved from the sample
textremoved from the sample
published_at2026-10-12T01:00:27.000Z
author.idremoved from the sample
author.usernamenull: Xiaohongshu cannot give it
author.nameremoved from the sample
author.verifiednull: Xiaohongshu cannot give it
author.followersnull: Xiaohongshu cannot give it
metrics.likes8
metrics.comments0
metrics.shares0
metrics.collects2
metrics.viewsnull: Xiaohongshu cannot give it
metrics.repostsnull: Xiaohongshu cannot give it
images1 entry
hashtagsnull: Xiaohongshu cannot give it
is_pinnedfalse

12 credits a call (≈ $0.024–$0.04): about 250 calls for $10.

Easier with a ready-made tool: Viral finder. Posts that did clearly better than their authors usually do.

Xiaohongshu (RedNote) User Posts API: request and response

curl https://api.socialtoai.com/v1/user_posts \  -H "Authorization: Bearer $SOCIALTOAI_API_KEY" \  -H "Idempotency-Key: $(uuidgen)" \  -H "Content-Type: application/json" \  -d '{    "platform": "xiaohongshu",    "id": "63bed214000000002702b862"  }'
import osimport uuidimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/user_posts",    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": "63bed214000000002702b862",    },)print(response.json())
# Connected over MCP? Ask in plain words.What has this Xiaohongshu account posted lately: 63bed214000000002702b862# Your AI calls the user_posts tool with:{  "platform": "xiaohongshu",  "id": "63bed214000000002702b862"}
Sign in to run12 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK1.1 KB12 credits
{  "platform": "xiaohongshu",  "status": "ok",  "items": [    {      "platform": "xiaohongshu",      "id": "…",      "ref": "…",      "approx": [],      "type": "content",      "url": null,      "format": "video",      "title": "…",      "text": "…",      "published_at": "2026-10-12T01:00:27.000Z",      "author": {        "id": "…",        "username": null,        "name": "…",        "verified": null,        "followers": null      },      "metrics": {        "likes": 8,        "comments": 0,        "shares": 0,        "collects": 2,        "views": null,        "reposts": null      },      "images": ["https://example.com/…"],      "hashtags": null,      "is_pinned": false    }  ],  "unavailable": ["url", "author.username", "author.verified", "author.followers", "metrics.views", "metrics.reposts", "hashtags"],  "page": {    "has_more": true,    "cursor": "cur_…",    "cursor_expires_at": "2026-10-12T19:43:48.000Z"  },  "cost_credits": 12}
@…·
likes 8comments 0shares 0collects 2views null

Names and text were removed from the sample; the numbers are as recorded.

Sample data1 of the 20 items recorded

Xiaohongshu (RedNote) User Posts API parameters.
4 parameters, 1 required.

Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.

NameTypeRequiredDefaultDescription
platformstringRequired—Always "xiaohongshu" on this page.
idstringOne of these—User ID, 24 hexadecimal characters. With only a profile link, give it as url
urlstringOne of these—Link to the profile, pasted as it is: https://www.xiaohongshu.com/user/profile/… (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. A short link is opened once to see which profile it leads to; where it cannot be, paste the profile's full link or the user ID
cursorstringOptional—Pass page.cursor from the last response to get the next page.

Where to get what you send.

id

User ID, 24 hexadecimal characters. With only a profile link, give it as url (e.g. 63bed214000000002702b862)

Every item these return carries its ref; send it as it is:

Xiaohongshu (RedNote) User Posts API response fields.
What Xiaohongshu cannot give is marked.

FieldTypeMeaning
items[].urlstringalways nullA link that opens the item.
items[].formatstringvideo, image, text or article.
items[].titlestringThe title.
items[].textstringThe body text or caption.
items[].published_atstringWhen it was published, ISO 8601 in UTC.
items[].author.idstringThe author's account ID.
items[].author.usernamestringalways nullThe author's handle.
items[].author.namestringThe author's display name.
items[].author.verifiedbooleanalways nullWhether the author is verified.
items[].author.followersintegeralways nullThe author's follower count.
items[].metrics.likesintegerLikes.
items[].metrics.commentsintegerComments.
items[].metrics.sharesintegerShares.
items[].metrics.collectsintegerSaves.
items[].metrics.viewsintegeralways nullViews or plays.
items[].metrics.repostsintegeralways nullReposts.
items[].imagesstring[]Image addresses.
items[].hashtagsstring[]always nullHashtags, without the #.
items[].is_pinnedbooleanWhether the author pinned it.
nullFields Xiaohongshu cannot give

Read null as “Xiaohongshu did not give this”, not as zero. These are always null on this call:

  • urlA link that opens the item.
  • author.usernameThe author's handle.
  • author.verifiedWhether the author is verified.
  • author.followersThe author's follower count.
  • metrics.viewsViews or plays.
  • metrics.repostsReposts.
  • hashtagsHashtags, without the #.

Compared with the Douyin User Posts API, this call does not give hashtags.

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) User Posts API: paging and billing.

One call returns a page of usually 20 items, up to 30 items. When page.has_more is true, send page.cursor back as cursor for the next page; each page costs 12 credits and a cursor works for 30 minutes.
A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 12 credits.

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) User Posts API.

  1. What has this Xiaohongshu account posted lately: 63bed214000000002702b862
    user_posts {"platform":"xiaohongshu","id":"63bed214000000002702b862"}
    12 credits
  2. Find Xiaohongshu accounts about "Nike", then for the first 3: what has this Xiaohongshu account posted lately.
    search {"platform":"xiaohongshu","query":"Nike","type":"user"}user_posts {"platform":"xiaohongshu","id":"<ref>"} × 3
    48 credits

Give this to your AI.
Copy it into Claude or ChatGPT.

How to connect
Prompt
Use the SocialToAI MCP server (https://mcp.socialtoai.com/mcp) for this: What has this Xiaohongshu account posted lately: 63bed214000000002702b862Call the user_posts tool with {"platform":"xiaohongshu","id":"63bed214000000002702b862"}. Needed: id, url.For many items pass limit (limit=100 is at most 5 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.What usually comes next, with the ref or username it returns: detail (Detail), 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.

account-watch
Account snapshot

What each one posted lately, and which posts beat its usual numbers

creator-card
Creator profile

Their accounts on other platforms, the numbers on each, and how sure the match is

viral-finder
Viral finder

Posts that did clearly better than their authors usually do

Work scenarios that use it.

competitor-tracking
Competitor tracking

Your AI follows the accounts you name and tells you what each one published lately and which posts did clearly better than that account usually does, with the numbers and links.

The same call on other platforms.

All platforms and prices
Change one word in the request: platform. The response keeps the same shape.

Read next.

Xiaohongshu official API: access, prices and limits

What its own API allows, who can use it and what it costs, with sources.

How to let ChatGPT read Xiaohongshu (RedNote)

connect ChatGPT to Xiaohongshu notes and comments

Let Claude Code and Cursor read Xiaohongshu and Douyin, with no QR code or cookie

connect Claude Code and Cursor to Xiaohongshu and Douyin with no QR code or cookie, and what a self-run server costs you

How brands outside China monitor Xiaohongshu (RedNote), Douyin and Weibo with AI

monitor Xiaohongshu, Douyin and Weibo from outside China with AI, in English, with original links

Monitor Xiaohongshu (RedNote) accounts every day

a Xiaohongshu account or keyword, daily, 12 credits a run; why notes link to the profile

Monitor competitors' accounts every day

competitors' accounts, daily: what is new and what beat their usual, from 9 credits an account

Xiaohongshu (RedNote) MCP server

Let your AI read Xiaohongshu.

Xiaohongshu (RedNote) User Posts API: questions.
Short answers.

All Xiaohongshu data APIs
Do I need a Xiaohongshu account or Xiaohongshu's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on Xiaohongshu; you never sign in to Xiaohongshu or apply for anything there.
What does one call cost in dollars?
12 credits: $0.04 at 300 credits per dollar (purchases from $10), $0.024 at 500 per dollar (from $200). Credits never expire and there is no subscription. 100 free credits on sign-up, no card.
Am I charged when a call fails or finds nothing?
A failed call costs 0 credits and is never retried on its own. A call that runs and finds nothing is a successful call: status is "empty" and it costs 12 credits.
How much does one call return?
One call returns a page of usually 20 items, up to 30 items. When page.has_more is true, send page.cursor back as cursor for the next page; each page costs 12 credits and a cursor works for 30 minutes.
Is there a rate limit?
5 calls a second per key, 20 a second after your first purchase. A request over the limit is told how long to wait and is not charged.
How do I use it from Claude, ChatGPT or Cursor?
Yes. In Claude or ChatGPT, add the MCP address https://mcp.socialtoai.com/mcp as a custom connector, sign in with the code we email you and press Allow; there is no key to paste. In Claude Code, run one command, type /mcp, pick socialtoai and sign in; Codex and Cursor sign in too, with their steps on the connect page. Then ask in plain words and your AI calls user_posts for you.
Start free · 100 credits

Your AI is one URL away
from all of social media.

100 credits on sign-up, no card needed