MiniMax M Plan or Token Plan Quota Reached: Check the Windows and Keep Coding
A practical troubleshooting guide for a stopped coding session: identify M Plan versus a retained Token Plan, read the independent usage windows, distinguish throttling from exhausted allowance, and choose waiting, eligible Credits, or a separate pay-as-you-go API path.
Contents

When a MiniMax-powered coding tool suddenly stops, do not start rotating tools or keys at random. First determine whether you have exhausted an M Plan usage window, hit a temporary request rate limit, are still on a retained Token Plan, or configured the wrong key type. That diagnosis tells you whether to wait, use eligible Credits, or move only the remaining text-coding work to a separate pay-as-you-go API.
Use this decision table first
| What you see | What to check | Best first action |
|---|---|---|
| The console shows no allowance left in the 5-hour or weekly window | Your plan name and each window’s end time | Wait for the relevant reset, or check whether Credits cover the capability |
| The console still shows allowance, but calls stop after a burst of requests | Request frequency, concurrency, and temporary peak-hour throttling | Reduce frequency or concurrency and retry later |
| The account still says Token Plan | Whether it is a retained subscription and whether you have upgraded | Follow the retained-plan notice instead of assuming all M Plan rules apply |
| A tool starts deducting account balance after a key change | Whether it is using a Subscription Key or a pay-as-you-go API key | Stop mixing key types and configure the intended billing path |
| You must continue text coding immediately | Whether separate billing is acceptable and no M Plan-only benefit is required | Configure an independent model provider with its own key, endpoint, and model ID |
These failures can look similar in a coding client, but they have different causes. The safest order is plan and windows first, key type second, provider switch last.
M Plan has independent 5-hour and weekly windows
MiniMax’s M Plan usage rules describe two automatic reset windows:
- Text, image, audio, and other non-video models require remaining allowance in both a 5-hour window and a weekly window lasting 7 days.
- Video models are subject only to the weekly window, not the 5-hour window.
- Both windows begin with first use. At the end of a window, allowance returns to the full limit for the tier; the next use starts a new window.
- The windows reset independently. A 5-hour reset does not reset weekly usage.
- Unused allowance does not accumulate into the next window or carry into the next billing period.
That is why waiting five hours may not restore access: the weekly window can still be exhausted. The opposite problem is also possible—the usage bars can show room while a temporary request-rate limit blocks calls.
All supported tools share the same M Plan usage
M Plan allowance is not issued separately to each client. Usage in MiniMax Code and usage from supported tools connected with the same Subscription Key count toward the same plan limits.
Switching from one coding client to another, opening a new session, or pasting the same Subscription Key into another tool therefore does not create fresh quota. Check the MiniMax usage page for the plan, windows, Credits, and usage history. With MiniMax CLI, you can also run:
mmx quota
This command shows M Plan usage and remaining quota. It is a better diagnostic than guessing from a client’s generic error message.
A request rate limit is not an exhausted usage window
MiniMax treats usage limits and request-rate limits as separate controls. Too many calls in a short period, high concurrency, or dynamic controls during peak traffic can temporarily block requests even when allowance remains.
Reduce request frequency and concurrency, then retry later. Do not buy Credits, upgrade, or replace keys solely because of a brief throttle. Move to the quota-exhausted branch only when the console shows that the 5-hour or weekly allowance is actually depleted.
Confirm whether the account is on M Plan or a retained Token Plan
After MiniMax introduced M Plan, Token Plan stopped being available for new purchases, while existing subscribers could keep their plan or upgrade. The account label matters:
- If Plan Details shows M Plan, use the independent-window, shared-usage, and Credit rules described above.
- If it still shows Token Plan, read Existing Token Plan subscribers and check the retained subscription and auto-renewal state.
- An upgrade is one-way: the official notice says you cannot return to Token Plan after upgrading, and the new M Plan tier then controls models, limits, benefits, and renewal terms.
Do not infer the current account rules from an older blog post. Read the name and status shown in Plan Details before deciding what should reset.
When allowance is truly exhausted, choose by dependency
1. You need subscription-only capabilities: wait for the correct reset
Waiting is the cleanest choice when the task depends on an M Plan-only model, MiniMax Code membership behavior, or the same Subscription Key workflow. Check whether the 5-hour window, the weekly window, or both are depleted, and schedule the next run around the console’s displayed end time.
While waiting, trim irrelevant files, start a focused session, and divide a large task into smaller checkpoints. Those steps do not reset allowance early, but they can reduce consumption in the next window.
2. Your account has Credits: confirm that the task is eligible
Included M Plan usage is consumed first. After the limit is reached, available Credits can cover eligible overflow, but credit packs apply only to the models and capabilities they support.
Check the usage page for the Credit balance, expiration, and applicable capability. Do not assume that the presence of Credits guarantees every model or operation can continue.
3. You must continue text coding now: use a separate pay-as-you-go path
For text coding that does not require M Plan-only benefits, a separate API provider can keep the task moving. It has its own key and billing and does not restore an M Plan window, transfer Credits, or move MiniMax Code membership benefits.
MiniMax itself separates a standard pay-as-you-go API key from a Subscription Key; the two are not interchangeable. Apply the same separation with any external provider: one provider configuration should use that provider’s own key, Base URL, and exact model ID.
Example: an independent OpenCode path through BetterToken
BetterToken is one optional provider example, not an M Plan refill. As of October 10, 2026, its current model catalog lists the exact model ID MiniMax-M3, and its OpenCode guide uses the OpenAI-compatible Base URL https://www.bettertoken.ai/v1.
MiniMax’s model documentation says MiniMax-M3.1-Flash-Preview is currently available only through M Plan and MiniMax Code. Do not copy that preview ID into an external provider configuration; use the exact ID offered by that provider.
Configure it without mixing keys
- Create a BetterToken API key in your BetterToken account. Do not paste a MiniMax Subscription Key.
- In OpenCode, run
/connect, choose Other, set the provider id tobettertoken, and enter the BetterToken key in the credential prompt. - Create
opencode.jsonin the project root, or update the global file at~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"model": "bettertoken/MiniMax-M3",
"provider": {
"bettertoken": {
"npm": "@ai-sdk/openai-compatible",
"name": "BetterToken",
"options": {
"baseURL": "https://www.bettertoken.ai/v1"
},
"models": {
"MiniMax-M3": {
"name": "MiniMax-M3"
}
}
}
}
}
- Restart OpenCode, select
bettertoken/MiniMax-M3, and send a short coding question. - A normal response confirms that the separate API path is configured. It does not mean the MiniMax subscription allowance has reset or moved.
See the BetterToken OpenCode guide for the complete client setup, and verify the model ID in the current model catalog before saving the configuration.
If the independent path fails, inspect one layer at a time
- Authentication failure: run
/connectagain and make sure you entered a BetterToken key, not a MiniMax Subscription Key. - Endpoint failure: keep the Base URL exactly
https://www.bettertoken.ai/v1; do not append/chat/completions. - Model not found: check capitalization and the complete ID. The configuration should use
MiniMax-M3andbettertoken/MiniMax-M3in the appropriate fields. - Configuration appears unchanged: restart OpenCode and check whether a project-level
opencode.jsonoverrides the global file. - The original MiniMax tool still fails: that is an expected boundary. A separate provider does not change MiniMax windows, Credits, or subscription status.
Five mistakes that waste the most time
- Treating a temporary throttle as exhausted quota. If allowance remains, lower concurrency and retry.
- Waiting only for the 5-hour reset. Non-video models also require room in the weekly window.
- Moving the same Subscription Key between tools. Supported tools share the same M Plan usage.
- Mixing Subscription Keys and pay-as-you-go API keys. They use different entitlements and billing paths.
- Assuming
MiniMax-M3.1-Flash-Previewis a universal external model ID. External tools must use the exact ID in their provider’s current catalog.
The practical order of operations
Check the plan and remaining windows in the console or with mmx quota. If it is only a request throttle, reduce frequency and concurrency. If allowance is depleted, wait when you need subscription-only capabilities, use Credits only when the task is eligible, or configure a separate pay-as-you-go provider when uninterrupted text coding matters more.
Do not solve this by trial-and-error key rotation. Keeping M Plan or retained Token Plan entitlements, Subscription Keys, standard pay-as-you-go keys, and external provider keys clearly separated lets you continue work without misdiagnosing the limit or charging the wrong account.