Docs / Guides
Billing & packages
How a task is charged against your balance, how subscription packages are spent, what happens when a solve fails, and where refunds and credits come from.
The balance
Every account has a USD balance. Task charges and package purchases are paid from it,
and POST /getBalance reports it for the key you send:
{"errorId":0,"balance":9.987}
Top up in the dashboard or use the API-key deposit endpoints.
Choose a coin and network, create a deposit for a USD amount, and transfer the returned
crypto amount to its address. Include the memo or destination tag when one is returned.
Check the deposit status to see when the account balance has been credited.
The service price is the live rate sheet — GET /v1/services (no key needed,
price_per_request) or the pricing page — per accepted task.
When a task is charged
A task is charged when it is accepted — that is, when createTask answers
errorId: 0. It is not charged per successful solve:
- If the task finishes as failed, its original charge is refunded automatically once. Changing the service price later does not change the refund. For pay-as-you-go credit, the unpaid portion is cancelled and any already repaid portion returns to the balance.
- If the submission is refused (
ERROR_ZERO_BALANCE,ERROR_NO_SLOT_AVAILABLE,ERROR_INVALID_REQUEST,ERROR_TYPE_NOT_SUPPORTED), no task exists and nothing is charged — see Errors.
The failure and refund commit together. Internal retries do not refund a task while
it is still processing. A successful task keeps its charge. Contact support with the
taskId if you believe a charge was wrong.
Packages
A package is a prepaid bundle: a fixed price, a pool of solves, a duration in days and a set of covered services. Packages are listed on the pricing page (only while packages are on offer) and bought from the dashboard, paid from the balance.
What a package does, in exact terms:
- Used before the balance. A submission whose service is covered by an active package consumes one solve from it instead of charging the balance. If several packages cover the service, the one that expires soonest is used first.
- One solve per accepted task. Each accepted task spends one solve from the pool, whatever the service’s per-task price is.
- A failed task restores one solve. Restoration happens once and does not extend or reactivate an expired or cancelled package.
- Then the balance pays. When the quota is exhausted, the package has expired, or the service is not in the package’s scope, the task is charged from the balance as usual.
- The package ends after its duration. Remaining solves do not extend it, and its
state (
active,exhausted,expired,cancelled) is shown in the dashboard.
The task API keeps this simple: POST /getBalance returns the cash balance only.
Plan details — remaining solves, expiry, covered services — are in the dashboard.
Volume and custom arrangements
For high-volume usage we set custom rates — contact support to make a deal. There is no free trial by default; for testing, ask support about trial credit.