# view=compact 和 fields= 是做什么的，会影响价格吗？

> 每个接口都有的 view 和 fields 参数：compact、standard、full 各返回什么，fields 怎么按点号路径挑字段，为什么 ext 要配 view=full，以及为什么价格不变。

网页版：https://okdata.online/zh/answers/api-view-fields-params/

**简短回答：**view 是预设档位：standard（默认）返回通用字段，compact 再去掉所有值为 null 的字段，full 会在 ext 里加上平台特有字段。fields 只保留你点名的路径。两者都不改变价格和条数：在 okdata 上，一页小红书搜索不管要什么形状都是 $0.02。

okdata 的每个接口都接受两个可选参数，只改变返回的形状，不改变抓取的内容：`view` 和 `fields`。有了它们，脚本或者 AI 智能体可以只要自己用得上的那几列。思路和 Google 的 YouTube Data API 里的 `part`、`fields` 一样，那边叫“部分资源”。

## view：三个档位

| `view` | 每个对象里有什么 | 以抖音搜索结果为例 |
|---|---|---|
| `standard`（默认） | 这类对象的通用字段，null 也保留 | 有 `title: null` |
| `compact` | 在 standard 基础上去掉所有为 null 的字段 | 没有 `title` 这一项 |
| `full` | 在 standard 基础上加 `ext`，即平台特有字段 | `ext.duration_ms`、`ext.music`、`ext.region` |

[小红书笔记搜索](/zh/apis/xiaohongshu/notes/search/)的结果加了 `full` 后多出 `ext.ip_location` 和 `ext.xsec_token`；[抖音视频搜索](/zh/apis/douyin/videos/search/)多出的是视频时长、背景音乐名和地区。通用字段见[对象参考](/zh/docs/objects/post/)。

## fields：只留你点名的

`fields=id,title,metrics.likes,author.name` 返回的对象里就只有这几个路径，嵌套关系不变，用点号进到对象内部。路径是在 `view` 之后才筛的，这带来一个实际影响：`ext` 只在 `full` 里才有，所以 `fields=id,ext.duration_ms` 必须同时加 `view=full`。点了一个什么都匹配不上的路径，调用照样成功，只是响应的 `warnings` 里会写明，比如 `fields matched nothing: ext.duration_ms`。

## 价格和条数

| 请求 | 条数 | 费用 |
|---|---|---|
| `query=露营装备` | 约 20 条 | $0.02 |
| 同样的请求加 `view=compact` | 约 20 条 | $0.02 |
| 同样的请求加 `view=full&fields=id,metrics.likes,ext.duration_ms` | 约 20 条 | $0.02 |

按次计费，瘦的一页和胖的一页价格相同。省下来的是带宽，以及模型读结果时的 token。

## 示例

```python
import os, requests

URL = "https://api.okdata.online/v1/xiaohongshu/notes/search"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

body = requests.get(URL, headers=H, timeout=60, params={
    "query": "防晒霜 推荐", "sort": "popular",
    "view": "full",
    "fields": "id,title,metrics.likes,metrics.favorites,author.name,ext.ip_location",
}).json()
if body["code"] != "ok":
    raise SystemExit(body["message"])
print(body["warnings"])            # 每个路径都匹配上时为 []
print(body["meta"]["unavailable"]) # 字段为何为 null，例如 metrics.views: platform
for note in body["data"]["items"]:
    print(note)
```

## 需要留意的地方

- **compact 只是把 null 藏起来，不解释原因。**compact 结果里没有 `metrics.views`，不等于播放量是 0。`meta.unavailable` 依然会列出哪些字段为 null，以及原因是平台从不公开（`platform`）还是数据源暂时取不到（`capability`）。
- **翻页。**同一个列表翻页时可以换 `view` 和 `fields`，游标照样有效。
- **智能体。**通过 MCP 调用时，这两个参数放在 `params` 里，比如 `{"query": "露营装备", "fields": "id,title,metrics.likes"}`。

从省 token 的角度，以及常见任务该选哪些字段，见[喂给大模型的社交数据怎么省 token](/zh/answers/reduce-llm-tokens-social-data/)。

## 用到的接口

- [小红书笔记搜索](https://okdata.online/zh/apis/xiaohongshu/notes/search/) `xiaohongshu.notes.search`：$0.02/次 · 每页约 20 篇笔记
- [抖音视频搜索](https://okdata.online/zh/apis/douyin/videos/search/) `douyin.videos.search`：$0.02/次 · 每页约 20 条视频

## 更多小红书内容

- [小红书 API](https://okdata.online/zh/apis/xiaohongshu/)
- [抖音 API Python 教程：搜索、视频、账号和评论（2026）](https://okdata.online/zh/guides/douyin-api-python/)
- [怎么批量导出抖音视频评论](https://okdata.online/zh/guides/douyin-video-comments/)
- [小红书 API Python 教程：笔记、博主和评论（2026）](https://okdata.online/zh/guides/xiaohongshu-api-python/)
- [怎么按关键词批量导出小红书评论](https://okdata.online/zh/guides/xiaohongshu-note-comments/)
- [怎么在小红书蒲公英按报价和阅读量筛达人](https://okdata.online/zh/guides/xiaohongshu-pgy-creator-rates/)
- [怎么搜索小红书笔记并导出成 CSV 表格](https://okdata.online/zh/guides/xiaohongshu-search-export-notes/)
- [为什么 Perplexity、ChatGPT 联网搜索搜不到抖音和小红书的内容？](https://okdata.online/zh/answers/ai-search-cant-find-douyin-xiaohongshu/)
- [怎么防止 AI 智能体调用付费数据接口时花超预算？](https://okdata.online/zh/answers/cap-ai-agent-spend-data-api/)
- [能不能给 ChatGPT 接上抖音、小红书的数据？](https://okdata.online/zh/answers/chatgpt-douyin-xiaohongshu-data/)
- [怎么给 LangChain / LangGraph 智能体加上社媒数据工具？](https://okdata.online/zh/answers/langchain-mcp-social-data-tools/)
- [怎么用大模型从抖音、小红书评论里提炼用户痛点？](https://okdata.online/zh/answers/llm-comment-pain-points-douyin-xiaohongshu/)
- [抖音评论采集用什么？官方接口、第三方 API、开源爬虫、采集工具 4 类方案怎么选（2026）](https://okdata.online/zh/compare/douyin-comment-scraping/)
- [抖音数据接口有哪些？官方开放平台、第三方 API、开源爬虫 4 类方案怎么选（2026）](https://okdata.online/zh/compare/douyin-data-apis/)

## 资料来源

- [YouTube Data API：部分资源，part 和 fields 参数](https://developers.google.com/youtube/v3/getting-started) (读取于 2026-11-12)

这个问题出现过的地方（读取于 2026-11-12）：

- https://stackoverflow.com/questions/56315185
- https://stackoverflow.com/questions/30872674
- https://devcommunity.x.com/t/do-tweet-expansions-add-user-read-charges-on-top-of-post-read-when-looking-up-my-own-posts-by-id/275286

更新于 2026-11-12
