Public lifestyle-note research
Use Xiaohongshu endpoints to turn public lifestyle-note research into repeatable API requests with documented inputs and JSON responses.
Connect one-page Xiaohongshu discovery to feed-issued note details, without treating a feed page as an archive or a stale token as a missing note.
Discover Xiaohongshu note cards and read feed-issued public note detail: text, tags, media metadata, counters, and author cards.
Endpoint families
2
Documented params
6
Examples
2
Live catalog snapshot
Active endpoints
2
Methods
GET
Required params
2
Schema refs
2
{
"platform": "Xiaohongshu",
"endpoint": "xiaohongshu-explore",
"method": "GET",
"path": "/xiaohongshu/explore",
"auth": "apiKey"
}Use cases
Discover Xiaohongshu note cards and read feed-issued public note detail: text, tags, media metadata, counters, and author cards.
Use Xiaohongshu endpoints to turn public lifestyle-note research into repeatable API requests with documented inputs and JSON responses.
Use Xiaohongshu endpoints to turn topic and channel trend snapshots into repeatable API requests with documented inputs and JSON responses.
Use Xiaohongshu endpoints to turn public image and video metadata into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Xiaohongshu endpoint catalog — 2 endpoints, 6 documented request parameters, and 2 published response schemas — the same catalog Docs and Playground run against.
2 documented Xiaohongshu endpoints, grouped into 2 request families — Explore and Note.
6 request parameters are documented across those Xiaohongshu endpoints, 2 of them required — the full input contract is public before you write any integration code.
2 of the 2 Xiaohongshu endpoints ship a recorded example response, and 2 carry a documented response schema — you can code against the real JSON before the first request.
Xiaohongshu endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
2 hosted MCP tools back the Xiaohongshu endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
/xiaohongshu/explore
/xiaohongshu/note
Endpoint catalog
/xiaohongshu/exploreReturns one page of the anonymous Xiaohongshu explore feed as normalized note cards: note id, a ready-to-call note_url carrying its short-lived xsec_token, type, title, cover image, like count, and a public author card. Omit channel_id for the upstream default recommendation feed; use channel_id with an id from the channels list returned by this endpoint for a category feed. The upstream serves one server-rendered page per channel (typically 20-33 cards) and has no credential-free cursor, so there is no pagination. Search, user profiles, comments, and note detail without a feed token are not available on this anonymous surface. The xsec_token in note_url is short-lived; call /xiaohongshu/note promptly with the returned note_url, and re-run this endpoint for a fresh token when it expires.
Response notes
- `items` holds public note cards only: `note_id`, `note_url`, `xsec_token`, `type`, `title`, `cover_url`, `liked_count`, and a public `author` card. Description, comments, coordinates, and any account or private field are not part of the anonymous feed. - `note_url` is the value to forward: it already carries the note id and a short-lived `xsec_token`. The token expires, so call `/xiaohongshu/note` promptly and re-run this endpoint for a fresh card when it does. `xsec_token` is also returned separately for diagnostics, but `note_url` is the ready-to-call form. - `count` is the number of usable cards in this one response (typically 20 to 33). Cards missing a note id, token, or card body are dropped; if no usable card remains, the endpoint reports an upstream error instead of returning an empty success, so `count: 0` is not a normal result. - `channel_id` is the channel the upstream actually served; it may differ from the request when `channel_id` was omitted. - A login or risk-control gate served in place of page state (for example an HTTP 200 challenge page, a redirect to `/login`, HTTP 461, or HTTP 403/406/429) is reported as an upstream `503`, not as an empty feed. A redirect to `/404/sec_*` (error code `300031`) means the note token was stale or the note was removed and is reported as `404`.
Sampled 30 Oct 2026: 30 items, 7 fields filled in every item, 1 not. type: normal (17), video (13); liked_count: 478 to 100,000, median 8,152.
MCP tool xiaohongshu_explore
/xiaohongshu/noteReturns one public Xiaohongshu note normalized from the site's server-rendered page state: note id, type, title, description text (including hashtags), topic tags, image URLs, an optional stable video URL with duration, publish time, author card, and public interaction counters. Pass url with the note_url returned by /xiaohongshu/explore. The URL must be an xiaohongshu.com /explore/<id> or /discovery/item/<id> link carrying its xsec_token; a note id alone is not accessible anonymously, and a stale token returns not-found, so re-run /xiaohongshu/explore to mint a fresh one. Comments are not included because the anonymous page state does not carry them.
Response notes
- `note_id` and `url` are the requested note's canonical identity; `url` is rebuilt on the canonical explore path with the supplied token. - `type` is the upstream note media type, such as `normal` (image note) or `video`. `image_urls` holds the note's public image URLs; `video_url` and `video_duration_seconds` are present only when the note carries a playable video stream. - `description` is the note's public text including its inline hashtags; `tags` holds the resolved topic tags with their ids and names when the page carries them. - `published_at` is RFC 3339 in UTC. `stats` holds integer `liked_count`, `collected_count`, `comment_count`, and `share_count`; upstream abbreviates large values in Chinese units (for example `1.4万`) and they are normalized to integers here. - `author` is a public card only (`user_id`, `nickname`, `avatar_url`). No account, contact, or private field is returned. - A malformed URL, a non-Xiaohongshu host, an unsupported note path, a missing or malformed `xsec_token`, or an invalid note id is rejected with `400` before any upstream request. A removed note or a stale token is `404`. A login or risk-control gate (HTTP 200 challenge page, redirect to `/login`, HTTP 461, or HTTP 403/406/429) is reported as an upstream `503`.
Sampled 30 Oct 2026: 15 of 15 fields returned with a value. published_at: 2026-10-05; stats.liked_count: 48,000.
MCP tool xiaohongshu_note
Related APIs
Social & Creator Platforms
Build creator intelligence, video research, transcript, and audience-comment workflows without maintaining YouTube scrapers.
Social & Creator Platforms
Turn Twitch's public channel, stream, clip, and team data into structured JSON — live status and viewer counts, top games, clips, VODs, and team rosters — as normalized JSON. Credential-free.
Social & Creator Platforms
Track creator and video activity, discover sounds and LIVE streams, and study public ad creatives through documented TikTok API routes.
How to scrape Xiaohongshu
Xiaohongshu's community pledge emphasizes genuine, useful life-experience sharing, original material, and friendly interaction; it asks creators to label AI-assisted content and get permission before reposting another person's work. That context matters when analyzing public lifestyle notes: a card is user-generated experience, not an editorial fact-check or product endorsement. Crawlora publishes two routes: one anonymous explore page and feed-issued note detail. On 2026-10-30 the default feed returned 29 cards and 11 channel IDs with Chinese labels (穿搭, 美食, 彩妆, 影视, 职场, 情感, 家居, 游戏, 旅行, 健身, 视频); unlike Rednote's 12 channels, none was K-pop. Each note_url embeds a short-lived xsec_token and xsec_source=pc_feed. Opening a returned video card within minutes gave a 35-second video, five tags, a UTC publish time of 2026-08-25T04:41:39Z, and counters of 1,037 collects, 860 comments, 29,000 likes, and 11,000 shares. A bare note ID is not enough, and comments, search, and profiles are not part of the published surface.
/xiaohongshu/explore returns public note cards, the channel list, and the channel actually served. Omit channel_id for the default recommendation feed or pass an exact ID from channels; the endpoint has no pagination or historical window. Store the fetch time with the 29 or so cards returned.
Pass a card's exact note_url, or its note_id together with the xsec_token from the same explore response, to /xiaohongshu/note. A bare note ID, a token from another note, an expired token, or an unsupported host or path is rejected; refresh the feed for a new pair rather than retrying an old link.
/xiaohongshu/note returns title, description, tags, image URLs, an optional video URL with duration, UTC publish time, counters, and a public author card. Description text can be only hashtags, as it was in the 2026-10-30 sample, so build the topic from the tags array. Keep the publish time separate from the fetch time.
In the 2026-10-30 sample, counts past 10,000 arrived rounded to thousands (29,000 likes, 11,000 shares) while smaller ones were exact (1,037 collects, 860 comments). Feed cards showed the same rounding, so differences between a card and its detail page are not evidence of change.
FAQ
No. The explore route returns one page with no cursor. Store dated feed snapshots if you need trend comparisons.
Pass the exact note_url returned by explore, or its note_id together with the xsec_token from the same response. A bare ID, stale or mismatched token, unsupported host, or unrelated URL is not a substitute, and an expired token reads as not found.
No. Detail returns the note's own text, tags, media, counters, and a public author card. Comment pages and author-profile routes are not part of the published surface.
Not above 10,000 in the observed sample. Large counts were rounded to thousands in both the feed card and the detail response, while smaller counts such as collects and comments were exact. Store the raw value and avoid treating small differences as growth.