/v1/user_profile"platform": "xiaohongshu"Xiaohongshu (RedNote) User Profile API
One account.
Get any public Xiaohongshu account by ID or link and get back name, bio, followers, following and post count, as JSON over HTTP or from your AI client over MCP. A call to the Xiaohongshu (RedNote) User Profile 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-10-30.
Last updated:
What you get from the Xiaohongshu (RedNote) User Profile 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.
Lighter for your AI: the same recorded data (1 item) is about 3,262 tokens as the platform's raw JSON and about 385 as this interface returns it, 88% fewer (measured 2026-11-06). How it was measured
| Field | In the recorded answer |
|---|---|
| username | removed from the sample |
| name | removed from the sample |
| url | removed from the sample |
| bio | removed from the sample |
| verified | true |
| followers | 312,318 |
| following | 37 |
| posts_count | 1,697 |
12 credits a call (≈ $0.024–$0.04): about 250 calls for $10.
Xiaohongshu (RedNote) User Profile API: request and response
curl https://api.socialtoai.com/v1/user_profile \ -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_profile", 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.Look up this Xiaohongshu account: 63bed214000000002702b862# Your AI calls the user_profile tool with:{ "platform": "xiaohongshu", "id": "63bed214000000002702b862"}{ "platform": "xiaohongshu", "status": "ok", "items": [ { "platform": "xiaohongshu", "id": "…", "ref": "…", "approx": [], "type": "account", "username": "…", "name": "…", "url": "https://example.com/…", "bio": "…", "verified": true, "followers": 312318, "following": 37, "posts_count": 1697 } ], "unavailable": [], "cost_credits": 12}Names and text were removed from the sample; the numbers are as recorded.
Xiaohongshu (RedNote) User Profile 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 | — | User ID, 24 hexadecimal characters. With only a profile link, give it as url |
| url | string | One 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 |
Where to get what you send.
idUser 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:
search · type=userXiaohongshu (RedNote) Search API
Xiaohongshu (RedNote) User Profile API response fields.
What Xiaohongshu cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].username | string | The handle. |
| items[].name | string | The display name. |
| items[].url | string | A link to the profile. |
| items[].bio | string | The bio. |
| items[].verified | boolean | Whether the account is verified. |
| items[].followers | integer | Follower count. |
| items[].following | integer | How many accounts it follows. |
| items[].posts_count | integer | How many posts it has published. |
nullFields Xiaohongshu cannot giveXiaohongshu gives every field of this call. Where one item lacks a value, that field is null.
Compared with the WeChat Articles User Profile API, this call also gives bio, verified, followers, following and posts.
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 Profile 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) User Profile API.
Look up this Xiaohongshu account: 63bed214000000002702b862
12 creditsuser_profile {"platform":"xiaohongshu","id":"63bed214000000002702b862"}Find Xiaohongshu accounts about "Nike", then for the first 3: look up this Xiaohongshu account.
48 creditssearch {"platform":"xiaohongshu","query":"Nike","type":"user"}user_profile {"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: Look up this Xiaohongshu account: 63bed214000000002702b862Call the user_profile tool with {"platform":"xiaohongshu","id":"63bed214000000002702b862"}. 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: user_posts (User Posts).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.
creator-cardTheir accounts on other platforms, the numbers on each, and how sure the match is
batch-statsOne row per link with its numbers as they are now. Links that no longer work are marked
Work scenarios that use it.
competitor-trackingYour 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.
creator-discoveryYour AI finds creators in a niche on one platform, with their size, their recent posts and how well each one fits, then reads a shortlisted creator's accounts across platforms.
The same call on other platforms.
All platforms and prices/v1/user_profile{ "platform": "xiaohongshu", "id": "63bed214000000002702b862" }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
Let your AI read Xiaohongshu.