The problem
A voice agent runs three meters at once. An STT model bills per minute of audio, an LLM bills per token, and a TTS model bills per character. Route them through a gateway and a fourth layer sits on top, quoted in its own units. Working out what you actually pay, and what the gateway adds, means reading four pricing pages in three different units. This project puts them in one place, in the units vendors quote, with the date each rate was last checked. 38 providers, 1,213 priced models. 47 speech-to-text, 63 text-to-speech, 6 speech-to-speech, 2 voice activity detection, and 1,095 LLM.Direct versus gateway
The same model costs different amounts depending on how you reach it. Voice Prices records both, so the difference is visible rather than inferred.
This is not an argument against gateways. LLM rates pass through unchanged, which is why the median LLM difference is zero, and the discounted Scale tier is cheaper than Build/Ship on every model that has one. Gateways buy you one integration, one bill, and failover. The point is that the number should be visible when you choose.
Disclosure: Voice Prices is maintained alongside a voice infrastructure product (VoiceGateway). The dataset is open, the sources are cited, and it publishes its maintainer’s own markups on the same terms as everyone else’s.
Quick start
data.json and data_slim.json, each with a JSON Schema, under the repository’s licence. Use them directly if you do not want the Python package.
How to read these prices
How Fresh? explains whatverified, stale, imported, and seed mean on every voice row, and who is allowed to set them. Read it before you rely on a number.
Voice Prices is a fork of pydantic/genai-prices, extended with first-class voice pricing. Full attribution is in the repository README.