这一页是开放 API的字段字典:告诉你每个返回字段叫什么、是什么类型、什么时候为空。怎么用:先看「通用约定」和「记录结构」,遇到不懂的字段回来查。
通用约定
| 字段 | 类型 | 说明 |
|---|---|---|
code | 整数 | 0=成功;出错时等于 HTTP 状态码 |
msg | 字符串 | 人类可读提示,成功时为空 |
data | 对象 | 业务数据 |
meta.api_version | 字符串 | 当前为 v1 |
meta.generated_at | 整数 | 服务端生成时间(Unix 秒) |
meta.cache_ttl | 整数 | 建议客户端缓存秒数 |
error | 字符串 | 仅出错时出现,机器可读错误码(如 unknown_act);成功响应没有这个字段 |
出错时是另一套结构,没有 data / meta:{"code":404,"error":"unknown_act","msg":"..."},其中 code 等于 HTTP 状态码。
榜单 / 分类流的记录结构
这两种记录大体一致,差别是:榜单记录没有 price 和 content(limit ≤ 50 时);分类流有 price,content 始终返回。搜索结果只返回下表中的一部分字段(见下方「搜索记录的差异」)。
| 字段 | 类型 | 说明 |
|---|---|---|
id | 整数 | 文章 ID |
title | 字符串 | 标题 |
url | 字符串 | 绝对地址,可直接打开 |
category.id | 整数 | 分类 ID |
category.name | 字符串 | 分类名,微博/好单还会带细分(如「微博线报-饮料-淘宝」) |
price | 数字或 null | 仅分类流 / 搜索有(榜单记录不带此字段)。null 表示该内容没有价格(与 0 元不同)。只有微博线报/好单线报/值得买有值 |
published_at | 整数 | 发布时间(Unix 秒) |
published_text | 字符串 | 可读的发布时间文本(榜单与分类流;搜索不返回) |
author | 字符串 | 楼主/发报员 |
comments | 整数 | 评论数(仅榜单与分类流;搜索不返回) |
content | 字符串 | 正文纯文本。分类流始终返回;榜单仅在 limit > 50 时返回;搜索结果不返回 |
正文 HTML(含转链与图片的那一版)默认不下发,需要时加 with_html=1,详见下方「content_html 字段」。
同样地,不提供浏览量字段。榜单已按站内热度排好序,外部按返回顺序使用即可。
搜索记录的差异
/api/v1/search 的每条记录只有:id、title、url、category.id、category.name、price、published_at、author;没有 published_text、comments、content。要正文请加 with_html=1 取 content_html,或按返回的 url 打开文章。
content_html 字段(with_html=1 时出现)
| 字段 | 类型 | 说明 |
|---|---|---|
content_html | 字符串 | 正文富文本 HTML。图片已做防盗链处理(每张图带 referrerpolicy="no-referrer",微博走搜狗 CDN,豆瓣/酷安/技术QQ/小刀/QQ 图床走站内代理),src / href 均为绝对地址,已按你请求的域名改写。内容经白名单清洗(脚本、事件属性、iframe、javascript: 等已剥离),可直接插入页面。无正文时为空串 |
响应 meta 中同时给出:with_html(是否开启)、html_count(本次实际带回 HTML 的条数)、html_truncated(是否因 4 MB 单次预算截断,截断的条目 content_html 为空串)。
对应地,content 字段仍是纯文本(已剥标签与 URL),适合做摘要、检索与截断展示;要渲染正文请用 content_html。
值得买独立流(type=zdm)
它的字段与上表完全不同,因为数据来自另一个平台,结构本身就不一样:
| 字段 | 类型 | 说明 |
|---|---|---|
id | 字符串 | 值得买的商品 ID |
type | 字符串 | 固定为 smzdm(值得买来源标识) |
title | 字符串 | 商品标题(通常已含价格) |
url | 字符串 | 站外地址,指向 smzdm.com |
price | 数字或 null | 价格 |
brand | 字符串 | 品牌 |
mall | 字符串 | 商城名(京东、天猫超市、抖音商城…) |
category_name | 字符串 | 平台侧类目路径 |
pic | 字符串 | 商品图 |
published_at | 整数 | 入库时间(Unix 秒) |
生活优惠的记录结构
| 字段 | 说明 |
|---|---|
act_id | 活动 ID |
act_name | 活动名 |
cate_name | 活动分类 |
desc | 简介 |
img / icon | 横幅图 / 小图标 |
start_date / end_date | 活动起止日期(YYYY-MM-DD) |
h5 | 活动直达链接 |
常见问题
Q:price 是 null 是接口坏了吗?
不是。它表示“这条内容没有价格”。只有微博线报、好单线报、值得买会带价格;null 和 0 不是一回事。
Q:content 为什么是空的?
榜单在 limit ≤ 50 时不下发 content;搜索永远不下发;值得买没有正文。要正文请加大 limit(榜单)或加 with_html=1。
Q:id 有时是数字、有时是字符串?
普通线报的 id 是数字;值得买流的 id 是商品 ID 字符串,两者不要混用。
