Answers

How can I track where my notes rank in Xiaohongshu search for a keyword?

Short answer

Run the keyword through the okdata Xiaohongshu note search with the default sort every day, read the first two or three pages and record the position of your note IDs or your account's notes. Each page of about 20 results costs $0.02, so 10 keywords checked to page 3 daily cost $18.00 a month.

Xiaohongshu works as a search engine for many buyers: they type "敏感肌 面霜" and read the top results before they buy. A skincare brand that paid for 20 notes wants to know whether any of them sit on the first page for its ten target keywords, and whether that changes week to week. It is SEO rank tracking, for Xiaohongshu. Searching each keyword on a schedule and recording where your note IDs appear does exactly that.

How to measure it

Use Xiaohongshu note search with the default sort=general, which is the ranking a searcher sees first.

  1. For each keyword, fetch pages 1 to 3 (about 20 notes each).
  2. Find your notes by id, or by author.id if you want every note from your brand account or your creators.
  3. Store keyword, date, note ID and position. Position is the index across pages, starting at 1.

Cost

Setup Calls per day Per 30 days
1 keyword, page 1 only 1 $0.60
10 keywords, pages 1–3 30 $18.00
10 keywords, pages 1–3, weekly — $2.40

Weekly is enough for most brands; rankings move, but not hour by hour.

Script

import os, requests, datetime as dt

API = "https://api.okdata.online/v1/xiaohongshu/notes/search"
HEAD = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
mine = {"6650a1b2000000001e00abcd"}
for kw in ["敏感肌 面霜", "修护 面霜 推荐"]:
    params, pos = {"query": kw}, 0
    for _ in range(3):
        body = requests.get(API, headers=HEAD, params=params, timeout=60).json()
        for n in body["data"]["items"]:
            pos += 1
            if n["id"] in mine:
                print(dt.date.today(), kw, n["id"], pos)
        if not body["page"]["has_more"]:
            break
        params["cursor"] = body["page"]["next_cursor"]

Read the numbers carefully

  • The app personalizes results for each logged-in user, so a buyer's screen can differ from yours and from this measurement. Treat the position as a consistent, neutral benchmark, useful for trends over time, not a promise of what every user sees.
  • Sponsored placements in the app may not show up the same way here; compare organic positions with organic positions.
  • If a note disappears entirely, check it with note detail; not_found means it was deleted or hidden.

Alternatives

Checking ten keywords by hand on a phone each Monday works for a small brand and shows the personalized view. Some agencies sell Xiaohongshu ranking reports. For tracking competitors' notes in the same results, see competitor monitoring.

Updated