Speko Docs

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

  1. 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_tokens for LLM calls — and checks it against your available credit and concurrency limits.
  2. 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.
  3. 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.append is 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

LimitApplies toWhen exceeded
Credit limitorganization402 insufficient_credit (relay) / 402 credit_exhausted (control plane)
Monthly spend limitorganizationsame as credit exhaustion, resets monthly
Concurrency limitorganization429 concurrency_exhausted / 429 quota_exhausted

The dashboard's usage view shows requests, failures, failovers, latency percentiles, and per-model breakdowns in near real time.

On this page