Skip to content

Pricing

Verdict sells one thing: the decision. Everything else is free.

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.

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.

  • A call that returns no answer.
  • A call that fails, for any reason, including 503 decision_unavailable.
  • A call refused before spend: 402 insufficient_balance or max_cost_exceeded.
  • A repeated request with the same Idempotency-Key within 24 hours.
  • A watch delivery retry.

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.

  • X-Max-Cost-USD on any call: refused with 402 before spend if the call would cost more.
  • A daily spend cap per key.
  • GET /v1/usage and GET /v1/ledger (scope account:read) for spend per project, per decision and per day.

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.