Skip to main content

Credits

All modules draw on one shared credit balance per client. There is a single ledger — Speech, Interview, and CV DeepMatch deduct from it when work succeeds, and a single endpoint reports it.

Pricing

ModuleCost
Speech analysis1 credit per minute of audio duration (rounded up).
InterviewPer-minute interview rate (rounded up to the next minute).
CV DeepMatch3 credits per match.

A 3 min 20 s speech run costs 4 credits; a 12 min 5 s run costs 13.

CV DeepSearch billing

CV DeepSearch is currently in preview and not yet metered — ingest and search calls don't deduct credits yet. Metering lands in a follow-up release.

When credits are charged

You are charged only when a unit of work succeeds, never on a failed run:

OutcomeCharge
success / completed / finishedFull charge.
partial (Speech)Proportional to scores produced.
failedNo charge.

Reserve, then charge (Speech)

For Speech (POST /api/v1/speech/analyze), credits are held at submit and only charged when the analysis succeeds:

  1. At submit the request's cost (1 credit per started minute of audio, minimum 1) is reserved against your available balance. Available = your credit balance minus credits currently held for other in-flight requests. If the cost exceeds available, the request is rejected and nothing is reserved.
  2. On success the held credits are charged (your balance drops by the cost).
  3. On failure the hold is released and your balance is untouched.

This means concurrent submissions can never collectively outspend your balance, and you are never billed for a run you didn't receive.

Pre-submit check

A Speech request is rejected when its cost exceeds your available balance (balance minus active holds). There is no flat minimum — a small balance can fund a short clip:

402 INSUFFICIENT_CREDITS

The error body includes details.cost and details.available. In-progress and queued work always completes; queued requests keep their hold until they run.

Checking your balance

curl "https://platform.zenhire.ai/api/v1/credits" \
-H "X-API-Key: zh_api_…"

Returns the current balance, lifetime usage breakdown, and recent transactions across all modules. See the full schema + interactive "Try it" console at GET /api/v1/credits.

GET /api/v1/credits is a Universal endpoint — it belongs to no single module and lives directly under /api/v1.

Credits in poll/result responses

Successful Speech polls (and the equivalent terminal responses on other modules) include a credits object so you know exactly what was charged:

{
"credits": {
"deducted": 3,
"remainingBalance": 538,
"audioDurationMinutes": 3
}
}

Adding credits

Self-serve top-up isn't available yet. Contact ZenHire support to top up credits — we process the request and your balance updates immediately.