Answers

Why does my Xiaohongshu scraper get status 461, and how do I get the data anyway?

Short answer

A 461 is Xiaohongshu's risk control refusing requests it scores as automated, usually tied to your logged-in account and IP. You can fetch the same public notes through okdata with no Xiaohongshu account at all: search costs $0.02 per page of about 20 notes, and note detail $0.02 per note.

You ran MediaCrawler, or your own script against the web API, for a keyword. It worked for twenty minutes, then every request came back with HTTP 461 and sometimes a slider captcha. That is Xiaohongshu's risk control. It scores the request signature, the account cookie, the IP and the pace, and once the score is bad it stops answering that account. Waiting a few hours, slowing down or switching accounts brings it back for a while. At any real volume it comes back again. For public notes, the lasting fix is to stop sending requests from your own account.

Get the notes without your own account

If what you need is public notes, and nothing behind your login, let an API do the fetching. With okdata your code never talks to Xiaohongshu, so there is no cookie to refresh, no x-s signature to rebuild and no account of yours to get flagged.

What a typical job costs

Job Calls Cost
200 notes for one keyword 10 search pages $0.20
Full text of the best 50 50 detail calls $1.00
Both together 60 {{cost:xiaohongshu.notes.search10+xiaohongshu.notes.get50}}

A call that fails is not charged, so a bad hour upstream costs you a retry, not money.

Try it

curl -G "https://api.okdata.online/v1/xiaohongshu/notes/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=露营 装备' \
  --data-urlencode 'sort=latest'

For the next page, send page.next_cursor back as cursor. If you call us too fast you get a 429 with retry_after_seconds, never a 461; every code is on the errors page.

Limits worth knowing

  • Public data only. Private or deleted notes come back as not_found, which is free.
  • Xiaohongshu does not show view counts, so metrics.views is null and meta.unavailable says the platform hides it.
  • Search results name the author but not their follower count. Ask the account profile endpoint for that.

When the scraper is still the better choice

MediaCrawler is free and open source. For a few hundred notes a week from your own laptop it can be the better deal, as long as you are fine logging in, solving the odd slider and backing off when 461 returns. For a job that has to run unattended every day, paying per call usually costs less than the hours spent nursing accounts and proxies. The content research page walks through a full keyword workflow.

Updated