查询用量明细
使用系统访问令牌读取当前账户的数据
国内用户请注意: 中国大陆用户请使用 https://toapis.cn 作为接口地址 (Base URL). 文档示例中的 https://toapis.com 请替换为 https://toapis.cn.
鉴权, 分页与错误处理见接入说明.
使用说明
用量区间最长 31 天. 明细按创建时间与 ID 倒序; 汇总按日期升序, 模型 UTF-8 字节序, 或 Key 的 null 桶后接数字 ID 升序. 每个汇总项只包含 day, model, api_key_id 中对应分组的一项. record_count 为日志行数, 不是完整请求次数. billing_phase 为 pre_consumed, settled 或 unknown, 不代表任务最终账务状态. 原请求追踪位于 trace, 不是本次查询的请求 ID. 可选追踪和上游 token 总量可能为 null, 不影响独立金额与输入输出 token. meta.records_mutable=true, refund_accounting=not_complete, consistency=eventual; 结算和退款会更新旧行, 无记录不证明零消费. 单向同步无法保证捕获这些更新.
鉴权
Authorizationstring请求头必填使用系统访问令牌, 格式为 Bearer YOUR_SYSTEM_ACCESS_TOKEN. 模型 API Key 不能用于此接口, 无需 X-User-Id.
请求参数
fromstring查询必填带时区的 RFC 3339 起始时间, 包含该时刻. 与 to 成对提供.
约束: date-time.
tostring查询必填带时区的 RFC 3339 结束时间, 不包含该时刻, 必须晚于 from.
约束: date-time.
api_key_idstring查询自身模型 API Key 的十进制 ID 字符串. 不属于自己时返回 404, 已删除 Key 仍可用于查询自身历史用量.
约束: pattern=^[1-9][0-9]*$.
modelstring查询精确匹配模型标识. 用量接口中空字符串匹配空模型名.
约束: maxLength=255.
limitinteger查询默认值: 50每页最多返回的条目数.
约束: minimum=1; maximum=100; 默认值: 50.
cursorstring查询原样传入上一页的 next_cursor. 保留原筛选条件, 改变条件后重新开始.
约束: maxLength=2048.
请求示例
curl --request GET \
--url 'https://toapis.com/api/v1/account/usage/records?from=2026-11-01T00:00:00Z&to=2026-11-02T00:00:00Z&api_key_id=42&limit=20' \
--header 'Authorization: Bearer YOUR_SYSTEM_ACCESS_TOKEN'import requests
response = requests.get(
"https://toapis.com/api/v1/account/usage/records",
headers={"Authorization": "Bearer YOUR_SYSTEM_ACCESS_TOKEN"},
params={
"from": "2026-11-01T00:00:00Z",
"to": "2026-11-02T00:00:00Z",
"api_key_id": "42",
"limit": "20"
},
timeout=30,
)
response.raise_for_status()
print(response.json())const url = new URL("https://toapis.com/api/v1/account/usage/records");
url.search = new URLSearchParams({
"from": "2026-11-01T00:00:00Z",
"to": "2026-11-02T00:00:00Z",
"api_key_id": "42",
"limit": "20"
}).toString();
const response = await fetch(url, {
headers: { Authorization: "Bearer YOUR_SYSTEM_ACCESS_TOKEN" },
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());响应字段
示例使用虚构数据. 金额样例假设 credits_per_usd="100", 实际换算以响应为准.
列表位于 data.items, 使用 has_more 和 next_cursor 翻页. 末页游标为 null, 不返回总数.
codeinteger业务状态码, 成功时为 0.
messagestring响应消息, 成功时为空字符串. 错误消息会按请求语言返回.
dataobject本次查询的结果对象.
data.itemsobject[]当前页的记录列表, 空结果为 [].
data.items[].idstring消费日志记录的 ID. 以十进制 ID 字符串返回.
data.items[].created_atstring | null创建时间. 时间格式为带时区的 RFC 3339. 无法确认或不适用时为 null.
data.items[].api_key_idstring | null关联模型 API Key 的 ID. 没有关联 Key 时为 null.
data.items[].key_namestring | null日志中记录的 API Key 名称. 无法确认或不适用时为 null.
data.items[].modelstring模型标识.
data.items[].task_idstring | null关联的平台任务 ID. 无法确认或不适用时为 null.
data.items[].recorded_cost_usdstring当前消费日志记录的 USD 金额, 不代表完整退款核算后的净支出. 以十进制字符串返回以保持精度.
data.items[].recorded_creditsstring当前消费日志记录的消费额度, 单位为 credits. 以十进制字符串返回以保持精度.
data.items[].billing_phasestring日志记录的账务阶段, 不等同于任务最终账务状态. 可选值: pre_consumed, settled, unknown.
data.items[].usageobject日志记录的输入, 输出及上游报告的 token 数量.
data.items[].usage.input_tokensinteger日志记录的输入 token 数量.
data.items[].usage.output_tokensinteger日志记录的输出 token 数量.
data.items[].usage.reported_total_tokensinteger | null上游报告的总 token 数量, 无法确认时为 null, 不自行用输入和输出数量补齐.
data.items[].traceobject | null原生成请求的追踪信息, 与本次查询的请求 ID 不同. 无法确认或不适用时为 null.
data.items[].trace.request_idstring | null原生成请求的平台追踪 ID. 无法确认或不适用时为 null.
data.items[].trace.client_request_idstring | null原生成请求中记录的客户侧请求 ID. 无法确认或不适用时为 null.
data.has_moreboolean是否还有下一页.
data.next_cursorstring | null下一页游标, 原样作为 cursor 传入并保留筛选条件. 末页为 null.
data.metaobject数据来源, 查询范围和数据口径等元信息.
data.meta.scopestring查询的数据归属范围, 当前为认证账户自身. 固定值: "self".
data.meta.fromstring查询时间范围的下界, 包含该时刻. 时间格式为带时区的 RFC 3339.
data.meta.tostring查询时间范围的上界, 不包含该时刻. 时间格式为带时区的 RFC 3339.
data.meta.time_basisstring时间筛选和日期分组采用消费日志的创建时间. 固定值: "record_created_at".
data.meta.cost_basisstring金额采用当前消费日志行的值, 不是冻结的最终账单. 固定值: "current_consume_log_amount".
data.meta.refund_accountingstring退款核算的完整性. not_complete 表示不能作为完整净支出账本. 固定值: "not_complete".
data.meta.records_mutableboolean记录是否可能在结算或退款后更新. 当前为 true.
data.meta.consistencystring数据一致性类型. eventual 表示最终一致, 记录可能稍后更新. 固定值: "eventual".
data.meta.consume_logging_enabledboolean消费日志开关是否开启. 无记录不证明没有扣费.
data.meta.credits_per_usdstring每 1 USD 对应的 credits 数量. 使用此值进行换算. 以十进制字符串返回以保持精度.
响应示例
{
"code": 0,
"message": "",
"data": {
"items": [
{
"id": "9001",
"created_at": "2026-11-01T08:00:00Z",
"api_key_id": "42",
"key_name": "Example Key",
"model": "example-text-model",
"task_id": null,
"recorded_cost_usd": "0.02",
"recorded_credits": "2",
"billing_phase": "settled",
"usage": {
"input_tokens": 1000,
"output_tokens": 200,
"reported_total_tokens": 1200
},
"trace": {
"request_id": "request_example_01",
"client_request_id": "client_example_01"
}
}
],
"has_more": false,
"next_cursor": null,
"meta": {
"scope": "self",
"from": "2026-11-01T00:00:00Z",
"to": "2026-11-02T00:00:00Z",
"time_basis": "record_created_at",
"cost_basis": "current_consume_log_amount",
"refund_accounting": "not_complete",
"records_mutable": true,
"consistency": "eventual",
"consume_logging_enabled": true,
"credits_per_usd": "100"
}
}
}