Skip to content

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:

Deposit to the walletbash
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/transactions and GET /v1/wallet/deposits.
  • Wallet payments require a successful deposit before generating (wallet_pending_minimum otherwise).

Wallet-backed generations

By default generations bill plan credits. Pass "paymentMode": "wallet" in POST /v1/generations to pay from the wallet instead:

Generation requestjson
{
  "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).

Cookies keep FreeInd working. Optional analytics require your permission. Read our cookie policy.