Billing
Understand route pricing, cache behavior, surcharges, and refunds.
Current plan prices and credit allowances live on the RunHarvester website. The API response and the account's server-side plan configuration are authoritative; do not hard-code commercial values in client-side enforcement.
Published base-rate snapshot
The rates below are the published base-rate snapshot checked on October 3, 2026. They are not a guarantee of the active rule for a future request: pricing is configured server-side. Use the request's pricing_version, charged_tokens, and billing metadata as the source of truth for an actual charge.
The effective route mode determines the base request charge:
| Effective route | Base charge |
|---|---|
| HTTP | 1 credit |
| Browser / JavaScript | 4 credits |
| Residential HTTP | 8 credits |
| Residential Browser | 16 credits |
auto chooses an effective route. Check the returned route_mode and billing metadata when the exact charge matters.
What changes the charge
- Structured extraction is included in the request pricing; it does not add a separate structured-output charge.
- A cache hit creates a completed job and costs 0 credits.
skip_cache: trueforces a fresh request. Any non-emptybrowser_actionslist also bypasses the cache because it changes page interaction.- Built-in Cloudflare handling is included in the selected route mode.
- A paid external CAPTCHA attempt can add a surcharge. The amount depends on the active pricing configuration; use the returned billing metadata instead of inferring a charge from the challenge.
- An idempotent replay has
charged_tokens: 0and does not create duplicate work.
Measured proxy traffic is settled separately after completion and is reported in result_meta.proxy_usage_billing.charged_tokens. The charged_tokens value on request creation does not include that later traffic settlement. If traffic measurement is unavailable, its byte fields are null; do not treat that state as zero usage.
For new Data API requests, max_credits_per_request is a hard ceiling for the total charged execution, CAPTCHA, and measured traffic from successful results. Traffic settlement can be clipped to the remaining budget and reported as budget_limited. The cap applies when supplied; historical jobs created under the previous billing policy may have different settlement behavior. An idempotency key prevents duplicate submissions but does not itself set a spending cap.
Use Get usage, or the MCP tool data_get_usage, to inspect measured traffic and post-paid debits over the last 30 days. Measurement-unavailable jobs are counted separately from measured zero-byte usage.
Create and batch responses report charged_tokens; X-Credits-Charged, X-Credits-Remaining, and X-Credit-Pricing-Version expose the charged amount, remaining balance, and pricing version. Use those values instead of reconstructing a charge locally.
Failed and cancelled requests
Invalid submissions are not charged. Base and protected-browser debits follow the terminal-job refund policy. A paid external CAPTCHA task that was successfully solved can remain chargeable if a later scrape step fails; a failed service attempt or a task that never reached the service is refunded through recovery. A pending cancellation can return its base debit immediately, while a running cancellation may settle after recovery. A refunded base debit does not imply that every separate charge is free. Treat the returned token state and billing metadata as authoritative.
See Limits for capacity and retention, Retries and idempotency for safe resubmission, and the API reference for response fields.
Last updated on