客户端计量上报(direct 端点 token 计数;恒 billable=false、cost=0、零正文白名单)
POST
/v1/usage/events
const url = 'https://api.tansr.com/v1/usage/events';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"events":[{"clientEventId":"example","modelHandle":"example","modelId":"example","inTokens":1,"outTokens":1,"cacheReadTokens":0,"cacheWriteTokens":0,"estimated":true,"occurredAt":"example","sessionId":"example","purpose":"example"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.tansr.com/v1/usage/events \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "events": [ { "clientEventId": "example", "modelHandle": "example", "modelId": "example", "inTokens": 1, "outTokens": 1, "cacheReadTokens": 0, "cacheWriteTokens": 0, "estimated": true, "occurredAt": "example", "sessionId": "example", "purpose": "example" } ] }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
events
required
Array<object>
Schema 白名单:出现任何正文类字段即 400(总则 5 零留存)
object
clientEventId
required
客户端幂等键
string
modelHandle
required
string
modelId
required
string
inTokens
required
integer
outTokens
required
integer
cacheReadTokens
required
integer
cacheWriteTokens
required
integer
estimated
required
boolean
occurredAt
required
string
sessionId
string
purpose
计费归属用途(G-A10;批ι 起词形受理,语义注册表见 contract/twp.ts TWP_PURPOSES)
string
Responses
Section titled “Responses”收单(幂等去重计数返回)
Media typeapplication/json
object
key
additional properties
any
Examplegenerated
{}白名单外字段
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" }}本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。