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 URL
    https://api.tikhub.io (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Request body

user_idstring required

博主用户ID/Blogger user ID

page_numberinteger

页码,从 1 开始/Page number, from 1

page_sizeinteger

每页数量,1-8(蒲公英网页固定 8)/Page size, 1-8 (fixed at 8 on PGY web)

note_type1 | 2 | 3 | 4

笔记类型 4=全部类型(默认) 3=合作笔记 1=图文 2=视频/Note type

order_type1 | 2 | 3

排序 1=最新发布(默认) 2=阅读最多 3=互动最多/Sort

advertise_switch0 | 1

流量类型 1=全部(含商业合作) 0=仅自然流量/Traffic type

feature_tagstring

按内容特征筛选,如 韩系;取值见博主详情的 featureTags/Filter by feature tag

content_tagstring

按内容类目筛选,如 美妆;取值见博主详情的 contentTags/Filter by content tag

is_third_platform0 | 1

1=只看跨域合作笔记 0=不限(默认)/Cross-platform notes only

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

codeinteger

HTTP status code | HTTP状态码

request_idstring nullable

Unique request identifier | 唯一请求标识符

messagestring

Response message (EN-US) | 响应消息 (English)

message_zhstring

Response message (ZH-CN) | 响应消息 (中文)

supportstring

Support message | 支持消息

timestring

The time the response was generated | 生成响应的时间

time_stampinteger

The timestamp the response was generated | 生成响应的时间戳

time_zonestring

The timezone of the response time | 响应时间的时区

docsstring nullable

Link to the API Swagger documentation for this endpoint | 此端点的 API Swagger 文档链接

cache_messagestring nullable

Cache message (EN-US) | 缓存消息 (English)

cache_message_zhstring nullable

Cache message (ZH-CN) | 缓存消息 (中文)

cache_urlstring nullable

The URL to access the cached result | 访问缓存结果的 URL

routerstring

The endpoint that generated this response | 生成此响应的端点

paramsunknown
dataunknown

Changes