RedNote scraper and unofficial Xiaohongshu (XHS / 小红书) API: category feeds, full note details with images, video links, subtitles and transcripts, creator profiles, comment threads, keyword search and suggestions — 8 modes, six need no login. Export JSON, CSV, Excel. From $3.50/1k notes.
Empty runs are gone. The discovery feed needs an anonymous guest session, and RedNote answers no login info — nothing at all — to a run whose session could not be minted. That handshake used to be a single attempt with a 60-second budget: when a proxy exit IP stalled on it the run either burned half its time waiting or finished with zero rows. It now retries on fresh IPs with a short budget, keeps a working session instead of throwing it away on rotation, and re-mints automatically the moment RedNote drops one mid-run. A 10-note feed benchmark that returned 0 rows in 34 s now returns 10 rows in 9 s.
The right mode, even when the wrong one is selected. Pasting a profile URL while the selector still said Note details used to produce an empty dataset; leaving the selector on its Discovery feed default produced random trending notes instead of the creator you asked for. The run now reads which input field you actually filled in and switches to the matching mode, saying so in the log. The three URL/keyword fields also no longer come pre-filled, so nothing you did not type can steer a run.
A run never finishes with an empty dataset and no explanation. When there is genuinely nothing to scrape, the reason is written to the run's status message and pushed as a free, unbilled row.
Note URLs are fetched in parallel. A list of note links used to be worked through one at a time. Four notes now take about as long as one; a 100-URL list is minutes faster.
Comments and creators run in parallel too, and a slow item no longer holds back the ones queued behind it — every mode streams results from a worker pool instead of waiting for a whole batch to finish.
No request can stall a run any more. Each request class has its own connect/read budget instead of a flat 60 seconds, so a dead exit IP is swapped in seconds rather than waited out.
Default concurrency raised from 5 to 10, measured on the platform: 100 full-detail notes in 37 s instead of 67 s, and a sustained 200-note run came back 200/200 with no throttled pages. A run waits on RedNote's page latency, not on its own pacing.
Creator listings no longer burn five retries and five proxy rotations on the 461 RedNote returns for a profile link with no access token — a wall no fresh exit IP gets through. That case is ~15 s faster and says what to do about it.
1.2 (2026-08-24)
Video transcripts and subtitles. Every video note now reports its RedNote subtitle tracks — videoSubtitles with a downloadable .srt URL per language (typically the original Chinese plus an English translation), videoSubtitleLanguages, videoLanguages and videoHasHumanVoice. Switch on the new Also download video transcripts input and the spoken text itself arrives in the row as transcript, timings stripped, with transcriptLanguage and transcriptCharCount.
Image links that outlive the run. RedNote's own image URLs are signed and expire; every note now also carries id-based originals that do not — imageUrlsOriginal, coverUrlOriginal, urlOriginal on each image object, plus videoThumbnailUrl and videoFirstFrameUrl for the video stills that used to be file ids only.
Deeper video metadata. Added the source resolution before transcoding (videoSourceWidth / videoSourceHeight), the audio track of the selected stream (videoAudioCodec, videoAudioBitrate, videoAudioChannels), videoFormat, videoDurationMs, videoDrmType, videoStreamTypes and a videoQualityLadder summary of every rendition.
Richer creator profiles. New profession and location pulled out of the profile chips, tagDetails with each chip's type and icon, RedNote's own localised counters (followersI18nText, followingI18nText, likesAndCollectsI18nText, e.g. 10K+), public collection counts, and gender now filled in from the profile's gender chip when RedNote withholds the numeric code.
Comment threads that make sense on their own. Added isNoteAuthor (the creator answering inside their own thread), authorIsAiAgent, hasMoreReplies, repliedToCommentId, repliedToUserUrl and invalid.
Notes now report pinned when the creator pinned them to the top of their profile, plus hashtagCount, topicIds, atUserCount, livePhotoCount, coverUrlPreview, and atUsers entries now carry the mentioned creator's profile URL and access token.
A discovery-feed category that RedNote serves no notes for is now called out in the log instead of finishing silently.
Removed trackId and coverFileId from the documented fields: RedNote blanks both for every session this actor uses, so they were never actually returned. Documented noteIdHiddenByRedNote, which the actor has always set on creator listings whose note ids RedNote hides.
1.1 (2026-08-13)
Higher yield on large runs. RedNote starts serving payload-less note pages once a single exit IP has pulled a few dozen of them. The scraper now rotates its session before that happens and treats an empty page as a retryable block instead of accepting it, lifting full-detail coverage from 68 % to 93 % on a 100-note benchmark.
Results arrive as soon as they are parsed. Request pacing now gates when a request starts rather than holding a finished record back, so rows reach the dataset seconds earlier and the first row shows up immediately.
Error rows are free. A row that only explains why an input could not be scraped is pushed for visibility but never billed.
Creator listings whose note ids RedNote hides from anonymous sessions are kept and flagged noteIdHiddenByRedNote instead of being dropped.
Fixed keyword modes failing on non-Latin keywords, and progress is now logged from the first record.
1.0 (2026-08-13)
Initial release. Seven scrape modes for RedNote / Xiaohongshu, six of them fully anonymous — no account, no cookie, no browser.
Discovery feed: trending notes from 12 RedNote category channels with unlimited cursor pagination.
Note details: full note payload — caption, all images (live-photo aware), every video rendition with codec/resolution/bitrate/size, hashtags and topic IDs, region, mentions, exact engagement counters and edit timestamps.
Comments: comment threads with replies as separate linked rows, commenter profile, likes and region.
Creator profiles: followers, following, likes+saves, RedNote handle (小红书号), bio, gender, region and profile tags.
Creator notes: a creator's profile plus their recent posts.
Keyword research: RedNote's own search suggestions, optionally expanded recursively into a long-tail keyword map.
Keyword search (notes and creators) with sorting plus post-type and date filters, unlocked by the optional cookie input.
Abbreviated counters (10万+, 1千+) are returned both as the original display string and as a real integer, with engagementTotal pre-computed.
Results stream into the dataset the moment each record is ready, so aborted runs keep everything collected so far.
Share links (xhslink.com) are resolved automatically; access tokens are returned with every record for re-use in later runs.