Models
On this page
The model list tells a client which IDs it can pass as model and how many tokens each one can take. It follows the OpenAI list format, with Mortar's own details in a mortar object on each entry.
List models
/v1/models
Lists every model in the catalog, including models that aren't deployed yet. Needs an API key.
Example
curl https://api.mortar.one/v1/models \
-H "Authorization: Bearer $MORTAR_API_KEY"{
"object": "list",
"data": [
{
"id": "Qwen/Qwen2.5-7B-Instruct",
"object": "model",
"created": 1767225600,
"owned_by": "Alibaba Qwen",
"max_model_len": 4096,
"permission": [],
"mortar": {
"name": "Qwen 2.5 7B Instruct",
"family": "Alibaba Qwen",
"size": "7B dense",
"context": "32K",
"quant": "BF16 · AWQ INT4",
"gpu": "1× L4 or A10G",
"engine": "vLLM",
"badge": "Popular",
"available": true,
"costPerMillionInput": 0.0313,
"costPerMillionOutput": 0.2373,
"costPerMillionCacheRead": 0.00313,
"costPerMillionCacheWrite": 0.039125
}
}
]
}Response
| Field | Type | Description |
|---|---|---|
object |
string | Always list. |
data |
array | One entry per model in the catalog. |
data[].id |
string | The ID to pass as model. |
data[].object |
string | Always model. |
data[].created |
integer | A fixed timestamp, the same for every model. |
data[].owned_by |
string | The model's family, such as Alibaba Qwen. |
data[].max_model_len |
integer | The context window this deployment serves, in tokens. Prompt and reply together must fit in it. |
data[].permission |
array | Always empty. |
data[].mortar.name |
string | The display name. |
data[].mortar.family |
string | The model family. |
data[].mortar.size |
string | Parameter count and architecture, such as 7B dense. |
data[].mortar.context |
string | The longest context the model itself supports, such as 32K. |
data[].mortar.quant |
string | The precisions Mortar has tested, such as BF16 · FP8. |
data[].mortar.gpu |
string | The GPU the model is sized for. |
data[].mortar.engine |
string | The serving engine: vLLM or SGLang. |
data[].mortar.badge |
string or null | A catalog label, Popular or Coming soon, or null. |
data[].mortar.available |
boolean | Whether the model can serve requests now. Requesting one that can't fails with model_not_available. |
data[].mortar.costPerMillionInput |
number | Sample price for a million prompt tokens, in US dollars. |
data[].mortar.costPerMillionOutput |
number | Sample price for a million completion tokens, in US dollars. |
data[].mortar.costPerMillionCacheRead |
number | Sample price for a million prompt tokens read from the prefix cache: a tenth of the input price. |
data[].mortar.costPerMillionCacheWrite |
number | Sample price for a million prompt tokens processed and written to the prefix cache, so a later request can read them: 1.25 times the input price. |
Prices are sample pricing, not a quote. Mortar derives them from on-demand GPU list prices and measured throughput at 65% utilization. Prompt caching explains how cache reads and writes add up, and the model catalog shows each model's input price at a cache hit rate you choose.
Context windows
Two fields describe context, and they answer different questions:
mortar.contextis the most the model can handle.max_model_lenis what this deployment serves. Budgetmax_tokensagainst it.
They differ when a replica is started with a shorter window than the model allows. Qwen/Qwen2.5-7B-Instruct supports 32K tokens but is served here with 4,096, so a request with a 4,050-token prompt fails even though the model could read it. Chat completions explains how Mortar fits max_tokens into the window.