# Minutes and billing

> How minutes are counted, what each mode costs, what the plans include, and where to see your usage.

Page: https://scribiz.com/docs/minutes-and-billing

Scribiz counts usage in one unit: a minute of source video. Minutes apply to hosted processing, and to the command-line tool when you sign in to a Scribiz account. If you run the command-line tool with your own Gemini key, no Scribiz minutes are used. See [Authentication](https://scribiz.com/docs/authentication.md).

Minutes are counted for [jobs](#what-a-job-costs): the web tool, the API and the remote MCP server. [The command-line tool](#the-cli-and-the-mac-app) uses them when you sign in with `scribiz login`, and none with your own Gemini key. The Mac app is not out yet.

## What a job costs

A job is charged for the length of the source video times the multiplier for what ran.

| What ran | Minutes per minute of video |
| --- | --- |
| Platform captions | 0.1 |
| Listen | 1 |
| Watch | 1 |
| Both | 2 |
| Auto | The multiplier of the path it took |
| A stored result for the same video | 0 |

Captions follow one rule: a tenth of a minute for each minute of video. With an account that comes out of your minutes, and captions stop when your minutes run out. Without an account, captions are limited to 30 lookups a day from one connection. Their tenths also count toward the day's 10 minutes, but only Listen and Watch stop when those are used.

The MCP server without a key shares the day's 10 minutes with the web tool, and has its own daily limit shared by everyone without a key. When a model reads a link there, it is charged by the length of the video that was actually read.

Asking a question about a video, with `POST /v1/ask` or the `ask_video` tool, costs 0.1 minutes per question, on top of reading the video the first time. The summary and chapters are included in the mode's multiplier.

Examples:

| Video | Mode | Minutes used |
| --- | --- | --- |
| 12 minute lecture with captions | Auto | 1.2 |
| 12 minute lecture, no captions | Auto, resolved to Listen | 12 |
| 12 minute lecture | Both | 24 |
| 3 minute Reel with burned-in text | Auto, resolved to Both | 6 |
| Any video someone already ran | Any | 0 |

Scribiz shows the cost before it spends anything. `POST /v1/context` answers with a quote: `estimate.minutes` is what the job charges if it runs as quoted, and `0` when everything is stored. The charge itself is made when the job ends, from what actually ran. A job that fails or is canceled is not charged. A repeat of the same request is quoted and charged as stored, with no work started.

For a long job, Scribiz stops before a step that would cost minutes you no longer have. The run ends with the error `QUOTA` and is charged only for what ran.

## The CLI and the Mac app

The command-line tool is on npm. It runs with a Scribiz account or with your own Gemini key, and one credential is saved at a time.

- **Signed in with `scribiz login`.** The tool uses your account's minutes, the same balance as the web tool and the API. A free account has 30 minutes a month. `scribiz whoami` shows how many are left, and when they are used up the tool says when they come back.
- **Your own Gemini key, from `scribiz setup` or `GEMINI_API_KEY`.** Google bills that key, and no Scribiz minutes are used.

`GEMINI_API_KEY` in the environment wins over a saved sign-in. See [Authentication](https://scribiz.com/docs/authentication.md#which-credential-wins). The Mac app is not out yet.

## Plans

| Plan | Minutes | Longest video | Notes |
| --- | --- | --- | --- |
| Anonymous | 10 Listen or Watch minutes per day, 30 caption jobs per day, 5 questions per day | 15 minutes | No account. One running job. A Turnstile check may run before Listen or Watch. The MCP server without a key uses the same 10 minutes. |
| Free | 30 per month, no rollover | 2 hours | Two running jobs. The month is a calendar month in UTC. |
| Pro | 600 per month, no rollover | 6 hours | Two running jobs. A period runs a month from the day the plan started. |
| Mac Lifetime | A one-time 300 minutes, plus the free plan's 30 per month | 2 hours | The Mac app and every 1.x update. |

The longest video is the limit for a hosted job. The command-line tool with your own Gemini key does not use Scribiz minutes, so the plan's limit does not apply to it. Signed in to an account, it uses that account's minutes. Minutes, caps and times are in UTC.

Prices are on the [pricing page](https://scribiz.com/pricing).

### Top-ups

Top-up minutes never expire and work anywhere minutes work. They are used after your plan's minutes for the period run out.

### Lifetime

Lifetime covers the Mac app, which is not published yet. It does not add a monthly allowance beyond the free plan's, because hosted minutes cost money every time they run. The one-time 300 minutes is a starting balance. Run the app with your own Gemini key for more.

## When you run out

- On the web, the result page says so.
- The API answers `402` with the code `quota_exceeded`, the engine code `QUOTA`, and the minutes needed and left. See [Errors and limits](https://scribiz.com/docs/api/errors.md).
- The command-line tool stops with `QUOTA` and exit code 3, and says when your minutes come back.
- MCP tools return an error result with the code `QUOTA`. Without a key, captions and videos already processed still work, and the error says when the allowance resets (00:00 UTC).
- A result that is already stored still opens for free. Captions cost 0.1 minutes per minute of video on an account, so they stop too. Without an account, captions stop at 30 lookups a day.

## See your usage

- The dashboard shows your minutes.
- `GET /v1/me` returns the same numbers for code. See [Endpoints](https://scribiz.com/docs/api/endpoints.md#get-v1me).
- Each job reports `minutes_charged` when it ends.

## Paying

> [!NOTE]
> Plans and top-ups will be bought on Stripe's payment page once something is on sale, and the server decides what is on sale: the [pricing page](https://scribiz.com/pricing) shows it, and so does `GET /v1/billing/offer`. The offer gives each price as Stripe has it, in US dollars, and a plan is on sale only when all its prices are set up there. While nothing is on sale, `POST /v1/billing/checkout` answers `501` with `billing_not_configured`, and Scribiz grants minutes to accounts by hand.

How tax works will be stated here when checkout opens.

---

Checked against the Scribiz build on 2026-10-05.
