InsightSocial API
How-to

Search Xiaohongshu (RedNote) notes by keyword

Find Xiaohongshu (RedNote) notes by keyword, with title, summary, creator, likes, comments, saves and shares. 50 credits per note returned.

To search Xiaohongshu (RedNote) notes by keyword, call GET /v1/xiaohongshu/search with a query in Chinese or English. Each call returns up to 20 notes, 10 by default, with the note's title, a short summary, its creator, its like, comment, save and share counts, a cover image and the publish time. It is metered at 50 to 1,000 credits per call: the range scales with limit, which works out to 50 credits per note, so the default 10 notes cost 500.

Cost

50 to 1,000 credits per call: 50 at limit=1, 1,000 at limit=20. The sample below used the default limit of 10 and was charged 500. When the call starts, the most it can cost with your limit is held; you are charged what it used and the rest is released. Add dry_run=1 to get a free quote first. Each further page is charged the same way. Asking the same search again within 1 hour is answered from the shared cache for 2 credits. Failed calls and empty results are free.

Which parameters can I set?

ParameterValues
queryRequired. The search keywords, for example 护肤 (skincare) or camping.
limitNotes per call, 1 to 20. Default 10.
sortrelevance (default), latest, most_liked, most_commented or most_collected.
typeall (default), image or video.
publishedRecency window: all (default), day, week or half_year.
cursorThe pagination.next_cursor from the previous page. Omit it for the first page.

Make the request

cURL
curl -G "https://api.insightsocial.app/v1/xiaohongshu/search" \
  --data-urlencode "query=护肤" \
  -H "x-api-key: $INSIGHTSOCIAL_API_KEY"

What comes back

A real response from 2026-10-14 for query=护肤, shortened: two notes instead of 10, summaries and long URLs cut, and the creators replaced with placeholders.

Response (shortened)
{
  "success": true,
  "endpoint": "/v1/xiaohongshu/search",
  "schema_version": "2",
  "data": {
    "items": [
      {
        "post": {
          "id": "6a5f4af70000000011007275",
          "url": "https://www.xiaohongshu.com/explore/6a5f4af70000000011007275",
          "kind": "image",
          "content": {
            "text": "P1就是随手拍的照片…",
            "media_urls": null,
            "thumbnail_url": "https://sns-img-qc.xhscdn.com/notes_pre_post/…",
            "duration_seconds": null
          },
          "author": { "id": "example_user_id", "username": "example_user", "display_name": "Example User", "verified": null },
          "engagement": { "views": null, "likes": 5217, "comments": 63, "shares": 198, "saves": 2657 },
          "published_at": "2026-07-21T10:33:27.000Z",
          "ext": { "title": "戒糖+内调1年,素颜已达next level", "media_type": "image", "text_truncated": true }
        }
      },
      {
        "post": {
          "id": "6ab9051e000000000202b634",
          "url": "https://www.xiaohongshu.com/explore/6ab9051e000000000202b634",
          "kind": "video",
          "content": {
            "text": "一期无广的晚间护肤分享…",
            "media_urls": ["https://sns-video-bd.xhscdn.com/stream/…mp4"],
            "thumbnail_url": "https://sns-img-qc.xhscdn.com/…",
            "duration_seconds": 242.666
          },
          "author": { "id": "example_user_id_2", "username": "example_user_2", "display_name": "Example User 2", "verified": null },
          "engagement": { "views": null, "likes": 841, "comments": 27, "shares": 34, "saves": 145 },
          "published_at": "2026-09-27T11:59:26.000Z",
          "ext": { "title": "我的晚间护肤流程", "media_type": "video", "text_truncated": true }
        }
      }
    ],
    "total": null
  },
  "pagination": { "next_cursor": "v2c.aucAu1l_…", "has_more": true, "page_size": 10 },
  "unavailable": [],
  "credits_used": 500
}
FieldWhat it holds
data.items[].postOne note in the shared post shape.
post.ext.titleThe note's title.
post.content.textA short summary of the note body. ext.text_truncated: true says it is cut.
post.kindimage for picture notes, video for video notes.
post.content.media_urlsThe video file for video notes; null for image notes in search results.
post.engagementLikes, comments, shares and saves (Xiaohongshu calls saves "collects").
post.authorThe creator: ID, username, display name, avatar.
pagination.next_cursorPass it back as cursor for the next page.

How do I get more notes?

Send pagination.next_cursor back as cursor, with the same query and filters, and stop when pagination.has_more is false. Each page is charged like the first: 50 credits per note, so 500 for a page of 10.

Python: walk the first 3 pages
import os
import requests

BASE = "https://api.insightsocial.app/v1"
HEADERS = {"x-api-key": os.environ["INSIGHTSOCIAL_API_KEY"]}

params = {"query": "护肤", "limit": 10, "sort": "most_liked"}
notes = []
for _ in range(3):
    body = requests.get(f"{BASE}/xiaohongshu/search", params=params, headers=HEADERS, timeout=120).json()
    notes += body["data"]["items"]
    if not body["pagination"]["has_more"]:
        break
    params["cursor"] = body["pagination"]["next_cursor"]

Three pages of 10 notes cost 1,500 credits, so set a page limit before you start. See Pagination for the full rules.

What are the limits?

  • Summaries, not full notes. Search returns a short summary of each note. Pass the note's ID to GET /v1/xiaohongshu/post (50 credits) for the full body, images or video.
  • No view counts. engagement.views is null on every note in the sample, which means unknown, not zero.
  • No total. data.total is null: the search does not say how many notes match.
  • No verified badge. author.verified is null in search results.
  • Price per note. The cost grows with limit, so ask for the number of notes you need, not the maximum.

What can I build with it?

  • Market research in China. Search a product category such as 护肤 with sort=most_collected to see which notes people save, and which brands and claims they mention.
  • Creator discovery. The authors of the most-liked notes on a keyword are creators already working in that niche. Pass post.author.id as id to GET /v1/xiaohongshu/profile for their follower counts.
  • Brand monitoring. Search your brand name with sort=latest and published=week on a schedule to catch new notes about it.

The other Xiaohongshu endpoints work with what search returns: post (50 credits) for a note's full body, post/comments (50 to 1,000) for its comments, profile (50) and profile/posts (50 to 1,000) for a creator, and trending (50 to 1,000) for the live hot-search board.

On this page