How Restaurants & Local Businesses Use RedNote Data
RedNote (Xiaohongshu) has become where young people find restaurants, plan outings, and discover local spots — a restaurant, a coffee shop, a city's "where to go this weekend" often gets searched and recommended on RedNote first. For food and local-business merchants, it's both a customer-acquisition channel and a reputation battleground. Here's how to put local-life data to work with the Rnote API.
What food / local merchants can do with data
- Location & category research — See note heat and trends for a district or category ("city-walk coffee", "fusion cuisine").
- Reputation monitoring — Watch comments on notes about your store to respond to complaints fast and amplify praise.
- Creator visit campaigns — Vet local niche creators and assess the real engagement of their visit posts.
- Competitor benchmarking — See competitors' share of voice and top content in the same area.
Endpoints used
| Goal | Endpoint |
|---|---|
| Relevant notes / trends | keyword search search/notes (search by city/district/category) |
| Reputation & comments | comment data note/comments |
| Visit-creator vetting | creator analytics user/info user/posted |
| Topic heat | topic tracking topic/feed |
A practical example (Python)
import requests
API = "https://rnote.dev/api/v2/crawler"
H = {"X-API-Key": "YOUR_API_KEY"}
# Monitor new "cafe visit" notes in a city and find ones mentioning your store
notes = requests.get(f"{API}/search/notes",
params={"keyword": "Shanghai coffee", "sort_type": "time_descending"},
headers=H).json()
# Pull comments on matching notes for reputation and responses
Tips
- Be specific with local terms — "city + district + category" beats a single broad keyword.
- Scheduled & incremental — Run daily, dedup by
note_id, and build a store-reputation daily digest. - Only successful requests are billed, so scheduled jobs stay cheap.
Composing local search terms
Local search terms reward composition more than generic category terms do. Looking for coffee content in Shanghai, different compositions return completely different pools:
| Composition | Example | What you get |
|---|---|---|
| City + category | Shanghai coffee |
The broad pool — large but noisy |
| District + category | Jing'an coffee |
What your actual customers type. Closest to real demand |
| City + occasion | Shanghai date cafe |
Carries purchase intent |
| Category + audience | coffee for office workers |
A content angle — good for ideation, not for finding venues |
| Venue name | <your venue> |
The workhorse term for reputation monitoring |
District terms for campaigns, venue names for reputation, occasion terms for ideation. A common waste is monitoring reputation with a city-wide term: high volume, almost none of it about you.
From keywords to a daily digest
import requests, json, pathlib, datetime
API = "https://rnote.dev/api/v2/crawler"
H = {"X-API-Key": "YOUR_API_KEY"}
TERMS = ["Jing'an coffee", "Shanghai coffee review", "your venue name"]
seen = set(json.loads(pathlib.Path("seen.json").read_text())) \
if pathlib.Path("seen.json").exists() else set()
today = []
for kw in TERMS:
r = requests.get(f"{API}/search/notes", headers=H, timeout=30,
params={"keyword": kw, "sort_type": "time_descending",
"time_filter": "一天内"}) # last 24h
if r.status_code != 200:
continue
for it in r.json().get("data", {}).get("items", []) or []:
nid = it.get("id")
if nid and nid not in seen: # report only what's new
seen.add(nid); today.append((kw, it))
pathlib.Path("seen.json").write_text(json.dumps(sorted(seen)))
print(f"{datetime.date.today()}: {len(today)} new")
The seen set is the point: a digest is valuable for what's new, not for the total. Re-send the whole list every day and nobody reads it by day three.
Three things to get right in reputation monitoring
1. A mention is not a complaint. Most notes matching your venue name are neutral or positive. What needs a human is the negative tail — and it's worth pulling comments on high-engagement notes too, because complaints often sit in the comments rather than the post.
2. Filter same-name venues. Obvious for chains: searching the brand name drags in other cities. A second filter on city or district costs less than sorting it out by hand afterwards.
3. Response speed beats coverage. Replying to a negative note within 24 hours and replying a week later are very different outcomes. Three well-chosen terms daily beats thirty terms weekly.
Get started
Put store reputation and local trends into an automated dashboard. Sign up free for an API key, read the API docs and pricing; for a full monitoring pipeline, see competitor & brand monitoring.