> ## Documentation Index
> Fetch the complete documentation index at: https://rendobar.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Credits and billing

> Get per-job nanodollar billing from a prepaid credit balance. Free includes a signup grant, Pro adds monthly credits, and credits never expire.

<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{
__html: JSON.stringify({
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "@id": "https://rendobar.com/docs/concepts/credits/#article",
  "headline": "Credits and billing",
  "description": "Get per-job nanodollar billing from a prepaid credit balance. Free includes a signup grant, Pro adds monthly credits, and credits never expire.",
  "datePublished": "2026-03-20",
  "dateModified": "2026-05-24",
  "author": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
  "publisher": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
  "isPartOf": { "@id": "https://rendobar.com/#website" }
})
}}
/>

Per-job billing from a prepaid credit balance. New accounts get \$5 free. Every terminal job is charged for the compute it consumed, including jobs that fail.

## Plans

|                          | Free           | Pro     |
| ------------------------ | -------------- | ------- |
| Price                    | \$0/mo         | \$9/mo  |
| Signup credits           | \$5 (one-time) | -       |
| Monthly credits included | -              | \$5     |
| Credit-purchase bonus    | -              | +20%    |
| Concurrent jobs          | 1              | 20      |
| Queued backlog           | 50             | 1000    |
| API requests/min         | 120            | 600     |
| Max input file           | 500 MB         | 10 GB   |
| Job timeout              | 5 min          | 15 min  |
| Output retention         | 7 days         | 30 days |
| Priority queue           | No             | Yes     |

`ffmpeg`, MCP, and webhooks are on both plans. Full limits table: [Limits](/docs/support/limits).

For a full pricing breakdown and plan comparison, see [rendobar.com/pricing/](https://rendobar.com/pricing/).

## Credit packs

$10 / $25 / $50 / $100 (or custom, $10 minimum). Pro adds **+20%** to every purchase. Buy $25, get \$30. Credits never expire.

## How it works: nanodollar billing

Every job is billed in nanodollars (one-billionth of a US dollar) drawn from your prepaid balance. This differs from tier-based quotas where you buy a plan with a bucket of minutes:

* **Cost matches resources used.** A 30-second 1080p job shouldn't cost the same as a 10-minute 4K render of a large master.
* **Prepaid means predictable budgets.** You top up when you want; jobs run only if affordable. No end-of-month surprise bill.

## Credit lifecycle

1. **Submit gate.** Submit is atomic and does not reject on concurrency. If your balance is greater than zero the job is accepted. Jobs run at your plan's concurrency and any extra wait in a queue, starting in order as slots free. We do not estimate cost up front. A zero balance returns `402 INSUFFICIENT_CREDITS`, and a full queue returns `429 QUEUE_FULL`.
2. **Execution.** Job runs. Balance untouched.
3. **Debit on terminal status.** Every terminal job (`complete`, `failed`, or `cancelled`) is charged for the compute it consumed. The debit is atomic with the status update.
4. **No auto-refund.** Failed jobs are still charged for the compute they consumed. If you believe a job failed due to a platform bug, contact support. Refunds are issued at our discretion via the dispute process.

## Negative balance

Because the submit gate checks `balance > 0` rather than an estimate, a single long-running job can drive your balance briefly negative when the terminal debit lands. When that happens, your subscription flips to `past_due` and further submits are blocked with `402 INSUFFICIENT_CREDITS` until you top up. Once your balance is positive again, normal billing resumes.

## Cost model

`ffmpeg` bills per compute second, which is the wall-clock time FFmpeg ran your command, excluding upload and download. The same per-second rate applies whether the job completes successfully or fails partway through.

If your balance is at or below zero when you submit:

```json theme={null}
{ "error": { "code": "INSUFFICIENT_CREDITS", "message": "Not enough credits for this job" } }
```

HTTP `402`. Top up at [app.rendobar.com/billing](https://app.rendobar.com/billing).

## Check your balance

```bash theme={null}
curl https://api.rendobar.com/billing/state \
  -H "Authorization: Bearer rb_YOUR_KEY"
```

```json theme={null}
{
  "data": {
    "balance": { "amount": 5.0 },
    "plan": { "slug": "free", "name": "Free" },
    "subscription": { "status": "active", "cancelAtPeriodEnd": false },
    "isPro": false
  }
}
```

`balance.amount` is in dollars. Internally balances are stored in nanodollars (1 USD = 1,000,000,000).

## Usage tracking

```bash theme={null}
curl "https://api.rendobar.com/billing/usage?start=2026-02-01&end=2026-02-09" \
  -H "Authorization: Bearer rb_YOUR_KEY"
```

Returns daily usage by job type: count, amount charged, and compute seconds.

## Practical advice

* **Start on Free.** \$5 signup grant covers many hundreds of small jobs.
* **Store `cost.nanodollars` from every response.** Reconcile against your monthly invoice.

## See also

* [Job lifecycle](/docs/concepts/job): where the debit happens
* [Limits](/docs/support/limits): full quota table
* [FFmpeg reference](/docs/jobs/ffmpeg): the live cost model

## Related

* [Plan limits and quotas](/docs/support/limits): exact rate, file, and storage caps per plan
* [Job lifecycle](/docs/concepts/job): when the debit lands and what statuses mean
* [Error codes](/docs/support/errors): `INSUFFICIENT_CREDITS`, `PLAN_LIMIT`, and friends
* [Pricing](https://rendobar.com/pricing/): plan comparison and credit packs
* [FAQ on cost](/docs/support/faq): common pricing and billing questions
