AI generation API billing and credits
Generations are priced in credits. Subscribed workspaces pay with plan credits; everyone else can use the pay-as-you-go wallet. This page covers both.
Credits
Every model has a per-generation credit cost, shown on its catalog page and in GET /v1/models (creditsPerGeneration). The estimated credits for a job are reserved when it is created and the actual credits are settled on completion.
- Plan credits — included with monthly plans (e.g. Starter: 10,000 credits/mo), lifetime plans (50,000 total), and one-time packs (e.g. Trail Pack: 3000 credits valid 7 days, one pack per week). Unused plan credits expire at the end of the billing period or pack validity window.
- Wallet credits — pay-as-you-go, no subscription. Deposits start at $10; credit value is fixed at
1 credit = $0.01. - Credit balance and ledger are visible at
GET /v1/workspaces/:workspaceId/credits.
Caution
Free-tier users also see weekly/monthly per-model generation limits — check weeklyGenerationLimit and monthlyGenerationLimit in the model catalog.
Plans
Monthly plans renew automatically and include seats (active members), concurrent job limits, storage, and queue priority. See the live pricing page for current plans: free.ind.in/pricing. Plan entitlements are returned in GET /v1/plans and enforced per workspace.
The wallet
The wallet is a prepaid balance for workspaces without a subscription (or as an overflow). Deposit with POST /v1/wallet/top-ups:
curl -X POST https://free.ind.in/v1/wallet/top-ups \
-H "Authorization: Bearer fi_live_..." \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "<workspace-id>",
"amountUsd": 25
}'- Minimum deposit: $10. Deposits are processed through the payment provider and credited on confirmation.
- Balance:
GET /v1/wallet; history:GET /v1/wallet/transactionsandGET /v1/wallet/deposits. - Wallet payments require a successful deposit before generating (
wallet_pending_minimumotherwise).
Wallet-backed generations
By default generations bill plan credits. Pass "paymentMode": "wallet" in POST /v1/generations to pay from the wallet instead:
{
"workspaceId": "<workspace-id>",
"modelId": "<model-id>",
"paymentMode": "wallet",
"params": { "mode": "text_to_image", "prompt": "a red fox in snow" }
}The estimated charge (credits × $0.01) is reserved before the job starts and settled on completion. If the reserved amount can't be covered, the request fails with wallet_insufficient_balance.
Usage reporting
Track spend per workspace with GET /v1/usage — credits used, customer cost, generations, and output bytes, filterable by date range. Subscriptions and payments are managed via POST /v1/billing/checkout, POST /v1/billing/portal, and POST /v1/billing/cancel (dashboard-first; see API reference).