Xiaohongshu-PGY-API
获取蒲公英博主笔记案例/Get PGY blogger note cases
Changed on[中文]
用途:
- 分页获取博主的笔记明细,对应博主主页「笔记数据 → 笔记案例」
- 想看「这个博主接过哪些商单」,把 note_type 设为 3(合作笔记)
- 本接口只覆盖原生笔记,少数博主(笔记以跨平台/跨域内容为主)会返回空列表 (total 为 0)。遇到这种情况改用 /get_blogger_notes_v2(覆盖范围更广,返回字段结构不同)
请求体参数:
- user_id: 必填,博主用户ID
- page_number: 页码,从 1 开始(注意本接口是 page_number,不是 page_num)
- page_size: 每页数量,1-8(蒲公英网页固定 8,不能更大)
- note_type: 笔记类型,4=全部类型(默认) 3=合作笔记 1=图文 2=视频 注意: 与 /get_blogger_notes_rate、/get_blogger_core_data 的同名参数取值不同 (那两个是 1=图文 2=视频 3=图文+视频)。照搬 note_type=3 会从「合作笔记」 静默变成「图文+视频」,不会报错
- order_type: 排序,1=最新发布(默认) 2=阅读最多 3=互动最多
- advertise_switch: 流量类型,1=全部(含商业合作,默认) 0=仅自然流量
- feature_tag: 按内容特征筛选,如 "韩系"(取值见博主详情的 featureTags)
- content_tag: 按内容类目筛选,如 "美妆"(取值见博主详情的 contentTags)
- is_third_platform: 1=只看跨域合作笔记 0=不限(默认)
返回:
- list[]: 笔记数组,每条含 noteId / title / imgUrl(封面) / date(发布日期) / isVideo(是否视频)
- 数据: readNum(阅读) / likeNum(点赞) / collectNum(收藏) / thirdReadUserNum(站外阅读人数)
- 合作: isAdvertise(是否商业合作) / brandName(合作品牌)
- total: 命中总数(随筛选变化,可据此算总页数)
- 拿到 noteId 后可调 /get_note_detail 查正文、图片/视频与完整互动数据
- 注意: 本接口的封面字段是 imgUrl,/get_blogger_notes_v2 是 imageUrl,一字之差
翻页:
- 只改 page_number,其余参数原样保持不变;翻到某页返回空数组即没有更多
响应结构(取数要剥两层):
- resp["data"] 是蒲公英原样信封(含 code/msg/success),业务数据还在它里面一层
- 正确取法:data = resp["data"]["data"];下面「返回」列的字段都在这一层下
计费:
- HTTP 200 → 计费。包含「查无结果」(data 为 null,如 ID 不存在或筛选无命中)—— 请求已送达蒲公英,同样扣费,不要因为拿不到数据就重试
- HTTP 400 → 不计费(参数格式非法,或上游资源不足/异常)
[English]
Purpose:
- Paginated note list of a blogger ("Note Data → Note Cases" on the PGY blogger page)
- To inspect sponsored posts only, set note_type=3
Request Body Parameters:
- user_id: required, blogger user ID
- page_number: page number from 1 (note: this endpoint uses page_number, not page_num)
- page_size: 1-8 (fixed at 8 on the PGY web page, cannot be larger)
- note_type: 4=all (default), 3=sponsored, 1=image-text, 2=video Warning: the same parameter means something else in /get_blogger_notes_rate and /get_blogger_core_data (1=image-text, 2=video, 3=both). Copying note_type=3 across silently switches "sponsored" to "image-text+video" with no error
- order_type: 1=newest (default), 2=most read, 3=most engaged
- advertise_switch: 1=all traffic incl. sponsored (default), 0=organic only
- feature_tag: filter by feature tag, e.g. "韩系" (see featureTags in blogger detail)
- content_tag: filter by content category, e.g. "美妆" (see contentTags in blogger detail)
- is_third_platform: 1=cross-platform sponsored notes only, 0=no limit (default)
Return:
- list[]: notes with noteId / title / imgUrl (cover) / date (publish date) / isVideo
- Metrics: readNum / likeNum / collectNum / thirdReadUserNum (off-site readers)
- Sponsorship: isAdvertise / brandName
- total: match count (varies with filters — use it to compute page count)
- Feed noteId into /get_note_detail for full body, media and engagement data
- Note: cover key here is imgUrl; /get_blogger_notes_v2 uses imageUrl
Paging:
- Change page_number only, keep other params identical; an empty array means no more data
Note:
- This endpoint only covers native notes; a few bloggers (whose notes are mostly cross-platform) return an empty list (total 0). In that case use /get_blogger_notes_v2 (wider coverage, different response shape).
Response shape (two layers):
- resp["data"] is PGY's raw envelope (with code/msg/success); the payload is one level deeper
- Correct access: data = resp["data"]["data"] — every field listed under "Return" lives here
Billing:
- HTTP 200 → charged, including "no result" (data is null, e.g. ID not found or filters matched nothing): the request did reach PGY, so retrying on empty data just burns quota
- HTTP 400 → not charged (malformed params, or upstream unavailable/error)
[示例/Example]
// ① 最近发布的全部笔记
{"user_id": "5c668b3e0000000012021605", "page_number": 1, "page_size": 8}
// ② 只看合作笔记(商单)
{"user_id": "5c668b3e0000000012021605", "page_number": 1, "page_size": 8, "note_type": 3}
// ③ 只看视频、按互动排序
{"user_id": "5c668b3e0000000012021605", "page_number": 1, "page_size": 8, "note_type": 2, "order_type": 2}
// ④ 只看广告投放过的笔记
{"user_id": "5c668b3e0000000012021605", "page_number": 1, "page_size": 8, "advertise_switch": 1}
// ⑤ 按类目过滤
{"user_id": "5c668b3e0000000012021605", "page_number": 1, "page_size": 8, "content_tag": "美妆"}
返空时改用 /get_blogger_notes_v2:本接口走原生 KOL 链路,对跨域博主可能返回空列表。 两个接口的返回结构不同(v2 在 noteList[].noteInfo 下),解析代码不能混用。
If this returns an empty list for a cross-domain blogger, switch to /get_blogger_notes_v2. Their response shapes differ — do not reuse the same parser.
post/api/v1/xiaohongshu/pgy/get_blogger_notes
Request
- Base URLhttps://api.tikhub.io (the document declares no server; this is the origin it was published from)
- AuthHTTP bearer
Request body
Example request
{
"user_id": "5c668b3e0000000012021605",
"page_number": 1,
"page_size": 8,
"note_type": 4,
"order_type": 1,
"advertise_switch": 1,
"feature_tag": "韩系",
"content_tag": "美妆"
}Response
Successful Response
Changes
- info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status
- info
- info
endpoint added
- info