Skip to content

Usage and billing

Conversation requests use the authenticated user’s HarperHarbor credits. An authorized application can initiate a request on that user’s behalf; the application does not receive or hold the user’s balance.

Model rates are published by GET /open/v1/models. Input, cached input and output are priced separately. The server calculates the final charge from reported token usage. A completed response costs at least 1 credit.

Before generation, the service reserves enough credits for the request’s input and maximum output. A user may therefore need more available credits than the final response costs. Settlement releases the unused amount.

Charges follow actual model usage, even if the reply is blocked by a safety filter, refused because of its content, cut short by the output limit, or stopped by the user. Usage can be charged even when no reply text is shown.

Platform errors, including interruptions caused by deployment, are not charged. Service errors with no model usage are not charged either. Settlement releases the unused reservation and charges each operation once. Retrying the same immutable clientOperationId does not charge again.

If the wallet cannot cover the reservation, the API returns 402 insufficient_credits. Send the user to their account balance to review available credits.

Read GET /open/v1/conversation/operations/{operationId}. Use settled and chargeCredits together with the operation state. Account balance and ledger endpoints provide the corresponding account records. Do not calculate or promise the final charge from client-side token estimates.

See credit plans for package information and current purchase availability.

Agent preparation reserves credits before each model call, extending its existing reservation as needed. It settles aggregated reported input, output, cache-read and cache-write usage once per execution. Agent executions use token pricing, including when ordinary calls on that model have a fixed price. The catalog estimate describes one turn’s bounds and does not cap a multi-call Agent execution.

Completed model usage before a user stop or upstream failure is charged. Platform errors are not charged. Continuing saved preparation charges only new upstream work; reconnecting or replaying the same operation does not charge again. Automatic memory preparation keeps its separate billing lifecycle.

The account ledger labels these charges as Agent mode and records the actual model separately. Always read the operation’s final settled and chargeCredits values.