跳转到内容

客户端计量上报(direct 端点 token 计数;恒 billable=false、cost=0、零正文白名单)

POST
/v1/usage/events
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" } ] }'
Media typeapplication/json
object
events
required
Array<object>
<= 200 items

Schema 白名单:出现任何正文类字段即 400(总则 5 零留存)

object
clientEventId
required

客户端幂等键

string
<= 64 characters
modelHandle
required
string
modelId
required
string
inTokens
required
integer
outTokens
required
integer
cacheReadTokens
required
integer
0
cacheWriteTokens
required
integer
0
estimated
required
boolean
occurredAt
required
string
sessionId
string
purpose

计费归属用途(G-A10;批ι 起词形受理,语义注册表见 contract/twp.ts TWP_PURPOSES)

string
<= 16 characters /^[a-z][a-z0-9_-]{0,15}$/

收单(幂等去重计数返回)

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
Allowed values: adjudicator_not_authorized admin_forbidden admin_key_invalid app_disabled app_ip_denied app_key_invalid approval_self_forbidden asr_not_configured asr_quota_exceeded auth_channel_undelivered bad_request conflict content_blocked context_window_exceeded currency_not_supported device_code_denied device_code_expired device_code_pending device_code_slow_down egress_blocked endpoint_disabled envelope_key_undelivered fence_denied forbidden idempotency_conflict idp_untrusted image_not_supported imagegen_not_configured imagegen_quota_exceeded insufficient_balance internal_error invalid_api_key license_required limit_exceeded liquidation_not_enabled model_not_authorized model_not_found nonce_replayed not_found order_state_invalid org_byok_not_available org_ceiling_exceeded otp_invalid otp_rate_limited pay_amount_mismatch pay_channel_undelivered pay_signature_invalid payload_too_large payment_required plan_apps_exceeded plan_concurrency_exceeded plan_end_users_exceeded plan_gate_unavailable plan_members_exceeded plan_required plan_tier_insufficient policy_locked pool_signing_undelivered preflight_required pricing_guard_tripped principal_required protocol_unsupported quota_exceeded rate_limited refund_not_eligible section_not_deliverable session_archived signature_invalid stream_backpressure token_expired tts_not_configured tts_quota_exceeded unauthorized upstream_connect_timeout upstream_disconnected upstream_error upstream_idle_timeout upstream_timeout upstream_total_timeout upstream_ttfb_timeout validation_failed videogen_not_configured videogen_quota_exceeded websearch_not_configured websearch_quota_exceeded
message
required
string
requestId
required
string
detail
object
Example
{
"error": {
"code": "adjudicator_not_authorized"
}
}