Pricing
Verdict sells one thing: the decision. Everything else is free.
Decisions
Section titled “Decisions”| Decision | Price per call | Question |
|---|---|---|
qualify_firm |
$0.005 | Is this firm in my ICP? |
score_signal |
$0.005 | Does this event matter, and is now the time? |
pick_person |
$0.005 | Who at this firm should I write to? |
triage_reply |
$0.003 | What does this reply mean? |
right_person |
$0.003 | Is this the right person to contact? |
should_send |
$0.003 | Should this message go out now? |
Prices come from the x-verdict-price-usd field on each operation in the OpenAPI document, the same value the billing ledger uses.
Calls that bill per item
Section titled “Calls that bill per item”| Call | Price |
|---|---|
POST /v1/decisions/qualify_firm |
$0.005 per call, billed only when an answer is returned |
POST /v1/decisions/score_signal |
$0.005 per call, billed only when an answer is returned |
POST /v1/decisions/pick_person |
$0.005 per call, billed only when an answer is returned |
POST /v1/decisions/triage_reply |
$0.003 per call, billed only when an answer is returned |
POST /v1/decisions/right_person |
$0.003 per call, billed only when an answer is returned |
POST /v1/decisions/should_send |
$0.003 per call, billed only when an answer is returned |
GET /v1/events |
free unscored; with icp_id each scored event bills one score_signal ($0.005) |
POST /v1/watches |
free to create; each delivered event bills one score_signal ($0.005) |
POST <your webhook_url> (scoredEvent) |
bills one score_signal ($0.005) when delivered, never per retry |
Index reads (GET /v1/firms/resolve, GET /v1/firms/{id}, unscored GET /v1/events, GET /v1/sources), outcomes, ICP profiles, watch management, keys, balance, usage and every other account call.
Never billed
Section titled “Never billed”- A call that returns no answer.
- A call that fails, for any reason, including 503
decision_unavailable. - A call refused before spend: 402
insufficient_balanceormax_cost_exceeded. - A repeated request with the same
Idempotency-Keywithin 24 hours. - A watch delivery retry.
Credit
Section titled “Credit”You get $5 of starter credit at sign-up, no card. Test keys (vd_test_) draw on a separate, non-cash test balance. A card is needed once you pass $5 of usage or 1,000 calls, whichever comes first.
Top up with POST /v1/topup. It returns a Stripe Checkout URL. Needs account:manage.
| Pack | Buy with |
|---|---|
| $20 | POST /v1/topup with {"pack_usd": 20} |
| $50 | POST /v1/topup with {"pack_usd": 50} |
| $200 | POST /v1/topup with {"pack_usd": 200} |
Auto top-up is optional: set a threshold and a pack. Balance does not expire while the account is active. Accounts with no calls for 12 months are notified and then closed under the retention policy.
Controlling spend
Section titled “Controlling spend”X-Max-Cost-USDon any call: refused with 402 before spend if the call would cost more.- A daily spend cap per key.
GET /v1/usageandGET /v1/ledger(scopeaccount:read) for spend per project, per decision and per day.
Vendor data
Section titled “Vendor data”Phase 2 adds vendor pass-through (for example email lookup through treg or your own vendor keys). Vendor calls are billed at the vendor’s price, itemized as cost.vendor_usd with the vendor named, with no markup. Calls on your own vendor keys bill the decision price only.