Skip to main content
AwaitVerify bills per page reviewed. No subscriptions, no minimums, no markup on the AI verifier in Flow C.

Rates

PriorityPer pageWhen to use
Standard$0.80Default. Reviewer SLA target: under 24 hours, typically under 4 hours during business hours.
Express$1.60 (2×)When you need a faster turnaround. Reviewer SLA target: under 1 hour, with priority routing.
Selected per call:
result = await verify_document(
    document_path="urgent-contract.pdf",
    response_schema=Summary,
    task_description="...",
    priority="high",   # "high" = Express; default is "standard"
)

What counts as a page

After we rasterize the document, one rendered page = one billed page. So:
InputPage count
Single PNG / JPEG / single-page PDF1
Multi-page PDF (N pages)N
Multi-page TIFF (N frames)N
DOCX / XLSX / PPTXThe page count of the LibreOffice-rendered PDF
We cap at 100 pages per call. If you have a 500-page document, split it.

What doesn’t get billed

  • Failed tasks. If the SDK can’t load the document, if the OSS reviewer service is unreachable, or if the reviewer cancels the task before submitting, you’re not billed. The pre-check happens before the debit.
  • AI verifier loops in Flow C. If the verifier disagrees and the task re-routes to a second human, the second review is included in the original page-count charge.
  • Tasks that time out. If no reviewer submits before timeout_seconds, the task expires and you’re not billed.
  • Provider calls in Flow B. Your OpenAI / Reducto / Azure calls run on your machine with your credentials. We don’t see them, we don’t pass them through.

How balance works

Sign up gives you a small free credit so you can run your first few smoke tests. After that you top up. Balance is checked at task creation time. If you don’t have enough to cover the estimated cost of the call (page_count × rate), the call fails with InsufficientBalanceError before any work happens.

Low-balance warnings

Configure a threshold from the billing page. When a debit takes your balance below the threshold for the first time, we send one email warning. The email contains a top-up link. No spam, one shot, you re-arm the warning by topping up. For programmatic monitoring, the verify_document() response includes a low_balance_crossed flag on the underlying managed task (read it from the AwaitHumans client if you need it):
# Coming in v0.2: track the flag via the client.audit() API.
# For v0.1 use the email threshold.
InsufficientBalanceError is raised when the pre-flight check fails:
from awaithumans.awaitverify import InsufficientBalanceError

try:
    result = await verify_document(...)
except InsufficientBalanceError as exc:
    # exc.balance_cents: current balance
    # exc.required_cents: what the call needed
    # exc.docs_path: points back to this page
    print(f"Add ${(exc.required_cents - exc.balance_cents) / 100:.2f} of credit at app.awaithumans.dev/billing")
The exception’s docs_path field is "insufficient-balance", so you can route users to the right help page from your own UI.

Enterprise / volume

Above $5,000/month or specific compliance terms (BAA, SCC, audit-log retention beyond 30 days), email enterprise@awaithumans.dev. We do prepaid credits with custom invoicing and operator-grant transactions for the test sandbox.

Where to go next

Errors

Every error class including InsufficientBalanceError + how to recover.

Security

What we retain about your billing (timestamps + amounts) vs. what we don’t (response content).