Skip to content
unzoi docs
Search and navigation
Start here
REST API
MCP
Limits and plans
Agent clients
SDKs
Guides

Planning a credit budget

Every call's price is known before it runs. Price the job, pick the cheap form of each call, cap what an agent may spend, and read what each call actually cost.

Price it before you run it

estimate=true on any endpoint — "estimate": true on any tool — returns the call's credit range and a breakdown, and whether it would run now. It costs nothing and runs nothing.

curl -s -G "https://api.unzoi.com/graph/network" -H "x-api-key: $UNZOI_KEY" \
  --data-urlencode "entity_id=organization:asml" \
  --data-urlencode "compare_from=2026-07-01" --data-urlencode "compare_to=2026-07-31" \
  --data-urlencode "estimate=true" | jq '{credits, breakdown}'
{
  "credits": { "min": 2, "max": 19 },
  "breakdown": [
    { "item": "graph_queries", "min": 2, "max": 16 },
    { "item": "network_compare", "min": 0, "max": 3 }
  ]
}

For a job of many similar calls, price one of each kind and multiply by the maximum. The maximum is what a key that stops at its allocation is checked against, and a call is never charged more.

Cap what a call may spend

max_credits refuses a call whose worst case costs more, before it runs and at no cost (credit_budget_exceeded). Pass it on every call an agent makes, and a model that reaches for a deep relationship traversal when a search would do is stopped at the call rather than at the invoice.

The cheap form of each call

Instead ofUse, when it answersSaves
mode=hybrid (3) mode=keyword (1) for a name, a ticker or an exact phrase 2 credits a search
A relevance-ranked /stories page with q sort=recency when you want what is newest Up to 2 credits a page
A relationship call with evidence evidence=0 when you only need who is connected Up to 12 credits a call
Walking deep offsets A cursor, or a narrower time window +1 per 1,000 rows of offset, and /stories stops at 1,000
An entity_id resolved on every call Resolving it once with /entities, then filtering on the exact field it names 1–2 credits a call
Many small pages limit=100 Nine calls in ten

What a watch spends

A watch costs its /stories query each run, plus 1 credit for every webhook delivery attempt. A plain watch on the Build plan's shortest interval of 15 minutes runs about 2,880 times a month, so about that many credits before any webhooks; the same watch with an entity_id costs up to three times as much. A longer interval is the lever: an hourly watch runs 720 times a month.

Preview a create with estimate=true: the answer adds per_run, runs_per_month and webhook_attempts_per_event_max, so the monthly cost is on the screen before the watch exists. A webhook endpoint that fails costs up to 4 credits an event in retries; fix it rather than letting it fail.

Read what it cost

Every priced answer carries credits_charged, and every REST response x-credits-charged. Sum them per job, or read /account (free) before and after. The console breaks the month down by operation — calls and credits side by side — which is where to look when a bill is larger than expected.

A job that must not overshoot belongs on a key that stops at its allocation: a call the credits left cannot cover is refused before it runs (insufficient_credits), never charged part-way. Credits and overage has the full table.