[KongchangAI]
· 3 min read· 1,816 words

MiniMax M3.1 Flash Hands-On: How Reasoning Effort Determines Bug-Fixing Cost

MiniMax M3.1 Flash Hands-On: How Reasoning Effort Determines Bug-Fixing Cost

MiniMax M3.1 Flash hands-on: default max reasoning effort makes bug fixes ~7× costlier than the low setting.

MiniMax M3.1 Flash is live on AIHubMix at $0.165 input / $0.66 output per million tokens, roughly 43%–44% cheaper than M2.7 and M3. In a hands-on test on a two-bug Python billing function, all 215 hidden tests passed at both default max and low effort, but max averaged 6,673 output tokens, 56 seconds, and $0.0045 per fix, versus 889 tokens, 9.5 seconds, and $0.0006 at low. The key takeaway: per-token price is only half the story—migration code that omits reasoning_effort silently defaults to max, creating a hidden cost trap. Flash also lacks explicit cache_control, a Priority tier, and switchable thinking, and no official benchmarks exist.

MiniMax M3.1 Flash Hands-On: How Reasoning Effort Determines Bug-Fixing Cost

Bottom line first: MiniMax M3.1 Flash is now available on AIHubMix under the model ID minimax-m3.1-flash with token-based billing: $0.165 input / $0.66 output per million tokens. On a Python function repair task containing two bugs, it passed all 215 hidden tests at both reasoning effort settings. At the default setting, each fix averaged 6,673 output tokens and 56 seconds; switching to reasoning_effort="low" cut that to 889 tokens and 9.5 seconds. Cost dropped from $0.0045 to $0.0006 per fix.

If you're migrating from M2.7 or deciding between M3 and Flash, the per-token price is only half the story. The other half is determined by the reasoning effort setting.

MiniMax M3.1 Flash review source screenshot

From Anonymous Model to Official Release

M3.1 Flash first appeared anonymously. On September 23, it landed on OpenRouter and OpenCode under the name Space Bunny Alpha—free, 1M context, multimodal, with thinking always on. According to CellCog's timeline, it topped the OpenRouter daily chart, beating DeepSeekAd V4.1 Flash, and was the most-used model on OpenCode for five consecutive days. The community matched it to MiniMax via tokenizer before MiniMax made any official statement—X user cheaty's comparison found its text tokenizer "exactly identical to MiniMax M3," and other testers cross-validated the conclusion with 36/36 and 50/50 probe strings.

The official timeline:

DateEvent
September 23Space Bunny Alpha launches on OpenRouter and OpenCode
September 27MiniMax names it M3.1-Flash-Preview, making it the default model in MiniMax Code
September 30Token PlanAd becomes M Plan, incorporating M3.1 Flash
October 19M2.5/M2.7 closed to new users; plan requests routed to M3.1 Flash
October 19minimax-m3.1-flash launches on AIHubMix with pay-per-token billing

MiniMax's model list has now dropped the "Preview" label. The official name is MiniMax-M3.1-Flash, positioned as "a frontier multimodal coding model with a 1M context window and adjustable thinking depth." Every AIHubMix response reports this upstream name.

Tokenizer fingerprinting is a technique for identifying a model without relying on official announcements. Because different models use tokenizers with different vocabulary sizes, subword segmentation rules, and special token IDs during training, the same text produces different token counts and ID sequences across tokenizers. Researchers feed probe strings (such as words of specific lengths or punctuation combinations) into an anonymous model, count its tokens or compare the returned token IDs against the tokenizer signatures of known models, and thereby infer the anonymous model's identity with high confidence. cheaty's observation—that Space Bunny Alpha's text tokenizer is exactly identical to MiniMax M3—rests on precisely this principle, and other testers' cross-validation with 36/36 and 50/50 probe strings further rules out coincidence.

Spec Differences vs. M2.7

ItemMiniMax M2.7MiniMax M3.1 Flash
Context window204,8001,000,000
max_tokens (recommended/max)65,536 / 204,800131,072 / 524,288
Input typesTextText, image, video
Thinking modeAlways on, no levelsAlways on, five levels
Default thinking depth—max
Explicit cache_controlSupported, writes billedNot supported
Default top_p0.90.95
StatusRetiring November 18, 2026Current flagship

What stays the same: both think on every request, both support MiniMax's Anthropic-compatible and OpenAI-compatible APIs, and both accept only tool_choice: auto.

The key new knob is reasoning effort. MiniMax's text generation guide lists five levels—low, medium, high, xhigh, and max—with max used when the field is omitted. M2.7 code doesn't send this field, so after switching models, every request runs at max effort—the most easily overlooked cost trap in migration.

reasoning_effort is a field in OpenAI-compatible APIs that controls the model's thinking depth (chain-of-thought length), typically accepting enum values like low, medium, and high, with some vendors adding more levels. It doesn't change model weights; instead, through system prompts or decoding strategies, it guides how many internal reasoning tokens the model invests before generating its final answer. For models billed by output tokens, this field directly determines cost: the higher the level, the more hidden thinking tokens the model generates, and the higher the bill and latency. M3.1 Flash extends the field to five levels and defaults to max, meaning requests that don't explicitly pass the parameter run at the deepest thinking level—a cost multiplier easily overlooked in migration code.

Price Comparison: Where Flash Is Cheaper

Price per million tokens, verified October 19. Official prices come from MiniMax's pay-as-you-go page; M3's price includes its "permanent 50% off" label.

ModelOfficial input/outputAIHubMix input/outputAIHubMix cache read
MiniMax M2.7$0.30 / $1.20$0.2958 / $1.1832$0.05916
MiniMax M3.1 FlashNot published$0.165 / $0.66$0.0165
MiniMax M3$0.30 / $1.20$0.288 / $1.152—

On AIHubMix, Flash is about 44% cheaper than M2.7 ($0.165 ÷ $0.2958 ≈ 0.56) and about 43% cheaper than M3 ($0.165 ÷ $0.288 ≈ 0.57), with the same ratios on the output side. M3's official price doubles once input exceeds 512K tokens, while AIHubMix lists a single flat price for Flash.

Explicit cache_control refers to the Anthropic-compatible API feature that lets callers mark specific prompt segments with cache_control to write them to the server-side cache, with subsequent requests that hit the cache billed at a discounted read price. It suits repeated prefixes like long system prompts and fixed documents and can significantly cut input costs. MiniMax M3.1 Flash doesn't support this field, but the API still automatically reports prompt_tokens_details.cached_tokens, indicating automatic prefix caching exists server-side; the difference is that callers can't manually control what gets cached or guarantee a hit. For teams relying on explicit caching to compress long-context costs, this difference needs to factor into model selection.

Hands-On: A Real Two-Bug Repair Task

Prerequisites: An AIHubMix key configured in the AIHUBMIX_API_KEY environment variable, and the openai Python SDK installed. AIHubMix's quick-start docs cover both steps.

Task design: A billing function billable_days(start, end, pauses) with two bugs—pause intervals extending past the billing period's end add an extra day, and overlapping pauses get deducted twice. The prompt describes the symptoms and asks for only the corrected function in return. A local test harness then runs 215 hidden cases. Each setting was run three times via Chat Completions on October 19. The following data comes from AIHubMix's own measurements and has not yet been reproduced by third parties.

The request code is below; cost is computed from the usage field:

import os
from openai import OpenAI

client = OpenAI(base_url="https://aihubmix.com/v1", api_key=os.environ["AIHUBMIX_API_KEY"])
PRICE_IN, PRICE_OUT, PRICE_CACHE = 0.165, 0.66, 0.0165  # AIHubMix, per 1M tokens

def run(prompt, effort=None):
    extra = {"reasoning_effort": effort} if effort else {}
    r = client.chat.completions.create(
        model="minimax-m3.1-flash",
        max_tokens=32768,
        messages=[{"role": "user", "content": prompt}],
        **extra,
    )
    u = r.usage
    cached = (u.prompt_tokens_details.cached_tokens or 0) if u.prompt_tokens_details else 0
    cost = ((u.prompt_tokens - cached) * PRICE_IN + cached * PRICE_CACHE
            + u.completion_tokens * PRICE_OUT) / 1e6
    return r.choices[0].message.content, u.completion_tokens, cost

Results across three runs:

SettingAvg output tokensAvg timeAvg cost per fixTests passed
Omit effort (= max)6,67356 s$0.0045215/215 every time
effort=low8899.5 s$0.0006215/215 every time

The arithmetic for the default row: 464 prompt tokens (about 192 cached) plus 6,673 output tokens. (272 × $0.165 + 192 × $0.0165 + 6,673 × $0.66) ÷ 1,000,000 ≈ $0.0045. Over 1,000 such fixes, the default setting costs about $4.45 versus about $0.64 at low.

Variance is considerable: default-level output tokens ranged from 4,589 to 9,680, and time from 39 to 82 seconds. Another article in this series measured all five effort levels.

Five Failure Modes When Migrating

No effort set means max. If your client never sends the effort field, prepare for long turns and hefty thinking bills. Fix: send reasoning_effort on every request, starting with low.

You can't skip thinking. M3 can run with thinking off; Flash can't. In testing, short classification prompts consumed almost no thinking tokens (0 to 6), but zero consumption isn't guaranteed. If a code path requires guaranteed non-thinking calls, stay on M3.

No Priority tier. Flash rejects the service_tier field. If you rely on M3's Priority tier (1.5× price) for guaranteed latency, there's no equivalent here.

AIHubMix doesn't list video input yet. MiniMax's docs state video support, but AIHubMix currently lists only text and image. Base64 images and image URLs both worked in testing.

Prompts must be specific. One early Space Bunny user called it "insanely fast, but it needs clear, specific instructions or it gets lazy." Spell out the expected output and the checks the model should run.

What Can't Be Verified Yet

Quality comparison with M3. MiniMax published no benchmarks for M3.1 Flash, and Artificial Analysis hasn't listed it either. M3 has MiniMax's self-reported SWE-Bench Pro 59.0% and an Artificial Analysis Intelligence Index of 29.2. Any Flash benchmark table you see is either M3 data or unsourced.

MiniMax's own per-token price. Not published as of October 19.

Harder tasks. This task was bounded, and low sufficed. Three runs per setting can't tell you where higher effort levels start paying off.

Open weights. MiniMax says it plans to release them, but no date. M3's weights are already on Hugging Face.

SWE-Bench Pro is an extended version of the SWE-Bench family, used to evaluate a model's ability to resolve issues in real software repositories. Compared with the original SWE-Bench, it broadens task sources and difficulty coverage, requiring the model to locate defects in a given repository, modify code, and make hidden tests pass, with the pass rate as the score. The benchmark is widely used for head-to-head comparisons of coding models, but scores are typically run and published by vendors themselves, and reproduction conditions (such as whether retries are allowed or the test harness version) affect comparability. The article notes that M3's SWE-Bench Pro 59.0% is self-reported by MiniMax, while Flash has no corresponding data, so it can't be used to judge the quality gap between the two on real repair tasks.

Should You Switch?

M Plan / Token Plan users on M2.5 or M2.7: You're already in it—MiniMax rerouted model names starting today. Re-run your evals with the effort setting included.

Pay-as-you-go M2.5 or M2.7 users: You have until November 18. On AIHubMix, change the model ID and add reasoning_effort.

Teams building coding agents on M3: Try Flash's low/medium levels on a small slice of traffic. AIHubMix's comparison page shows both price cards, and the model page has the ID and endpoint.

When to stay on M3: You need open weights, switchable thinking, independent benchmark data, or the Priority tier.

#MiniMax M3.1 Flash#reasoning_effort#AIHubMix#AI coding model pricing#bug fixing cost#tokenizer fingerprinting#SWE-Bench Pro
Share:

Related articles