OpenFill is in development. Inference is off, but is tested end to end, and will switch on at launch. All data currently on the site is for live testing: it will be erased at launch.

Skip to content
openfill

Models

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

Clearing level · every market · preview

ModelLevel nowContextMax outputRatio
market-preview preview$0.0430262,144128,0001: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 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 shows the level, uptime and volume of each side by side, and the market page 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 has the rules.

ModelCache-hitCache-missOutputContextMax output
kimi-k3$0.1000$1.0000$5.00001,048,576128,000
glm-5.3$0.0750$0.7500$2.25001,048,576128,000
glm-5.3-flash$0.0200$0.1000$0.30001,048,576128,000
deepseek-v4.1-flash$0.0100$0.1000$0.40001,048,576128,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 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 has every field.

bash
curl https://api.openfill.ai/v1/models
Response
{"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.