Billing & credits
Tuned Tensor includes a free monthly fine-tuning quota, a Pro subscription with included compute credits, and prepaid credits when you need more. Inference, evals, model downloads, and local serving are currently free; only successful paid fine-tuning runs and auto-tune iterations consume credits.
Free plan
New accounts start on Free with 10 small fine-tuning runs each calendar month, no card required. A run can use free quota when it uses a free-eligible small base model, has at most 5,000 dataset rows, and is estimated below 2M training tokens.
Free quota is for direct fine-tuning runs. Auto-tune sessions, teacher labeling jobs, oversized datasets, and larger models are outside the free quota.
Pro plan
Pro is $9.00/month and grants $25.00 in monthly compute credits when Stripe confirms the subscription invoice. These credits live in the same balance as prepaid top-ups and are consumed by larger paid runs. Auto-tune is Pro-only because multi-iteration training cost is harder to control.
How a run is priced
Successful run cost is calculated from three inputs: number of training epochs, the number of training tokens reported by the underlying provider, and the per-model rate from the rate card.
cost_cents = ceil(epochs × training_tokens × model_rate_per_mtok / 1_000_000)We charge once per run, on successful completion only, using the provider-reported token count for accuracy. Failed and cancelled paid runs are free. The dashboard and CLI show whether a run will use Free quota or credits before you start it.
Typical costs
- Small smoke tests are usually under $2.
- Serious small-model pilots are often $10-$30.
- Auto-tune sessions estimate the worst-case cost upfront and only charge completed successful iterations.
Settlement
When you start a run, Tuned Tensor internally protects the estimated cost so concurrent runs cannot overspend the same credit balance. Settlement resolves in one of three ways:
- Successful run — the charge is settled at the provider-reported actual cost.
- Failed or cancelled run — no charge is posted.
- Provider-cost overage — when actual training tokens exceed the estimate, we post the difference as a separate
adjustmententry. This can temporarily take your balance below zero; top up to bring it back and start a new run. We never silently skip billing for a run the provider already executed.
Auto-tune
Auto-tune requires Pro. Sessions estimate the worst-case cost (max iterations × per-iter estimate) before they start. Each completed iteration settles its actual cost; if auto-tune converges early, hits its iteration cap, fails, or is cancelled, unstarted iterations are not charged.
Rate card
Per 1M training tokens, per epoch.
| Model | Size | Price |
|---|---|---|
google/gemma-4-E2B-it | E2B | $0.45 |
Qwen/Qwen3.5-2B | 2B | $0.45 |
ibm-granite/granite-3.3-2b-instruct | 2B | $0.45 |
Qwen/Qwen3-VL-2B-Instruct | 2B VL | $0.55 |
meta-llama/Llama-3.2-3B-Instruct | 3B | $0.55 |
bigcode/starcoder2-3b | 3B | $0.55 |
google/gemma-4-E4B-it | E4B | $0.70 |
Qwen/Qwen3.5-4B | 4B | $0.70 |
microsoft/Phi-4-mini-instruct | 3.8B | $0.70 |
Adding more credits
When you need more than your free quota or included Pro credits, top up via Stripe Checkout. There's no auto-recharge. Min $5.00, max $10000 per transaction. Quick-pick amounts:
- $10.00
- $25.00
- $50.00
- $100
You can also enter a custom amount.
From the dashboard
Go to Dashboard → Billing and click a preset tile or enter a custom amount.
From the CLI
tt topup --amount 25 # opens Stripe Checkout in your browser
tt balance # check your current balance + ledgerAPI endpoints
Programmatic access for self-serve integrations. All endpoints require an API key (Authorization: Bearer <api-key>).
GET /v1/billing/balance
{
"data": {
"balance_cents": 1342,
"reserved_cents": 200,
"available_cents": 1142,
"lifetime_topup_cents": 5000
}
}balance_cents is the total prepaid balance. Product surfaces should show this as the user's credit balance.reserved_cents and available_cents are returned for clients that need operational billing details, but most UI should not show that split.
The response also includes the current plan and free-run usage:
{
"data": {
"plan": { "plan": "free", "status": "active" },
"free_runs": {
"used_count": 3,
"remaining_count": 7,
"monthly_limit": 10,
"period_start": "2026-06-01"
}
}
}GET /v1/billing/transactions
Paginated ledger (top-ups, run debits, refunds, adjustments). Supports page and per_page.
POST /v1/billing/topup
Returns a Stripe Checkout URL. The client should redirect the user to the URL; on success the user is sent back to /dashboard/billing.
curl -X POST https://tunedtensor.com/api/v1/billing/topup \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/json" \
-d '{ "amount_cents": 2500 }'
# {
# "data": {
# "checkout_url": "https://checkout.stripe.com/c/pay/cs_test_...",
# "session_id": "cs_test_..."
# }
# }Insufficient credits (402)
Starting a run or auto-tune session with too little available credit balance returns 402 insufficient_credits:
{
"error": {
"code": "insufficient_credits",
"message": "This run is estimated at $0.42 but you have $0.10 available.",
"required_cents": 42,
"available_cents": 10,
"topup_url": "/dashboard/billing"
}
}POST /v1/billing/subscribe
Returns a Stripe Checkout URL for Pro. The client should redirect the user to the URL; on success the user is sent back to /dashboard/billing.
Top up and retry. The estimate uses your dataset size pre-flight; the final charge uses real provider token counts at completion.
Refunds & expiration
- Credits never expire while your account is active.
- Failed and cancelled runs are not charged.
- Unused credits are refundable to the original payment method within 30 days of top-up — email support@tunedtensor.com with your account email.
See also
- Pricing page — the public rate card and FAQ
- Runs reference — run lifecycle and the 402 response
ttCLI —tt balanceandtt topup