Plans & Billing
ZebraTruth meters usage in credits. Every check reserves credits before it runs and commits them when it completes, soGET /v1/usage always reflects what the current period can still spend.
Plans
Each plan carries a credit allowance per billing period, a rate limit and a concurrency limit. Current allowances are shown on the dashboard. Credits do not roll over.
Individual plan limits
Individual is scoped to solo use. It includes compliance checks and the API, but not the operational surface around them:
The same limits apply to an expired trial. The trial itself is unlimited —
it is there to show the full breadth of coverage — but once it lapses the account
is held to the entry-level allowance until a plan is chosen.
Calling a restricted endpoint returns
403 entitlement_required.
Callbacks work on every plan
Only saved webhook endpoints are restricted — registering them, listing them, and reading delivery history, all under/v1/webhooks. Those return
403 entitlement_required on Individual.
Passing a webhookUrl on an individual request is not restricted, on any plan.
"responseMode": "async" therefore works on Individual too, which matters most
there: a video check can run for minutes, and async is how you avoid holding the
connection open for it.
On Individual, set
webhookUrl per request. There is nothing to register in
advance, and no delivery history to read afterwards — treat the callback itself
as the record.Scope limits are enforced twice
The second one exists because your plan can change after you chose your scope.
Every Individual subscription starts as a trial, where the limits do not apply, so
a selection made then can be wider than the plan you end up on. Rather than
silently narrowing a compliance check — which would change its verdict while still
returning
200 — the request is refused.
A request that names its own jurisdictions and platforms is judged on what it
names, so you can keep working immediately by sending no more than the limit,
without editing your saved settings first.
Changing plan
Start a subscription withPOST /v1/billing/checkout, passing plan as either
individual or pro.
Upgrading Individual to Pro
POST /v1/billing/upgrade moves an Individual subscription to Pro immediately:
- You are charged for Pro straight away.
- Your billing period restarts on the upgrade date, and renewal moves with it. Upgrading on the 14th means your next charge is the 14th of the following month.
- Unused Individual credits carry into the first Pro period, on top of the Pro
allowance.
GET /v1/usagereports the two parts separately asbaseCreditsandcarriedCredits.
Idempotency-Key header. Reuse the same key when retrying
after a timeout — a retry with a new key can charge twice.
Downgrading from Pro to Individual is not supported.
Checking Your Balance
creditsRemaining, creditsTotal, creditsUsedThisMonth, and period dates.
creditsTotal is also broken out as baseCredits (your plan’s allowance) plus
carriedCredits (anything carried in from an upgrade). carriedCredits is 0
unless you have upgraded from Individual to Pro mid-period — without it, a Pro
invoice next to a cap above the Pro allowance looks like a billing error.
Cost Breakdown
Every response includescostBreakdown showing per-agent, per-stage credit usage with cache hit indicators.