Skip to content

Billing & usage

Uniquifying costs compute, so FluidGhost charges your account per variant produced. Billing runs on the shared ecosystem balance — the same balance FluidTalk conversations spend — so a top-up bought anywhere funds spoof jobs here.

How a job is charged

  • Per variant. A job's cost is copies × per-variant rate. A copies: 5 job costs five variants' worth.
  • Debited before the work runs. The balance is charged when the job is enqueued, not after. If it can't be covered, the API returns 402 insufficient_balance and nothing runs — you're never charged for a job that didn't happen.
  • Refunded on failure. If a job fails terminally, the charge is refunded.
  • Idempotent. Both the debit and the refund are keyed on the job id, so a retry never double-charges or double-refunds.

Delivery mode doesn't change the price: ephemeral and drive cost the same, because you're paying for the uniquify compute, not for storage.

Reading your balance

GET /me returns your current balance and tier:

json
{ "ownerId": "1d970780-…", "balance": 42.75, "tier": "pro" }

Balances are in tokens, where 1 token = $1, so a charge is a small decimal. Check the balance before a large batch to avoid a mid-run 402. See GET /me.

Handling 402 insufficient_balance

json
{
  "error": "insufficient_balance",
  "message": "Not enough balance for this job.",
  "details": { "balance": 0.4, "required": 3 }
}

details.balance is what you have; details.required is what the job needed. Top up in the dashboard and resubmit. There is no partial run — a job either fully covers its variants or doesn't start.

Topping up

Balance top-ups, plan tiers, and invoices live in the dashboard, not the API. The API only ever spends the balance and reports it.

FluidGhost API — part of the Fluidvip ecosystem.