Docs

Usage billing, limits, and receipts

Estimate reservations, cap per-job spending, and reconcile exact successful-job charges.

Estimate reservations, cap per-job spending, and reconcile exact successful-job charges.

Units and available credit

All billing API microdollar fields are integer millionths of a US dollar: 1,000,000 = $1. Available credit excludes active job reservations. Legacy balanceMillicents fields use $0.001 units and may omit the sub-unit remainder; use GET /v1/billing/limits availableMicrodollars for the precise spendable amount.

Estimate before submitting

GET /v1/billing/estimate?source=html returns currency, quote, and estimated: true. It freezes an indicative rate snapshot and reservation policy, not actual runtime or guaranteed wallet availability. Use source=convert for new native operations, source=template_ai for AI generation, or source=pdf_data for AI extraction.

curl
curl "https://api.relaypdf.com/v1/billing/estimate?source=convert" -H "Authorization: Bearer $RELAYPDF_API_KEY"

Set a per-job cap

PATCH /v1/billing/limits accepts maxJobMicrodollars as null (remove the account cap), or an integer from 1 to 1,000,000,000. This is a per-job limit, not a monthly budget. A request can set a lower cap using X-RelayPDF-Max-Charge-Microdollars. The lower applicable cap wins. A cap below the minimum fee fails before processing.

curl
curl -X PATCH https://api.relaypdf.com/v1/billing/limits \
  -H "Authorization: Bearer $RELAYPDF_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"maxJobMicrodollars":1000000}'

Reservation, settlement, and failure

Admission reserves credit. Success settles the actual charge once and returns the unused reservation. Failure releases the reservation without charging. A reservation is not a completed charge. Missing required usage measurements or a charge exceeding authorization fails without billing in metered mode.

Read receipts

GET /v1/billing/usage returns currency: USD and the latest 100 jobs with id, status, quote, receipt, reserved_microdollars, charged_microdollars, and created_at. A null charged_microdollars value is not a completed charge. Reconcile by job ID; this endpoint is a recent-history view, not a paginated accounting export.

curl
curl https://api.relaypdf.com/v1/billing/usage -H "Authorization: Bearer $RELAYPDF_API_KEY"

Understand measured usage

Receipts can include browserMs, nativeExecutionMs, containerMs, containerCpuMs, and AI token usage. The final native charge uses execution time, excluding input transfer and queue/startup time. Container wall time is not CPU time. These measurements determine RelayPDF charges; they are not an allocation of an AWS or Cloudflare invoice.

Immutable rate versions

Final release rate relay-volume-2026-09-v2: browser/native base $0.0004/job; browser $0.0003/second; native $0.0005/second; basic Worker tools $0.002/job; AI $0.002 + 8× versioned provider token cost + rendering. Charges round up once to a whole microdollar. Existing accounts retain their assignment, and accepted quotes keep their rate snapshot.

AI token accounting

The final model card pins grok-4.6. Customer rates per million tokens are $16 input, $4 cached input, and $48 output. At 200,000 or more input tokens in a call, token rates double for that call. Model, cache, and token measurements must match the accepted card; missing evidence fails unbilled. Large extraction jobs can use multiple calls.

Dashboard controls

Open Billing & credit to see available credit, add funds, configure auto-reload, review your assigned rate, set the account spending limit, and inspect recent receipts. Jobs & usage supports status and operation filters, pagination, error codes, and exact fees.