Concepts
The credit ledger, what costs credits, plan tiers, and the quotas each plan enforces.
Credits & the ledger
Every account has one credit wallet — yours, or your organization's when you operate in an organization context. Three numbers describe it:
| Field | Meaning |
|---|---|
current_balance | Credits available to spend right now |
total_granted | Lifetime credits added (plan grants, top-ups, refunds excluded) |
total_spent | Lifetime credits consumed by actions |
Every change writes an immutable row to the transaction ledger —
debits are negative amounts, grants and refunds positive. Each row carries
a reason (what kind of operation), a reference (which training,
which workspace), and the balance before and after. The full history is
visible in the app.
Credits enter the wallet through a handful of paths:
- a one-time signup grant on the Free tier,
- a small monthly drip that keeps Free wallets alive,
- your plan's monthly included credits, granted on each paid invoice,
- one-time credit pack purchases (made in the app),
- refunds — a training that fails is refunded automatically, and
cancelling a run mid-flight refunds the unused portion. Refunds appear
in the ledger with a
refund_*reason.
If a charge would exceed your balance, the action returns 402 and
doesn't run. Paid tiers may spend past zero into pay-as-you-go overage
(down to a floor); the negative balance settles automatically at the next
grant or top-up.
What costs credits
Charges happen when work runs, priced per operation:
| Category | Charged | Where it's triggered |
|---|---|---|
| Training runs | Per run — foundation trainings upfront by intensity, custom-code trainings by elapsed compute | Trainings |
| Inference | Per request, by model family | Inference |
| Discovery | Per run, tournament, scenario, and live-goal day | Goals |
| BYOM upload | Per MB uploaded, plus a validation fee | Models |
| Streaming ingestion | Per thousand events beyond your plan's included allowance | Ingestion |
| Storage & dedicated hosting | Daily, only on usage above the included allowance | metered automatically |
| Analyst chat | Per turn by tokens at LLM passthrough rates, plus per successful tool call; sandboxed code runs are priced per execution | the in-app chat and the goal analyst |
Data-plane meters (ingestion, storage, hosting, query scans) come with a
monthly included allowance per workspace — every workspace on your
plan gets its own allowance, and you're only charged for a workspace's
overage. Your exact allowances and per-unit rates:
GET /v1/billing/rates.
How your rate is resolved
Every operation has a system default rate. Your plan tier can override
it, and account-level overrides (negotiated for organizations, or applied
to a single user) take precedence over that. The
estimate endpoint shows the full resolution
as a breakdown, so you can always see which layer set your price.
Plans & tiers
Four tiers: Free, Starter, Team, and Enterprise. The same plan family covers everyone — Team and Enterprise are organization-shaped and add seats on top.
- Free and Starter attach to your personal account; charges hit your personal wallet.
- Team and Enterprise attach to an organization. Subscribing from a personal account creates your organization (your workspaces and balance move with it), and billing shifts to the organization's wallet.
A plan bundles a monthly fee, included credits, quotas, and capability flags (fine-tuning, dedicated hosting, SSO, …). Comparing tiers, subscribing, and upgrading all happen in the app.
Quotas
Separate from credits, your plan caps how many of each object you can
hold. Every quota is enforced per workspace — each workspace on your
plan gets its own full allowance — except seats and workspaces
themselves, which are account-level. Exceeding a cap returns 403 with a
message naming the limit — nothing is charged. Check a workspace's live
counts with
GET /v1/billing/usage.
The main quota keys and what each gates:
| Quota key | Scope | What it gates |
|---|---|---|
pipelines | workspace | Training workflows you can create |
models | workspace | Catalog models — trainable artifacts |
deployments, dedicated_deployments | workspace | Live serving slots, shared and dedicated |
goals | workspace | Goals |
fleet_members | per goal | Signals one fleet goal may rank |
segments, streams | workspace | Data-view objects and event streams |
signals, signal_types | workspace | Data-plane volume (Ingestion) |
predictfm_adapters, byom_models | workspace | Foundation adapters and BYOM uploads |
workspaces, seats | account | Workspaces on your plan; members on your plan |
A value of -1 means unlimited.

