Your agent needs one fact from a page. Fetching the page costs it 50,000 tokens of HTML; the fact is a sentence. The gateway above reads the page for the agent — try it: the third example chip shows what happens when a page can't answer.
The guarantee
Grounding here is an engineering property, not a model behavior. A deterministic verifier checks that every excerpt is a character-for-character span of the fetched page and that the composed answer stays inside what the excerpts support — including negation. If verification fails twice, you get not_found, never a guess. A 40-case golden set gates every deploy: 100% grounded, zero fabrications. Read the grounding report — the harness is one command anyone can run.
Call it from code
curl -X POST https://botvisibility.com/api/answer \
-H "Content-Type: application/json" \
-d '{"url": "https://stripe.com/docs/webhooks",
"question": "how many times are failed webhook deliveries retried?"}'Every IP gets five answered questions a day to evaluate — no key needed. Only answered responses count; not_found, already_efficient, unreachable, and payment_required are always free, on every tier.
Pricing
| Tier | Price | How |
|---|---|---|
| Evaluate | 5 answered questions/day per IP | POST /api/answer, no key |
| Pay per answer | $0.01 USDC per answered question | x402 on Solana via pay.sh — no account, the payment is the credential |
| Prepaid key | $5.00 → 1,000 answers ($0.005/answer) | One x402 payment returns a Bearer key — half the pay-per-request rate |
The billing rule is enforced on-chain, not promised: the paid route returns HTTP 200 only for answered, and an x402 settlement completes only on 200. A question the source can't answer costs you nothing — you still get the full result body.
Pay per answer (agents)
# x402: the gateway quotes $0.01 USDC, your wallet pays, the answer returns.
curl -X POST https://pay.botvisibility.com/api/v1/answer-gateway \
-H "Content-Type: application/json" \
-d '{"url": "https://stripe.com/docs/webhooks",
"question": "how many times are failed webhook deliveries retried?"}'
# (any x402 client — pay.sh CLI, x402-fetch, Pay — handles the 402 → pay → retry)Prepaid key (developers)
# $5.00 once → a key with 1,000 answers. Then it's a normal Bearer key.
curl -X POST https://pay.botvisibility.com/api/v1/answer-keys
# → { "api_key": "bvag_…", "credits": 1000 }
curl -X POST https://botvisibility.com/api/answer \
-H "Authorization: Bearer bvag_…" \
-H "Content-Type: application/json" \
-d '{"url": "…", "question": "…"}'Every response carries a receipt
You can audit every call: what the page would have cost raw, what was delivered, what you saved, what you paid — and, on a paid web, what the source itself charged (source_cost_usd).
{
"state": "answered",
"answer": "Failed deliveries are retried up to 5 times with exponential backoff.",
"confidence": "high",
"excerpts": [{ "lines": "112", "text": "retried up to 5 times with exponential backoff" }],
"receipt": {
"raw_tokens_at_source": 48210,
"tokens_delivered": 61,
"reduction": "99.9%",
"est_tax_avoided_usd": 0.0481,
"fee_usd": 0.01,
"source_cost_usd": 0,
"route": "html_distill",
"cache": "miss"
}
}Those receipts, aggregated, are the Agent Tax Index — the public record of what the web costs agents to read.
Compliance, built in
The gateway honors robots.txt and no-AI signals (X-Robots-Tag, Content-Signals) before any fetch, identifies itself with a stable user-agent, caps every request at three fetches, and treats an HTTP 402 from a source as a price, not a wall. Full API details in the docs.