Billing & usage
Simple, metered pricing — most things are standard ops, heavy compute is premium.
Stacklink pricing is one idea: you pay for what your agents actually do. Every action is metered as one of two kinds of operations, every plan includes a generous monthly bundle of both, and the free plan is hard-capped — so you can never wake up to a surprise bill.
Standard ops — everyday work
API calls, tool runs, connections, triggers, webhooks, and knowledge queries. The vast majority of what an agent does.
Premium ops — heavy lifting
Workbench runtime, web search, LLM helpers, and document extraction — work where Stacklink pays for variable infrastructure.
20,000 standard + 1,000 premium ops, free every month
Enough to build, demo, and run a real agent — with 2 projects included and a hard cap instead of overage billing. Upgrade only when you grow.
The plans
20k standard · 1k premium · 2 projects · 30-day logs · hard-capped, never billed.
200k standard · 10k premium · 5 projects · 60-day logs.
1M standard · 50k premium · 10 projects · 90-day logs.
5M standard · 250k premium · 25 projects · 180-day logs.
50M+ standard · 1M+ premium · unlimited projects · 365-day logs · custom limits.
Paid plans soft-meter: if you go past the included bundle, the overage is invoiced per thousand ops (Builder $0.29 / $0.87, Startup $0.25 / $0.75, Scale $0.20 / $0.60 — standard / premium). Rate limits step up with the plan too: 120 → 600 → 1,800 → 6,000 requests per minute, custom on Enterprise.
Keep spend predictable
- The free plan is a hard cap — nothing to cancel, nothing to owe.
- Budgets cap workbench spend per tenant — by cost, duration, tokens, or bytes, over a daily/weekly/monthly/all-time window.
- Usage is queryable live, so your app (or your agent) always knows where it stands.
const usage = await stacklink.billing.getUsage();
// usage.usage.standard -> { used, included, remaining, overage, overageCents }
// usage.usage.premium -> same shapeFor developers
How quantities are computed (contract stacklink-billing-v1): every metered operation carries a
billing descriptor — class, unit, quantitySource, optional multiplier.
| Unit | One billed unit is | Used for |
|---|---|---|
call | one invocation | most operations |
runtime_10s | 10 seconds of runtime (rounded up) | workbench code/bash |
token_block | 1,000 LLM tokens (rounded up) | invoke_llm |
byte_block | 1 MiB (rounded up) | byte-metered transfers |
Workbench runtime multiplies by sandbox size — standard ×1, medium ×2, large ×3 — and the minimum
billed quantity is always 1. Checkout and the customer portal run through Stripe in
staging/production (STACKLINK_BILLING_PROVIDER=stripe); local development uses the internal
provider. Every metered event is queryable (listUsageEvents) with its operationClass, quantity,
and idempotencyKey. Scopes: billing:read / billing:manage.