服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- Perplexity 官方更新日志把变化列在 2026 年 11 月:credit_usage 的 v1/v2 响应目前不含 Credit Source breakdown,但 count 总用量和 Model breakdown 保留。
- 按返回的 categories 解析维度;用 count 读取总量,仅在返回时读取 by_categories.Model,不要把缺少的分类视为零。
- Analytics API 面向 Enterprise 组织,并使用单独的组织级管理员 key;组织开关可能尚未为每个组织启用。
- 分页时固定 UTC 时间窗口并沿用不透明 next_page;完整桶、同步延迟、空数据和 has_more 各自代表不同状态。
缺少 Credit Source,不等于总用量为零
缺少 Credit Source 时,仍应保留总用量。Perplexity 2026 年 11 月更新日志说明,dataset=credit_usage 的 /v1/analytics/computer/usage 与 /v2/analytics/computer/usage 响应目前省略这个分类,但 total credit usage 与 Model breakdown 仍可用。
依赖固定分类集合的集成,应改为读取响应里的 categories。日志没有解释省略原因或给出恢复日期;这条记录只标明月份,具体公告日、时间和时区未知。
先按 categories 解释 count 和 Model
v1 的 credit_usage 请求一次返回一个时间序列。顶层 categories 列出这次响应提供的 breakdown 轴,by_categories 则按轴名放置对应分类。
把每个桶的 count 当作总 credit usage;categories 返回 Model 时,再读取 by_categories.Model 作为模型 breakdown。不要要求 Credit Source 必须出现在固定字段集合中。
响应没有 Credit Source 只表示没有提供这个维度,不表示总用量或某个来源的用量为零。Perplexity 还说明,count 可能高于任一单独 breakdown 的合计,因为缺少分类归属的用量仍计入总数。
纯算术示例:假设 count 是 100,返回的 Model 分类合计为 80。应保留 100 的总数和 80 的模型明细;另外 20 没有模型归属,不能自行分配给某个模型,更不能据此推算未返回的 Credit Source 分类。这个数字是假设,不是实际报告。
先确认 Enterprise 开关和 Analytics key
Analytics API 面向 Perplexity Enterprise 组织。组织管理员可在 Perplexity 网页应用的 Computer 设置中打开 Analytics API;如果找不到开关,官方说明该功能可能尚未为组织启用,应联系 Perplexity 代表。
打开开关后,管理员可生成组织级 Analytics key。每个组织最多有一个有效密钥;任何组织管理员都可以查看当前 key 或重新生成。重新生成会撤销旧 key,关闭 Analytics API 开关则会永久撤销该 key。
用 Bearer 方式传入专用的 PERPLEXITY_ANALYTICS_API_KEY,不要覆盖其他接口使用的 PERPLEXITY_API_KEY。Analytics key 只能认证 Analytics endpoints,Analytics requests 免费且不消耗 API credits;这不表示底层 Perplexity 产品用量免费。
文档只说明 Enterprise 组织可使用该 API,不能据此推断个人或普通 API 账户有资格;这两页也没有说明企业订阅价格或地区资格。
用 v1 拉取固定的 UTC 桶
读取 credit_usage 时,对 GET /v1/analytics/computer/usage 提供 dataset=credit_usage 和必填的 Unix 秒 start_time(UTC,含起点)。end_time 可省略,默认 now;它是排除式终点,未来值会截到当前时间。
credit_usage 支持 bucket_width=1d 或 1h,默认 1d。limit 表示每页桶数:日桶默认 7、最多 31;小时桶默认 24、最多 168。
接口只返回完整 UTC 网格桶:start_time 向下贴齐桶边界,所以首桶可能包含请求起点之前的时间;排除式 end_time 也会截到 now 并向下贴齐,尚未完成的当前桶不会返回。合法窗口若没有完整桶,会返回 HTTP 200 和空 data。
当 has_more 为 true 时,把 next_page 原样作为 page 继续同一份报表,并保持其他参数不变。游标是不透明值,不要拆解或自行生成。分页前显式固定 start_time 和 end_time,不要每一页重新计算 now。
用 v2 按成员分组,并合并日片段
GET /v2/analytics/computer/usage 使用 group_by=user_email 按组织成员拆分,目前支持 credit_usage 与 query_volume,且只按日返回。credit_usage 行含成员当日总 credits 和可用的 Model breakdown;query_volume 行含成员当日查询数及其可用分类。
v2 的 limit 是每页成员行数,默认 50、最多 100。一个页面可跨越多天,同一天的成员行也可能分散到不同页面;遍历所有 next_page 后再组合同一天的数据片段,不能把单页当成完整一天。
v2 的时间语义与 v1 日桶一致,且使用相同的 Analytics key、组织级限流额度和单次最多 90 天窗口。它按成员行分页,next_page 必须原样传回,其他查询参数保持固定。v1 的 user_email 可筛选 credit_usage 成员;v1 的 query_volume 是组织汇总,成员查询需使用 v2。
v2 的每个 data 项代表一个 UTC 日,results 只列出当日有用量的成员;整天没有用量时,这一天直接省略。因此,缺少某天或成员行,与显式返回 count=0 的记录不同。
分清同步延迟、空窗口和接口错误
分析数据会周期同步而非实时更新,最近桶的 count=0 可能只是尚未同步。has_more 只表示所选时间窗口里还有更多完整桶,不代表数据已刷新;空 data、count=0 与遗漏的 breakdown 应分别处理。
每次请求的时间窗口最多 90 天;同一组织的 Analytics 请求共用限流额度,文档未给出数值速率。429 表示组织限速,应按退避方式重试。
400 bad_request 表示参数类型或格式错误;400 invalid_request 表示语义无效,例如 start_time 晚于 end_time、窗口超过 90 天、无效游标或不支持的 dataset/bucket/filter。401 表示 key 缺失或无效,404 feature_disabled 表示 Analytics API 未启用。
具体组织数据、同步时延、企业订阅价格和地区资格,需要以组织实际信息及 Perplexity 官方确认结果为准。这两页没有提供完整的组织或地区资格清单,也没有承诺实时刷新。
资料来源
常见问题
能加一个参数把 Credit Source 分类重新取回来吗?
当前更新日志只说明该 breakdown 在 credit_usage 的 v1/v2 响应中暂时省略,没有列出恢复参数或恢复日期。解析时应以 categories 实际返回的维度为准,并继续保留 count 总用量。
需要半年历史报表时,怎样安排查询窗口?
单次窗口最多 90 天。若组织实际可读的历史覆盖半年,可拆成多个相接、不重叠且不超过 90 天的固定 UTC 窗口;每窗独立完成分页后再合并。90 天是单次请求上限,不是半年历史一定可用的承诺。