OptionalDurationSession duration in seconds reported by the provider or transport (e.g. OpenAI Live's 15 s WebRTC session pre-bill and cumulative voice duration snapshots).
OptionalInputPer-modality breakdown of input tokens (text, audio, image/video).
OptionalInputInput tokens reported in this update (a delta for the completed response/turn).
OptionalOutputPer-modality breakdown of output tokens (text, audio, video), and the seconds of avatar video
generated since the last update (VideoSeconds, an amount like the tokens).
OptionalOutputOutput tokens reported in this update (a delta for the completed response/turn).
OptionalRawThe raw provider usage payload, for hosts that want provider-specific detail.
OptionalVideoCumulative video frames processed or sent across inbound video tracks.
OptionalVideoCumulative duration in seconds across inbound video tracks.
A usage/telemetry update emitted by a realtime client.
Deltas preferred: each emission SHOULD carry the incremental token counts for the response/turn that just completed (not a session-cumulative running total), matching the server-side
RealtimeUsagecontract — consumers accumulate. A driver whose provider only reports cumulative totals must convert to deltas before emitting.Per-driver availability (capability, not laziness — providers without usage events simply never emit):
response.doneframe'susagepayload.LiveServerMessage.usageMetadata(promptTokenCount/responseTokenCountare per-response counts, not cumulative), and, in an avatar session, the seconds of avatar video each turn generated, in updates of their own that carry onlyOutputTokenDetails.VideoSeconds.