# Models

> The Markdown form of https://openfill.ai/docs/models. The index of every docs page is https://openfill.ai/llms.txt, and every page in one file is https://openfill.ai/llms-full.txt.

Each market model has its own clearing level, quote, order book and charts, and each fixed-price model has three published prices. This is the list a request can name, read live.

## What is served

The level of every market, live: GET https://api.openfill.ai/v1/market/levels.

| Model | Context | Max output | Ratio |
| --- | --- | --- | --- |
| [market-preview](https://openfill.ai/market?model=market-preview) preview | 262,144 | 128,000 | 1:10:20 |

Context and max output in tokens. The ratio is the weight of a cache-hit, a cache-miss and an output token in the price.

`market-preview` is a preview of the market, which opens soon: the level shown for it is simulated until then, a request to it answers `400 model_preview` with nothing charged, and the [fixed-price models](https://openfill.ai/docs/models#fixed-price) below run today.

A request that names no `model` runs on `market-preview`. A deprecated model leaves the catalog while inference answers `400 model_deprecated`. A model removed from the gateway answers `404 model_not_found`.

Every market has a page: [the models board](https://openfill.ai/models) shows the level, uptime and volume of each side by side, and [the market page](https://openfill.ai/market) shows one market's level, quote, chart and calculator. Each model also has its own page at `/models/<id>`, under its own id, with the datasheet, the live level or the fixed prices, the probe results and the first call in every tool; an alias's address redirects there.

### Fixed price

A fixed-price model is sold at three published prices per 1M tokens, one each for cache-hit input, cache-miss input and output. A request to it is charged its measured tokens of each kind at those prices; price limits apply to market models. The [pricing page](https://openfill.ai/docs/pricing#fixed-price) has the rules.

| Model | Cache-hit | Cache-miss | Output | Context | Max output |
| --- | --- | --- | --- | --- | --- |
| [kimi-k3](https://openfill.ai/models/kimi-k3) | $0.1000 | $1.0000 | $5.0000 | 1,048,576 | 128,000 |
| [glm-5.3](https://openfill.ai/models/glm-5.3) | $0.0750 | $0.7500 | $2.2500 | 1,048,576 | 128,000 |
| [glm-5.3-flash](https://openfill.ai/models/glm-5.3-flash) | $0.0200 | $0.1000 | $0.3000 | 1,048,576 | 128,000 |
| [deepseek-v4.1-flash](https://openfill.ai/models/deepseek-v4.1-flash) | $0.0100 | $0.1000 | $0.4000 | 1,048,576 | 128,000 |

Prices per 1M tokens of each kind, as `GET /v1/models` publishes them. Context and max output in tokens.

## What each column means

### Level

The price a market model is clearing at, in USD per 1M input tokens at the reference mix (90% cached, 2% output). It moves with load and walks down to 0 once nobody is waiting; the duration depends on market conditions, so a market that has just emptied is cheap rather than free. A request is charged the level at the moment it runs, up to its price limit, or up to its quote when it locked the price.

### Context and max output

The context window in tokens, and the most output tokens one request can produce. `max_tokens` above the ceiling is clamped down to it without an error, so this column is how you learn the ceiling before hitting it. A request that sets no cap gets the whole ceiling.

### Ratio

The weight of a cache-hit input token, a cache-miss input token and an output token in the price, in that order. The level is one number; the ratio is how it is shared out across the three token kinds, and each market model sets its own. The [pricing page](https://openfill.ai/docs/pricing#unit) has the arithmetic.

## Ids and aliases

A model has one id, which its orders are keyed on, as are a market model's market and level, and it can answer to other ids as well. A request naming an alias runs on the model, and its order records the model's id. `GET /v1/models` lists an alias as its own entry with `x_alias_of` naming the model, so a client can fold the two.

The convention for a model is a dated id and a stable alias, both served. A configuration that carries the alias keeps working when the weights behind it change, and the dated id is there for anyone who needs to pin.

## Reading the list from code

`GET /v1/models` needs no key. It carries the pricing ratio and both lengths per model, and the reference mix that turns a level into per-token prices, so a client can price a request before sending it.

Each entry also carries `pricing`, which says how the model is sold: `{"type": "market"}` on a market model, and on a fixed-price model its three prices and their level, as the sample shows. A preview of the market carries `preview: true` as well. The [market data reference](https://openfill.ai/docs/api/market#models) has every field.

```bash
curl https://api.openfill.ai/v1/models
```

**Response**

```json
{"object": "list", "default": "market-preview",
 "reference_mix": {"cached_share": 0.9, "uncached_share": 0.1, "output_per_input": 0.02},
 "data": [{"id": "market-preview", "object": "model", "created": 1735689600, "owned_by": "openfill",
           "context_length": 262144, "max_output_length": 128000,
           "pricing_ratio": {"cached": 1, "uncached": 10, "output": 20},
           "pricing": {"type": "market"}, "preview": true},
          {"id": "kimi-k3", "object": "model", ...,
           "pricing": {"type": "fixed", "level": 0.29,
                       "usd_per_million": {"cached": 0.1, "uncached": 1, "output": 5},
                       "prompt": "0.000001", "completion": "0.000005", "input_cache_read": "0.0000001"}}]}
```

The level of every market in one call is `GET /v1/market/levels`, and the stream of them is `GET /v1/market/levels/stream`; a fixed-price model is in neither. Both are on the [market data reference](https://openfill.ai/docs/api/market).

Previous: [OpenAI compatibility](https://openfill.ai/docs/compatibility). Next: [Integrations](https://openfill.ai/docs/integrations).
