Models
GET /v1/models — list every model your key can access.
GET /v1/models returns every model your key can route to. Use it to
populate model pickers, validate user input, or sync your catalog cache.
List all models
curl https://api.throughputs.dev/v1/models \
-H "Authorization: Bearer $THROUGHPUTS_API_KEY"type Model = {
id: string; // slug, used in `model` field of requests
name: string;
provider: {
id: string;
name: string;
slug: string;
};
modality: Array<"text" | "image" | "audio" | "embedding" | "code" | "multimodal">;
capabilities: Array<"streaming" | "function-calling" | "vision" | "json-mode" | "tool-use" | "fine-tuning">;
contextWindow: number;
parameters: string | null; // e.g. "175B"
pricing: {
inputPerMillion: number;
outputPerMillion: number;
imagePerUnit: number | null;
unitLabel: string | null;
free: boolean;
};
latencyMs: { p50: number; p95: number } | null;
throughputTokensPerSecond: number | null;
qualityScore: number | null; // 0–10
popularityRank: number | null; // 1 = most popular
status: "active" | "beta" | "deprecated";
};
type ListResponse = {
object: "list";
data: Model[];
};Get a single model
curl https://api.throughputs.dev/v1/models/gpt-4o \
-H "Authorization: Bearer $THROUGHPUTS_API_KEY"Returns a single Model object.
Filter on the client
The API doesn't filter — it returns everything. Filter client-side for model pickers:
const response = await fetch("https://api.throughputs.dev/v1/models", {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await response.json();
const chatModels = data.filter((m) => m.modality.includes("text"));
const visionModels = data.filter((m) => m.capabilities.includes("vision"));
const cheapModels = data
.filter((m) => m.pricing.inputPerMillion < 1)
.sort((a, b) => a.pricing.inputPerMillion - b.pricing.inputPerMillion);Status lifecycle
active— production-ready, default for all routing decisions.beta— preview, may change or be withdrawn. Usable but not for SLA-covered workloads.deprecated— will be removed. Stop using it; theX-Throughputs-Deprecationheader on any response served by a deprecated model includes the sunset date.