Plans
There are three plan families: Free, Pro and Max. Pro and Max include monthly AI usage worth more than their fee, and the same advanced models. Free includes a small allowance on the basic model. Prices and allowances are on the pricing page and inGET /pricing/catalog; read them from there rather than hard-coding them.
How usage is counted. Each model call in an agent run costs what the model provider charges, times a usage multiplier. For example, at a multiplier of 1.25, a provider charge of 1 US dollar uses 1.25 dollars of your included usage. Both the agent and its independent review count. Included usage resets each month and doesn’t roll over. Pay-as-you-go overage, when enabled, isn’t subsidized the way included usage is.
News searches and matching news to companies or monitor mandates do not spend your AI credits. Requests use the existing rate limits, and judging has time limits. Agent runs that read or summarize news still spend credits.
Bonus credits are one-off grants. They last across months until used, revoked or expired. Each month uses included credits first, then bonus credits. Bonus credits don’t give access to paid models.
Models and plans
Chats, monitors and strategies each save their own model choice. Pro and Max unlock advanced models while their subscription is active or in a trial and the current billing period is valid. Trials use the plan’s existing usage allowance and budget checks. A fusion mode chooses the main agent and its independent Guardian together:
You can also choose a single model. Its Guardian uses that same model:
Haiku reviews fusion runs; you cannot choose it as a single main agent.
Read
GET /pricing/model-access for the current choices. Its models entries add short_name and main_agent; only entries with main_agent: true can run on their own. Its modes entries name both model keys and give their combined requires_paid and enabled values. The returned default_mode is your plan’s default for new resources. The older default_model field keeps its single-model meaning. Pass a returned choice key, never a provider’s model version.
- Default. Without a choice, a new chat, monitor or strategy uses your plan’s default mode. Existing ones keep their saved choice.
- Pinned settings. Both agents keep the models and reasoning settings admitted when the run starts, including retries and recovery. Changing a saved choice affects the next run.
- Provider and cost. Fusion reviews send review context to Anthropic, including on Free. Each agent bills at its own model’s rates, including context-length tiers. Prompt-cache writes use their cache lifetime.
- No silent switching. If your paid plan ends, saved paid choices stay selected, but new runs stop with “Choose the Free model or upgrade” until you change the choice or upgrade.
- A payment method, a balance, or bonus credits don’t give access to paid choices. A connected ChatGPT subscription unlocks single OpenAI models for Chat and monitors. Fusion modes always use your plan’s access and Itoflow keys for both agents; they never use that connection. Strategies use plan access.
503 rather than assume you’re on Free.
Read usage and billing
get-subscription creates a Free subscription if you don’t have one yet, so it isn’t a pure read.
Call these endpoints from your server. Browsers block calls from other websites, even to the public catalog.
Usage this period
GET /account/billing-costs returns period_start, period_end, total_credits_used, invocation_count and token counts. Depending on your plan, it also returns:
block_reason is one of free_tier_exhausted, spending_cap_reached, subscription_inactive or not_configured.
Money fields
In the billing summary:
Fields ending in
_cents, invoice amounts and the cent fields above are whole cents. Some dates are Unix timestamps and others ISO strings; check each field’s schema.
Change your plan
- Read
GET /pricing/catalog. Each entry has aprice_id, a plankey(free,proormax) and anoffer_keysuch aspro100orpro300. Pick byprice_id: onekeycan have several offers. POST /pricing/preview-upgradewith theplanIdshows what the change will cost. Show it to the account owner.POST /pricing/update-subscriptionwith theplanIdand thecatalogRevisionyou showed.
409 PLAN_TERMS_CHANGED. Read the catalog again and confirm the new terms. A successful response means the change was accepted; follow the payment status to see that it was paid.
Paid upgrades keep the current renewal date. The preview and payment invoice
cover the remaining-period price difference. Your purchased plan and included
usage change only after payment succeeds. A nonempty subscription.pending_update
means the requested upgrade still awaits payment; it does not grant its allowance.
Repeat the same target to resume the existing pending invoice. Choosing another
plan while it is pending returns 409 SUBSCRIPTION_PAYMENT_PENDING. An earlier
unpaid plan-change invoice returns 409 SUBSCRIPTION_PAYMENT_REQUIRED; resolve
that invoice before changing plans. A simultaneous request returns
409 SUBSCRIPTION_UPDATE_IN_PROGRESS; refresh before retrying.
409 SUBSCRIPTION_UPDATE_UNSUPPORTED means the subscription cannot use this
payment-gated flow, for example when it collects invoices manually.
For saved Link, confirm through POST /pricing/confirm-payment. If it returns
requires_action with no redirect URL, call Stripe.js
handleNextAction({clientSecret}) with the owned invoice’s confirmation secret.
Follow an explicit redirect URL when one is present and return to
/account/billing. processing remains pending. After succeeded, refresh
POST /pricing/get-subscription and check the paid invoice and effective plan
before announcing that the upgrade is active. Billing shows the pending upgrade
and a Complete payment action after reload.
If your subscription uses a price no longer in the catalog, you keep its terms. Read them from your subscription and billing summary.
Payment methods, the billing portal (POST /pricing/billing-portal) and payment confirmation have their own endpoints; see the reference.
Spending cap and refunds
POST /pricing/spending-cap with spending_cap_cents sets a monthly overage cap in cents. 0 or null turns overage off. A positive cap needs a paid plan; on Free it returns PAID_PLAN_REQUIRED.
POST /pricing/refund-balance asks for a refund of your credit balance. It can return NO_CREDIT_BALANCE, NO_REFUNDABLE_PAYMENT or REFUND_IN_PROGRESS.