Measured MiniMax M3.1 Flash free listing versus MiniMax M3
On 2026-10-21 the free M3.1 Flash listing was $0 per million tokens. M3 was $0.30 in and $1.20 out. The Hub had no M3.1 repo.
On 2026-10-21 this note only reads two public endpoints: the OpenRouter model list, and a Hugging Face search for MiniMax-M3.1. The figures are list price, context, and whether a repo existed. They are not quality scores and they are not speed.
The pair to check is measured MiniMax M3.1 Flash at minimax/minimax-m3.1-flash:free, next to minimax/minimax-m3 on the same list.
Numbers on the list, 2026-10-21
OpenRouter pricing.prompt and pricing.completion are USD per token. The “per 1,000,000 tokens” rows are that field times 1000000. Both free-listing fields are 0, so input and output are $0. M3’s fields are 0.0000003 and 0.0000012, which is $0.30 in and $1.20 out. M3 also has input_cache_read 0.00000006, or $0.06 per 1,000,000 tokens. The free listing’s pricing object had no cache field that day.
| Field | M3.1 Flash free | MiniMax M3 |
|---|---|---|
| OpenRouter id | minimax/minimax-m3.1-flash:free | minimax/minimax-m3 |
| canonical_slug | minimax/minimax-m3.1-flash-20261019 | minimax/minimax-m3-20260531 |
| context_length | 1000000 | 1048576 |
| top_provider.context_length | 1000000 | 524288 |
| max_completion_tokens | 524288 | 512000 |
| pricing.prompt (USD/token) | 0 | 0.0000003 |
| pricing.completion (USD/token) | 0 | 0.0000012 |
| Input, per 1,000,000 tokens | $0 | $0.30 |
| Output, per 1,000,000 tokens | $0 | $1.20 |
| input_cache_read, per 1,000,000 tokens | field absent that day | $0.06 |
| created (UTC) | 2026-10-19 03:12:49 unix 1792379569 | 2026-05-31 16:36:14 unix 1780245374 |
| reasoning.mandatory | true | false |
| hugging_face_id | null | MiniMaxAI/Minimax-M3 |
| Hugging Face that day | search=MiniMax-M3.1 returned 0 repos | MiniMaxAI/MiniMax-M3 downloads 200238, likes 1586 createdAt 2026-06-02 |
How to read the same fields again
- 1
Pull the model list
Request https://openrouter.ai/api/v1/models and find ids
minimax/minimax-m3.1-flash:freeandminimax/minimax-m3. Do not swap in another MiniMax id. - 2
Multiply the per-token price by one million
Read pricing.prompt and pricing.completion. The unit is USD per token. Multiply by 1000000 for USD per 1,000,000 tokens. If M3 includes input_cache_read, scale that field the same way.
- 3
Search the Hub
Request https://huggingface.co/api/models?search=MiniMax-M3.1 . On 2026-10-21 that returned 0 rows, including with author MiniMaxAI. The weights were not on the Hub that day. The M3 repo in the MiniMax-M3 search is MiniMaxAI/MiniMax-M3.
USD per token × 1000000 = USD per 1,000,000 tokens
minimax/minimax-m3.1-flash:free
pricing.prompt 0 → $0
pricing.completion 0 → $0
minimax/minimax-m3
pricing.prompt 0.0000003 → $0.30
pricing.completion 0.0000012 → $1.20
input_cache_read 0.00000006 → $0.06Two context figures in one record
Model context_length is 1000000 for Flash and 1048576 for M3. On the same M3 record, top_provider.context_length is 524288. Flash’s provider context stays 1000000. max_completion_tokens is 524288 for Flash and 512000 for M3. Those are listing fields, not a measured generation speed.
$0 covers two price fields
That day the free listing’s pricing.prompt and pricing.completion were both 0. expiration_date was null and per_request_limits was null. The payload does not state a quota or how long the zero price lasts, so this note does not add one.
The two contexts are different fields
Read context_length, then top_provider.context_length. For M3 those are 1048576 and 524288.
The reasoning flag is a field, not a score
On the free listing, reasoning.mandatory is true, default_effort is max, and supported_efforts are max, xhigh, high, medium, and low. On M3, reasoning.mandatory is false. This note does not score quality or latency.
No M3.1 weights on the Hub that day
OpenRouter leaves hugging_face_id empty on the free listing. On M3 the string is MiniMaxAI/Minimax-M3. The Hub search for MiniMax-M3 returns the repo id MiniMaxAI/MiniMax-M3, with downloads 200238, likes 1586, and createdAt 2026-06-02. The MiniMax-M3.1 search returned an empty list, so the weights were not on the Hub that day. Both records list inputs text, image, and video, and output text.
These figures describe the public lists only. To put the table on one screen with someone else, follow create and join a room. The room does not serve these models.
Does free mean the price stays $0?
This measurement cannot say that. On 2026-10-21 pricing.prompt and pricing.completion were 0, and expiration_date was null. Null means the list had no expiry, not that the price cannot change.
Why does M3 have two context numbers?
Model context_length is 1048576. In the same object, top_provider.context_length is 524288. Flash is 1000000 on both. Cite the field name with the number.
Where are the weights?
On 2026-10-21 a search for MiniMax-M3.1 returned no repo, and the free listing’s hugging_face_id was empty. The weights were not on the Hub that day. The M3 repo is MiniMaxAI/MiniMax-M3.
Were quality or speed measured?
No. There is no private benchmark here and no latency figure. Marketing lines in the OpenRouter description, and third-party scores on the payload, are left out.