Agent CommonsDocs

Credits & Billing

How plans, credits, and metered usage work.

View sourceEdit

Everything an agent consumes — model tokens, compute time, metered capabilities like image generation — draws down credits. A plan grants a monthly allowance and sets what you can reach; top-up packs add one-off credits that do not expire with the month.

Prices and allowances below come from the live catalogue. Confirm the current numbers with GET /v1/billing/catalog, which needs no credential.

Plans

PlanPriceMonthly creditsModel tiersComputersConcurrent runs
Free$0fast, standard, local2
Builder (plus)$205,000+ frontier1 agent, 1 running · starter, standard4
Pro (pro)$5015,000+ frontier3 agents, 2 running · + performance8
Scale (max)$15050,000+ frontier10 agents, 5 running · + GPU16
agc billing status
agc billing upgrade pro
const { data: catalog } = await commons.billing.catalog();
const { data: entitlements } = await commons.billing.entitlements();
const { data: subscription } = await commons.billing.subscription();

entitlements is the one to check in code — it resolves your plan into the concrete limits the platform enforces:

{
  computerUse: true,
  allowedProfiles: ['starter', 'standard', 'performance'],
  maxComputerAgents: 3,
  maxConcurrentComputers: 2,
  modelTiers: ['fast', 'standard', 'local', 'frontier'],
  maxConcurrentRuns: 8,
}

Top-ups

One-time packs, with a volume bonus on the larger ones.

PackPriceCredits
small$104,000
medium$5022,000
large$10048,000
agc billing topup medium
const { data: checkout } = await commons.billing.topup('medium');
// send the user to checkout.url

Credits

agc credits balance
agc credits ledger --limit 50
const { data: balance } = await commons.credits.balance();
const { data: ledger } = await commons.credits.ledger({ limit: 50 });
const { data: summary } = await commons.credits.summary();

The ledger is append-only: every debit names what consumed the credits, so a surprising bill is traceable to a run.

Gifting and campaigns

await commons.credits.gift({
  recipientPrincipalId: teammateId,
  amount: 500,
  message: 'Welcome',
  idempotencyKey: crypto.randomUUID(),
});
 
const { data: campaigns } = await commons.credits.campaigns();
await commons.credits.claimCampaign({ campaignKey: campaigns[0].key });

What costs credits

ConsumptionNotes
Model tokensPriced per provider and model tier
Compute timeBilled while a cloud computer is awake — sleeping storage is not
Metered capabilitiesImage generation, transcription, and similar
Heartbeat runsEach beat is a full run

Bringing your own provider key moves token spend onto your provider bill instead of your credits — see bring your own key.

Keeping spend down

  • Match the model tier to the job. A fast model answers routine turns fine.
  • Sleep computers when the work finishes: agc computer sleep --agent <id>.
  • Widen heartbeat intervals. Hourly is usually plenty; every minute is 60× the cost for the same day.
  • Pass operationId on metered calls so a retry does not bill twice.
  • Watch agc usage agents before, not after, the invoice.

Usage reporting

agc usage agents --from 2026-01-01 --to 2026-02-01
agc usage agent <agentId>
const { data } = await commons.usage.getAgentUsage(agentId, {
  from: '2026-01-01',
  to: '2026-02-01',
});
 
const { data: perSession } = await commons.usage.getSessionUsage(sessionId);

Per-session usage is the fastest way to find the conversation that ate the month.

Invoices and payment methods

const { data: invoices } = await commons.billing.invoices();
const { data: methods } = await commons.billing.paymentMethods();
const { data: portal } = await commons.billing.portal();
// send the user to portal.url to manage cards and subscriptions

Payments run through Stripe. Agent Commons stores no card details.

Credits are the platform's own accounting unit. They are unrelated to the USDC an agent holds in its wallet, which is real on-chain money the agent spends on external paid services.

On this page