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

# Pricing and usage

> Understand charges, account credit, and usage reports.

Revise API uses account credit. Add funds and manage billing in the [console](https://revise.io/console/billing); the [pricing console](https://revise.io/console/pricing) shows the current schedule. Completed jobs return settled charges in `usage.cost`.

## Prompt pricing

Each prompt has three charge components:

| Component         | Rate                                                                              |
| ----------------- | --------------------------------------------------------------------------------- |
| Base fee          | Graduated by accepted prompt count per account and UTC calendar month; see below. |
| Tool CPU          | \$0.05 per CPU-second. Model waiting and queue time are not CPU time.             |
| Managed inference | Model and native search usage at provider rates plus 5%.                          |

| Accepted prompts in the month | Base fee per prompt |
| ----------------------------- | ------------------- |
| 1–1,000                       | \$0.05              |
| 1,001–5,000                   | \$0.035             |
| 5,001–10,000                  | \$0.02              |
| 10,001 onward                 | \$0.01              |

Tiers are graduated, not retroactive. For 1,200 accepted prompts, the base fees for successful work are 1,000 × $0.05 + 200 × $0.035 = **\$57**, plus CPU and inference. Each accepted prompt counts once across all account keys, including later failures or cancellations. Replays and resumes do not count again. Conversions do not count toward these tiers.

With your own provider key, Revise charges base and CPU fees; the provider bills inference separately. `usage.inference.billed_by` reports the payer. Native web search is enabled for prompts and can contribute to inference charges. Model input/output, cache activity, reasoning, and conversation compaction can also affect usage.

## Conversion pricing

| Input                                | Revise charge                                          |
| ------------------------------------ | ------------------------------------------------------ |
| DOCX, Markdown, HTML, text, RTF, ODT | \$0.005 per conversion                                 |
| PDF or image, managed scanning       | \$0.02 per page, including scan inference              |
| PDF or image, your own OpenAI key    | \$0.005 per page; provider inference billed separately |

A 10-page managed PDF scan costs **\$0.20**. Conversions have no additional tool CPU or Revise inference line item: the conversion fee appears under `base_fee_usd`. See [conversion limits](/revise-api/conversions#pricing-and-limits).

## Settlement and credit

Jobs are admitted and start only while the account balance is positive. Spending limits are thresholds for stopping work, not prepaid reservations. Settlement debits the actual charge once the job becomes terminal; in-flight work can take the balance below zero. Add credit to allow further work.

Successful partial prompts are billable. Cancellation or a customer limit can also incur charges for work already performed. Cancelling a queued job before any attempt starts has no charge. For a running conversion, cancellation charges pages already submitted for scanning, or the flat fee for deterministic conversion. Revise infrastructure and input-validation failures are not billed by Revise; your provider may still charge for calls made using your key. Always read the receipt's settled cost.

`usage.cost.itemized` contains disjoint `base_fee_usd`, `cpu_fee_usd`, and `inference_fee_usd` values that sum to `total_usd`. USD values are exact decimal strings; preserve them or use decimal arithmetic. Rates are fixed at admission and remain on historical receipts after content deletion.

## Usage reports

[`GET /v1/usage`](/revise-api/reference/get-usage) aggregates settled prompts **and conversions** by completion time. Queued, running, and paused jobs are excluded. The default is the past 30 days in daily UTC buckets.

```ts theme={null}
import { ReviseClient } from "@reviseio/api";

const revise = new ReviseClient({ apiKey: process.env.REVISE_API_KEY! });
const report = await revise.usage.get({
  start: "2026-09-01T00:00:00Z",
  end: "2026-10-01T00:00:00Z",
  bucket: "day",
  group_by: "api_key_id",
});
console.log(report.totals.cost.total_usd);
for (const row of report.data) {
  console.log(row.bucket_start, row.dimensions, row.cost.total_usd);
}
```

`start` is inclusive and `end` exclusive. Choose `hour`, `day`, `month`, or `none`; ranges may span at most 366 days, or 31 days for hourly buckets. Up to three comma-separated grouping dimensions are supported. Reports are limited to 1,000 rows, with no pagination; `422` means you must narrow the query or use fewer groups/coarser buckets.

Metadata can tag requests by customer or application, but it is retained only with request content. After deletion or expiry, metadata filters no longer match and metadata groups become `null`. **Store your own job-to-customer mapping for long-term attribution.** Account totals remain available. Model/provider dimensions describe the admitted configuration, including deterministic conversions; they do not prove that inference occurred.

Token counters can be `null` in aggregates containing older receipts without those counters. This does not make their charge totals incomplete. Cached input and cache-creation tokens are subsets of input tokens, not additional tokens to add again.

## Account and ledger

* [`GET /v1/account`](/revise-api/reference/get-account) returns the current signed USD credit balance and authenticated key ID.
* [`GET /v1/account/ledger`](/revise-api/reference/get-ledger) returns the latest 50 credit entries, with no pagination. `prompt_id` or `conversion_id` identifies the associated job; funding entries have neither.
* [`GET /v1/account/topups/{id}`](/revise-api/reference/get-topup) reads an existing top-up's status. Initiate funding and configure provider keys through the console.
