Models
Browse the TTS and STT models available through AllModels.
List models
/v1/modelsNativeReturns available TTS and STT models, including supported providers and aliases.
Fetch models in JavaScript
const response = await fetch("https://api.allmodels.io/v1/models");
const catalogue = await response.json();
const model = catalogue.tts.find(({ id }) => id === "elevenlabs/eleven-turbo-v2-5");
console.log(model.providers);The response groups models into tts and stt. Each model includes its accepted aliases and the providers that support it.
Response structure
{
"tts": [
{
"id": "elevenlabs/eleven-turbo-v2-5",
"aliases": ["elevenlabs/eleven_turbo_v2_5"],
"providers": [
{
"id": "elevenlabs",
"modelId": "eleven_turbo_v2_5",
"streaming": true,
"synchronous": true,
"pricing": {
"currency": "usd",
"unit": "1000 characters",
"unitPrice": "0.0394359"
}
},
{
"id": "fal",
"modelId": "fal-ai/elevenlabs/tts/turbo-v2.5",
"streaming": true,
"synchronous": true
}
]
}
],
"stt": [
{
"id": "openai/whisper-large-v3",
"aliases": ["groq/whisper-large-v3"],
"providers": [
{
"id": "groq",
"modelId": "whisper-large-v3",
"streaming": true,
"synchronous": true,
"batch": false,
"pricing": {
"currency": "usd",
"unit": "minute",
"unitPrice": "0.00633",
"requestPrice": "0.001055"
}
}
]
}
]
}| Field | Meaning |
|---|---|
tts / stt | Models grouped by capability. |
id | The {author}/{modelName} slug to send to AllModels. |
aliases | Other accepted names for the model. |
providers | Providers that support the model, in default order. |
providers[].id | The provider ID used in provider preferences. |
providers[].modelId | The model ID used by that provider. |
providers[].pricing | Resolved customer price for the provider-model binding. currency is always "usd"; unit is "1000 characters" for TTS or "minute" for STT; unitPrice is a decimal string rounded to at most 6 significant digits (half up); optional requestPrice is a fixed per-request fee, present only when the binding carries one. Absent when the binding is unpriced. |
streaming / synchronous | Supported TTS request types. |
streaming / synchronous | Supported STT request types. synchronous is a single blocking file-transcription request, including providers that queue it internally. |
batch | Orthogonal STT flag: the provider processes the synchronous file request via an internal queue. Discovery metadata only — not a separate request type, and not exclusive with synchronous. |
Pricing estimates
Billing granularity is unchanged: TTS usage is metered per character, and STT usage is metered per audio second, with audio duration rounded up to whole seconds. The quoted units and rounding are display-only; billing still meters exact usage at the exact catalog rates. Estimate cost as unitPrice / 1000 × characters for TTS or unitPrice / 60 × ceil(seconds) for STT, then add requestPrice once per request when present. Estimates may differ from billed amounts because of sub-credit rounding.
Model Selection
Models use {author}/{modelName} names such as deepgram/nova-3, elevenlabs/eleven-turbo-v2-5, and fish/s2-pro. You can use any supported model with either the ElevenLabs or OpenAI SDK.
import { writeFile } from "node:fs/promises";const response = await fetch("https://api.allmodels.io/oai/audio/speech", { method: "POST", headers: { Authorization: `Bearer ${process.env.ALLMODELS_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "model": "fish/s2-pro", "voice": "default", "input": "Hello from AllModels", "response_format": "mp3"})});if (!response.ok) throw new Error(`AllModels request failed: ${response.status}`);await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer()));