Billing and usage
How Speko meters, prices, and settles managed usage.
Post-paid by default
Managed usage on Speko is post-paid: nothing is charged before a request runs, usage is metered as it happens, and you are invoiced monthly for what was actually consumed. Your organization has a credit limit and an optional monthly spend limit; requests are refused with a 402 error when the projected cost of in-flight work would exceed remaining credit.
BYOK Relay routes and BYOK gateway sessions generate no Speko provider-usage charges — your provider bills you directly. Managed routes are metered and invoiced by Speko.
How a request is metered
- Admission. Before work starts, Speko computes a conservative ceiling for the request — audio duration for STT, character count for TTS, token estimates plus your
max_output_tokensfor LLM calls — and checks it against your available credit and concurrency limits. - Frozen prices. Unit rates are frozen per attempt when the attempt starts. If Speko fails over to another provider mid-request, the new attempt gets its own frozen rates; a price change can never reprice work already delivered.
- Usage reporting. Actual consumption (seconds transcribed, characters accepted, tokens in and out) is reported as the request runs and settles afterward. You are billed for reported usage, not for the admission ceiling.
What counts as usage
- STT — audio duration, in seconds.
- TTS — characters accepted for synthesis. On streaming TTS, characters count when an
input.appendis accepted; cancelling playback afterward does not refund them. - LLM — input tokens, cached input tokens, output tokens, and reasoning tokens, reported as mutually exclusive lines that always sum to the totals.
Every relay response carries Speko-Request-ID and Speko-Attempt-ID headers so you can correlate a line on your invoice with a specific request and attempt.
Limits
| Limit | Applies to | When exceeded |
|---|---|---|
| Credit limit | organization | 402 insufficient_credit (relay) / 402 credit_exhausted (control plane) |
| Monthly spend limit | organization | same as credit exhaustion, resets monthly |
| Concurrency limit | organization | 429 concurrency_exhausted / 429 quota_exhausted |
The dashboard's usage view shows requests, failures, failovers, latency percentiles, and per-model breakdowns in near real time.