Models
GET /v1/models
List all available models with their capabilities, modalities, and cost information.
Headers
| Header | Required | Description |
|---|---|---|
Authorization |
Yes | Bearer <api-key-or-jwt> |
Request
No request body. This is a GET endpoint.
Examples
curl https://api.quantized.us/v1/models \
-H "Authorization: Bearer sk-quantized-YOUR-KEY"
import httpx
response = httpx.get(
"https://api.quantized.us/v1/models",
headers={"Authorization": "Bearer sk-quantized-YOUR-KEY"},
)
models = response.json()["data"]
for model in models:
print(f"{model['id']}: {model['name']}")
from openai import OpenAI
client = OpenAI(
api_key="sk-quantized-YOUR-KEY",
base_url="https://api.quantized.us/v1",
)
models = client.models.list()
for model in models.data:
print(model.id)
Response
The response follows the OpenAI list envelope: a top-level object with "object": "list" and a data array of model objects.
{
"object": "list",
"data": [
{
"id": "openai/gpt-4.1-mini",
"object": "model",
"owned_by": "openai",
"name": "GPT 4.1 Mini",
"description": "Fast and cheap model with 1M token context window.",
"model_author": "openai",
"logo_url": "https://.../openai.svg",
"input_modality": {
"text": true,
"image": true,
"audio": false,
"video": false
},
"output_modality": {
"text": true,
"image": false,
"audio": false,
"video": false
},
"context_limits": {
"max_context": 1047576,
"max_input": null,
"max_output": 32768
},
"knowledge_cutoff": "2024-04-01",
"is_open_weights": false,
"status": "active",
"supported_features": ["tool_calls", "structured_output", "attachments", "temperature"],
"cost": {
"prompt": 0.4,
"completion": 1.6,
"cache_read": 0.1
}
}
]
}
Response fields
| Field | Type | Description |
|---|---|---|
object |
string | Always "list" |
data |
array | List of model objects |
Each entry in data contains:
| Field | Type | Description |
|---|---|---|
id |
string | Model identifier (use this in the model field of requests) |
object |
string | Always "model" |
owned_by |
string or null | Model owner (same as model_author) |
name |
string | Human-readable model name |
description |
string or null | Model description |
model_author |
string | Model creator (e.g., openai, anthropic) |
logo_url |
string or null | Author logo, for rendering a model picker |
input_modality |
object | Supported input types: text, image, audio, video |
output_modality |
object | Supported output types: text, image, audio, video |
context_limits |
object or null | max_context, max_input, max_output in tokens. Any of the three can be null |
knowledge_cutoff |
string or null | Training cutoff as YYYY-MM-DD |
is_open_weights |
boolean | Whether the weights are publicly available |
status |
string | active or deprecated |
supported_features |
array or null | Supported capabilities. Current values: tool_calls, reasoning, attachments, temperature, structured_output, embeddings, bedrock_embeddings, gemini_embeddings |
cost |
object | Rates in USD per million tokens, or per image. Shape varies — see below |
Deprecated models
status is deprecated when the author has announced a retirement but the model is still served. It keeps working, and it still appears in this list. Treat it as a signal to migrate rather than an error.
Cost shapes
cost is not a fixed schema. Read the keys that are present rather than assuming any of them:
| Key | Meaning | Appears on |
|---|---|---|
prompt |
Per million input tokens | Token-priced models |
completion |
Per million output tokens | Token-priced models |
cache_read |
Per million cached input tokens | Models with prompt caching |
cache_write |
Per million tokens written to cache | Anthropic-style caching |
prompt_batch |
Discounted input rate for a provider’s batch endpoint | Gemini embeddings (half the prompt rate) |
per_image |
Flat rate per generated image | Imagen |
cost can also be {}, meaning the catalog carries no rate for the model. That is not the same as free: the provider adapter computes the charge and reports it as usage.credits_used on the response. Always bill against usage.credits_used rather than deriving cost from this field.
This response does not say which provider serves a model, so it cannot be used to check whether a model is reachable through a particular X-Quantized-Provider pin. See Providers.
Errors
| Status | Condition |
|---|---|
401 |
Invalid or missing API key |