用量聚合(groupBy 逗号组合 ≤3 维:day/model/source/key/session/currency/purpose;key/session 行键名 keyId/sessionId,无挂靠/未归因行归 "(none)";currency 维 = 分币种成本桶(cost 恒单币禁跨币加总);purpose 维 = 计费归属桶(main/compaction/title/classifier/memory;服务端归因 websearch);?purpose= 过滤单查一类归属(词表 = USAGE_PURPOSES,词表外 400,未归因行不设过滤哨兵、查分布走 groupBy);带 x-tansr-org 头 = org 聚合,owner/admin/billing;?dims=1 聚合行随行返回长尾维度量汇总 dims(键 = 注册词表长尾键 cache_w_5m/cache_w_1h/reasoning_out/web_search 等,零量键不出、全零行不出 dims 键;本端点恒明细径 JSON_EXTRACT 聚合,响应携 dimsBasis:"detail" 如实标注口径——rollup 径报表未物化 dims 恒不含);?saved=1 聚合行随行返回缓存省费三分量汇总 saved={readSaved,writePremium,netSaved}(saved_read/saved_write_premium/saved_net 逐行 SUM,NULL 行不计,售价口径)+ savedKnownRequests 覆盖度分母(= saved 已知行数,requests − 此数 = 快照缺席行;存量窗口覆盖不全故走参数开关不恒随行),响应携 savedBasis:"detail",缺省响应零漂移;可见性红线:聚合行恒不含采购三列 upstreamCost/upstreamKnownRequests/upstreamKnownCost(采购口径仅平台管理员面 /admin/v1/usage-reports 等);协议价三列(恒随行):行携 listCost = Σ COALESCE(list_cost, cost)(牌价)与 discount = listCost − cost(优惠;cost = 实收),牌价客户 listCost ≡ cost、discount 0
GET
/v1/usage
const url = 'https://api.tansr.com/v1/usage';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.tansr.com/v1/usage \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”x-tansr-org
string
Org 作用域声明(org 公开 id);服务端校验成员资格与角色,非成员恒 404、角色不够 403
Responses
Section titled “Responses”聚合({window, groupBy, dimsBasis?, savedBasis?, data[]:{…, cost, listCost, discount}})
Media typeapplication/json
object
key
additional properties
any
Examplegenerated
{}Bad_request(window 形状 / groupBy 超 3 维)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。