Answers

How do I export every note from a Xiaohongshu creator's profile?

Short answer

Give the okdata Xiaohongshu account notes endpoint the creator's user ID and follow the cursor; each page of about 20 notes costs $0.02. A creator with 300 notes takes 15 calls, $0.30, and you can stop early once you reach notes you already have.

You want to study a competitor's Xiaohongshu account: which notes took off, how often they post, which topics they repeat. That means every note on the profile in one sheet, with its numbers. Download tools save images but not a clean table, and scrapers often stop after the first screen or collect fewer notes than the profile shows. The account notes endpoint lists them all, page by page, and a short script turns that into a sheet.

The calls

  1. If you have a share link rather than an ID, call account profile once with url=; the response gives the user id and the total note count in posts. A xiaohongshu.com/user/profile/<id> link already contains the ID.
  2. Call Xiaohongshu account notes with id. Each page holds about 20 notes, newest first, with title, type (image or video), cover images, publish time, likes, saves and comment counts.
  3. Pass page.next_cursor back as cursor until page.has_more is false.

Cost per creator

Notes on the profile Calls Cost
60 3 $0.06
300 15 $0.30
1,000 50 $1.00

For a weekly refresh, fetch page one only and stop as soon as you see a note ID you already stored: usually $0.02 per creator per week.

Script

import os, requests

URL = "https://api.okdata.online/v1/xiaohongshu/users/notes/list"
HEAD = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
params, rows = {"id": "5f1234567890abcdef123456"}, []

while True:
    body = requests.get(URL, headers=HEAD, params=params, timeout=60).json()
    rows += [(n["id"], n["title"], n["published_at"], n["metrics"]["likes"], n["metrics"]["favorites"]) for n in body["data"]["items"]]
    if not body["page"]["has_more"]:
        break
    params["cursor"] = body["page"]["next_cursor"]
print(len(rows), "notes")

Gotchas

  • The list leaves the author's name out of each note; it is the account you asked for. meta.unavailable lists those fields.
  • View counts do not exist publicly on Xiaohongshu, so metrics.views is null.
  • For the full body text and every image of a note, note detail ($0.02 per note) is the complete source. Use it for the notes you will actually read.
  • The public list can end a little short of the profile counter if the creator has hidden or restricted notes.

Alternatives

XHS-Downloader is the better tool if you want the image and video files on disk from a few profiles. MediaCrawler's creator mode works with a logged-in account. For tracking several competitor accounts every week, see competitor monitoring.

Updated