What's metered
The metrics that count toward your Cosmo Realtime usage.
Cosmo meters session duration (voice_session_seconds), provider costs (voice_provider_cost), and external API requests (api_request). Your plan determines which usage is billed.
Voice minutes
The voice_session_seconds meter counts session wall-clock duration, billed per minute. A heartbeat starts once the session emits its started event and runs until teardown, so the meter accrues for as long as the session is open.
What counts
- The whole time a session is open, whether or not anyone is speaking.
- Every session across every project in the workspace.
What doesn't count
- Session-start calls that fail. The meter only starts once the session is running.
Muting doesn't pause billing. mute gates audio into the model; it doesn't stop the session clock. To stop accruing, end the session.
There is no per-turn way to suppress speech, so no send makes a single turn cheaper. Configure the agent with audio.output: false for a session that never speaks.
API requests
The api_request meter counts calls to the external REST API. Every realtime route is deliberately exempt from it — session start, dial, and verify all emit no api_request event, because a realtime session is billed by the minutes it runs rather than by the handful of calls that set it up. What the meter does count is the rest of the external API.
Provider costs
The voice_provider_cost meter records the session's priced provider usage at
teardown. Your plan determines how provider usage is billed alongside session
minutes. It includes the voice model, a delegated model when used, and opted-in
speaker diarization. The price is stored for the session;
a later rate change does not reprice completed usage.
Speaker diarization
The speaker log tool adds usage-based provider costs for audio streamed to the transcription provider. Usage is summed across room tracks, including silence, rather than counted by tool calls or identified speakers. Provider rates can change; consult your billing dashboard for current charges.
The diarization share appears in the recording's cost details and is included once in the provider cost total. A local diarization backend has no external provider charge. If the tool is omitted or rejected before audio streaming, there is no diarization charge.
Tool calls
There is no per-invocation tool-call meter. Calling a client handler or dispatching a server tool does not itself create a tool-call charge. Model usage and the speaker log's continuous transcription can still incur provider costs.
Live usage from the session
Billing is by the meters above, but each session also reports its own consumption as it runs: the cosmo.usage event carries cumulative token usage for the live session, split by direction and modality (text / audio / image / cached input). The event itself is not an invoice; provider token usage is priced into the provider-cost meter at teardown. Use it for cost observability: correlate it with session length to see which agent designs burn model capacity, or surface it in an admin UI next to the wall-clock counter. Each event supersedes the previous one, and a provider that reports no usage emits none — absence is not zero.
Usage review
Usage meters are broken down by billing period on the Developer platform → Usage page. See Usage dashboard.
Pricing
Usage is billed according to your plan. See the dashboard for current rates and limits.