Subscription Keys & Packages
A password manager stores a credential. It cannot tell you what that credential is spending, or whether it is still alive. Mark any key flat-monthly — even a pasted one — name its package, and the vault meters it against the plan's own window instead of a dollar figure that means nothing.
Three questions about one key
How a credential arrived, how it bills, and which plan it is on are three different questions, and the vault used to answer them as one. Sign in with a login and it looked like a subscription; paste a key and it looked metered. That is exactly backwards for a MiniMax or Z.ai coding plan, where you paste an ordinary-looking API key and the billing behind it is flat monthly. Each axis is now its own field.
Paste it and still call it a plan
A pasted API key can be marked Subscription. Two of the four subscription keys in my own vault arrived that way, and the other two as logins.
Your call beats the guess
Left alone, billing follows the provider's usual cost model. Set it yourself and your answer wins, per key, without touching anything else.
The package is the denominator
Saying a key is flat-monthly tells you what not to measure. It does not tell you what to measure instead. That is what the package is for: pick the plan you actually bought and the vault takes its real window — how long the window runs, how much it allows, and the weekly ceiling where the plan has one. There is no plan sniffing. You pick it, because you are the one who knows what you bought.
// 14 curated packages across 6 providers (as of 10 August 2026)
GET /api/v1/brands/{brand_id}/gate/subscription-tiers?provider=minimax
// each package carries the two halves of the meter
tier_key minimax_max
window_hours 5 // how long the window runs
window_limit 2000 // what it allows inside one
weekly_cap 40000 // where the plan has one
// pick nothing and the meter shows a dash — never an invented number
A coding plan is yours alone
A coding plan is tied to one account and one set of terms. Lending it to a pool of strangers is the kind of thing you would rather not discover afterwards, so a key marked subscription — or metered-paid — never enters the shared pool. Not by default, not by accident, and not if you tick the box: the request is refused outright rather than quietly un-ticking it for you, and the database holds the same line underneath. Free keys pool exactly as before.
Refused, not silently corrected
Ask to pool a subscription key and you get an error that says why. A setting that flips itself back without telling you is worse than one that argues.
Enforced twice
The API rejects the combination and the database enforces it independently, so no other write path can pool the key either.
Three clicks, or none
Everything above is a segmented control and a dropdown in Gate → Vault. It is also two commands, or two tool calls from an agent — discover the packages a provider sells, then set the billing mode and the package together on the key.
# CLI
spideriq gate subscription-tiers --brand 14 --provider minimax
spideriq gate keys update 42 \
--billing-mode subscription \
--subscription-tier minimax_max
# MCP — the same two steps for an agent
get_subscription_tiers // discover the packages
update_brand_integration // billing_mode + subscription_tier