Xiaohongshu (RedNote) API
Read notes, comments, user profiles and keyword search from Xiaohongshu (RedNote) over REST: 11 live endpoints, one API key and one JSON envelope. Below are all of them and a real request and response.
A new account gets 50 trial calls; after that, successful calls are billed from a prepaid balance. See pricing.
11 Xiaohongshu (RedNote) API endpoints
Parameters, response fields and code samples for each are in the API reference.
- Xiaohongshu (RedNote) note detail
GET /v1/raw/xiaohongshu/noteOne Xiaohongshu note. data holds the platform's original fields, unrenamed, unfiltered and unconverted: note_id, title, desc (the text, with the platform's [话题] topic markers), type (normal for an image note, video for a video note), user, interact_info (like / comment / save / share counts, exact, written by the platform as strings), tag_list, image_list, ip_location, time (Unix seconds) and so on, plus video for a video note. A note that does not exist or was deleted answers empty and is not charged.Required: note_id - Xiaohongshu (RedNote) note comments
GET /v1/raw/xiaohongshu/commentsFirst-level comments of a note, cursor-paginated. data holds the platform's original comment page: comments (each with id, content, like_count / like_view_count, sub_comment_count, a sub_comments preview, ip_location, time, pictures, user and so on), cursor, has_more, comment_count and the rest, unrenamed, unfiltered and unconverted; a commenter's user_id is given exactly as the platform gives it. sort=default (the default) follows Xiaohongshu's own order (pinned and popular first), about 5 a page; sort=latest is newest first, 10-15 a page, and its commenter fields and like counts differ somewhat from default's; the response is the reference. Pass the response's cursor back unchanged to continue (for latest it is a JSON text, also passed back unchanged); stop when has_more is false. Replies come from raw.xiaohongshu.comment_replies. A note without comments, or one that does not exist, answers empty and is not charged.Required: note_id - Xiaohongshu (RedNote) comment replies
GET /v1/raw/xiaohongshu/comment_repliesReplies (second-level comments) under one first-level comment, oldest first, about 5 a page. data holds the platform's original reply page: comments (each with id, content, like_count, time, user, target_comment and so on), cursor, has_more and the rest, unrenamed, unfiltered and unconverted. comment_id is a comment id from raw.xiaohongshu.comments. Pass the response's cursor (a JSON text) back unchanged to continue; stop when has_more is false. No replies answers empty and is not charged.Required: note_id, comment_id - Xiaohongshu (RedNote) user profile
GET /v1/raw/xiaohongshu/userA Xiaohongshu user's profile. data holds the platform's original profile fields, unrenamed, unfiltered and unconverted: userid, red_id (the Xiaohongshu ID), nickname, fans, follows, interactions, note_num_stat, gender, ip_location, desc, imageb and so on. A user that does not exist answers 404 and is not charged.Required: user_id - Xiaohongshu (RedNote) user notes
GET /v1/raw/xiaohongshu/user_notesNotes a user posted, pinned ones first and then newest first, about 20 a page. data holds the platform's original note list: notes (each with id, title, desc, type, likes, comments_count, collected_count, share_count, create_time, images_list, video_info_v2, user, cursor, sticky and so on) and has_more, unrenamed, unfiltered and unconverted. To continue, pass the last note's cursor (it is that note's id) back; stop when has_more is false. A user without notes, or one that does not exist, answers empty and is not charged.Required: user_id - Xiaohongshu (RedNote) note search
GET /v1/raw/xiaohongshu/searchSearch Xiaohongshu notes by keyword, 20 a page. data holds the platform's original search result: items (each with model_type and note; a note has id, xsec_token, title, desc, type, liked_count, comments_count, collected_count, shared_count, timestamp, images_list, video_info_v2, user and so on) and the platform's other fields, unrenamed, unfiltered and unconverted; result items that are not notes (model_type other than note) are kept as they come, and only notes are charged. Sort by relevance, newest, most liked, most commented or most saved; filter by note type and publish time. Page with page; the response has no has_more, so go on until a page comes back empty (not charged).Required: keyword - Xiaohongshu (RedNote) note detail V4
GET /v1/raw/xiaohongshu/note_v4One Xiaohongshu note, read as an image-text note and returned as the platform answers it, in JSON: note_list (note ID, title, text, like / comment / save / share counts, topics, publish time, IP location, images) and user (the author). No video link or duration. Only an answer with data is charged; an empty answer or an error is not.Required: note_id - Xiaohongshu (RedNote) note comments V4
GET /v1/raw/xiaohongshu/comments_v4First-level comments of a note, returned as the platform answers them, in JSON: comments (text, likes, reply count, time, images, commenter), comment_count, cursor, has_more and more. sort=default (the default) is the default order, latest is newest first. Only the first page is returned and there is no paging parameter, so the cursor / has_more in the answer are informational. Only an answer with data is charged; an empty answer or an error is not.Required: note_id - Xiaohongshu (RedNote) user profile V4
GET /v1/raw/xiaohongshu/user_v4A Xiaohongshu user's profile as the platform answers it, in JSON: nickname, Xiaohongshu ID, followers, following, likes and saves, verification, IP location, bio, avatar and more. Only an answer with data is charged; an empty answer or an error is not.Required: user_id - Xiaohongshu (RedNote) user notes V3
GET /v1/raw/xiaohongshu/user_notes_v3Notes a user posted, returned as the platform answers them, in JSON: notes (title, interaction counts, cover and images), has_more, tags and more. Paging is supported: pass the cursor of the last note in notes back, and has_more tells whether there is more. Only an answer with data is charged; an empty answer or an error is not.Required: user_id - Xiaohongshu (RedNote) note search V4
GET /v1/raw/xiaohongshu/search_v4Search Xiaohongshu notes by keyword, returned as the platform answers, in JSON: items (each with a note card: title, author, interaction counts, cover and images) and more. Only the first page (about 20 notes) is returned and there is no paging parameter. Sort by relevance, newest, most liked, most commented or most saved; filter by note type; the publish-time filter offers all, a day or a week only. Only an answer with data is charged; an empty answer or an error is not.Required: keyword
A request and its response
Xiaohongshu (RedNote) note detail(GET /v1/raw/xiaohongshu/note). The sample comes from the endpoint catalog, not live data; a full response also carries request_id and meta.
curl 'https://api.qovia.ai/v1/raw/xiaohongshu/note?note_id=6a14846d000000000702d0d4' \ -H "Authorization: Bearer $QOVIA_KEY"
{
"data": {
"at_user_list": [],
"desc": "高三后期。\n教室里最常见的饮料已经不是矿泉水了。\n⸻\n是咖啡。\n⸻\n以前上课。\n桌角摆着的是农夫山泉。\n或者可口可乐。\n…",
"image_list": [
{
"file_id": "notes_pre_post/1040g3k8320jnafonm8805pg9fsr1hjdj6tlakno",
"height": 1274,
"info_list": [],
"live_photo": false,
"stream": {},
"trace_id": "notes_pre_post/1040g3k8320jnafonm8805pg9fsr1hjdj6tlakno",
"url": "http://sns-na-i27.xhscdn.com/notes_pre_post/1040g3k8320jnafonm8805pg9fsr1hjdj6tlakno?imageView2/2/w/1080/format/webp",
"width": 1125
}
],
"interact_info": {
"collected": false,
"collected_count": "1153",
"comment_count": "1072",
"followed": false,
"liked": false,
"liked_count": "11045",
"nice_count": "11045",
"relation": "none",
"share_count": "359",
"sticky": false
},
"ip_location": "山东",
"last_update_time": 1790824361,
"note_id": "6a14846d000000000702d0d4",
"share_info": {
"un_share": false
},
"tag_list": [
{
"id": "5c50fb9b000000001c001a21",
"link": "xhsdiscover://topic/v2/5c50fb9b4b25ed000140fa85?page_source=note_feed.click_new_big&source=normal&pre_source=tab_feed&topic_name=%E6%99%9A%E8%87%AA%E4%B9%A0",
"name": "晚自习",
"type": "topic"
},
{
"id": "5acc344be39faf54a1cbced9",
"link": "xhsdiscover://topic/v2/5acc349cec9d13037b5bb162?page_source=note_feed.click_new_big&source=normal&pre_source=tab_feed&topic_name=%E9%AB%98%E8%80%83%E5%80%92%E8%AE%A1%E6%97%B6",
"name": "高考倒计时",
"type": "topic"
},
{
"id": "68216a510000000012019969",
"link": "xhsdiscover://topic/v2/68216a520063000000000001?page_source=note_feed.click_new_big&source=normal&pre_source=tab_feed&topic_name=%E6%88%91%E7%9A%84%E9%AB%98%E4%B8%89%E8%AE%B0%E5%BF%86",
"name": "我的高三记忆",
"type": "topic"
}
],
"time": 1779729517,
"title": "高三后期,班里开始靠咖啡续命了",
"type": "normal",
"user": {
"avatar": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo3203ufh702q005pg9fsr1hjdj3nunboo?imageView2/2/w/80/format/jpg",
"nick_name": "说***吗",
"red_official_verify_type": 0,
"user_id": "66097f36000000000600cdb3"
}
}
}Use Xiaohongshu (RedNote) data from an AI tool
Qovia is also an MCP server. Run this in Claude Code. Finding and reading endpoints needs no key; to call them, set up your API key as in the MCP docs. Cursor and VS Code setups are there too.
claude mcp add --transport http qovia https://api.qovia.ai/mcpFAQ
How do I call the Xiaohongshu (RedNote) API?
Send a GET request to https://api.qovia.ai, for example /v1/raw/xiaohongshu/…, with your API key in an Authorization: Bearer header. A success is HTTP 200 with request_id, data and meta. This page lists all 11 endpoints, and each one's parameters are in the API reference.
Does Xiaohongshu (RedNote) have an official data API?
Xiaohongshu (RedNote) offers no self-serve API for notes or comments; its official open platform mainly serves merchants and partners. Qovia turns public Xiaohongshu notes, comments, users and search into one REST API you call with an API key.
What Xiaohongshu (RedNote) data can I get?
Note details (title, text, like/comment/save/share counts, topics, publish time, IP location, images and video), note comments (default or newest first), comment replies, user profiles, a user's notes, and keyword search over notes. Pugongying creator data for brand deals is on the Xiaohongshu Pugongying page.
Do I need a Xiaohongshu account or cookies?
No. All you need is a Qovia API key: no accounts, cookies, proxies or request signing to maintain.
How is it billed?
Prepaid and per call: only successful calls that return data are charged, and empty results, errors and timeouts are not. Every response says what it cost (meta.charged_usd). Each endpoint's price is in the API reference.
Can I use it from Claude, Cursor or other AI tools?
Yes. Qovia is also an MCP server (https://api.qovia.ai/mcp): add it to Claude Code, Cursor or VS Code with your API key and the AI finds the endpoint, pulls the data and summarises it.
What should I keep in mind when using the data?
Qovia provides a data API service and claims no ownership of the underlying content. Use the data under applicable law and Xiaohongshu's platform rules; see our terms of service.
Your agent only knows what you give it
Give it Douyin, Xiaohongshu (RedNote), WeChat and product reviews: structured, per call, nothing charged for failures.