verified-catalog
Verified Pay-Per-Call Catalog
A static, machine-readable catalog of pay-per-call (x402) services for AI agents, with factual results of our own automated checks. Published by @WithGrokBot.
Try it in one line
Which x402 web-search endpoint delivered on our last paid calls, at $0.01 or less? No key; 5 free lookups per client per UTC day:
curl -s "https://verified-catalog-lookup.withgrokbot.workers.dev/v1/lookup?task=web-search&max_price=0.01&ref=via-readme"const r = await (await fetch("https://verified-catalog-lookup.withgrokbot.workers.dev/v1/lookup?task=web-search&max_price=0.01&ref=via-readme")).json();Results are sorted by known-answer pass rate over our last paid calls, then price, each with its Base settlement receipts. Other tasks: /v1/tasks. Optional client=<your agent name>; ref only says where you found the link.
Related MCP server: quanta-x402-mcp
Pricing
5 free lookups per client per UTC day. The client is your
clientvalue when you send one, otherwise a salted hash of your IP (raw IPs are never stored). The counter resets at 00:00 UTC. Only/v1/lookupis metered;/v1/tasks,/openapi.jsonand the static catalog files stay free.After that, $0.02 USDC on Base per lookup via x402. The lookup answers HTTP 402 with a v2
PAYMENT-REQUIREDheader (exactscheme,eip155:8453, USDC, payTo0x37cfCC8a29e9ff9458902B29E31E42dc7B718674). Retry with aPAYMENT-SIGNATURE(orX-PAYMENT) header; the payment is verified and settled through the public PayAI x402 facilitator, and the settlement tx comes back in thePAYMENT-RESPONSEheader and the response'saccessblock.Payment never changes results, sort order or listings. It buys query access only. Free, paid and exempt lookups run the same code on the same data and get identical results; no seller can pay for placement, and no check result or known-answer outcome depends on who paid. Every lookup response repeats this in
payment_policy.
Remote MCP server (free)
https://verified-catalog-lookup.withgrokbot.workers.dev/mcp (Streamable HTTP, stateless JSON-RPC, no key). Same 3 tools and results as mcp/server.py: search_catalog, get_service and lookup. lookup uses the client name vc-mcp, so it shares that client's 5 free lookups per UTC day; after that it reports the 402 and does not pay. Registry name: io.github.withgrokbot/verified-catalog (server.json).
Always-paid endpoint (x402)
GET https://verified-catalog-lookup.withgrokbot.workers.dev/v1/lookup/paid?task=web-search&max_price=0.01 takes the same parameters and returns the same result as /v1/lookup, for $0.02 USDC on Base per call with no free quota. Its 402 carries x402 Bazaar discovery metadata (extensions.bazaar); it is also listed in /openapi.json (x-payment-info) and /.well-known/x402. Bad parameters get a 400 before anything is settled.
Files
index.html,services/<id>.html,methodology.html: the site (no JavaScript, no requests to other hosts)catalog.json,services/<id>.json,llms.txt,.well-known/agent-card.json: machine-readabledata/services.json: the seed listings (source and retrieval date on each),data/site.json: brand/repo settingsresults/latest.json,results/history.jsonl,results/raw/<run>/<id>.json,results/spend_ledger.json: check results and evidencescripts/run_checks.py: run checks (free/dry-run by default) and rebuild;scripts/build_site.py: rebuild onlydata/quality_tests.json,scripts/quality.py: known-answer tests run on every paid call (pass/fail; broken services are "facts only")receipts.json: every paid call (time, charged, settlement tx with Basescan link, delivered, known-answer result)worker/: reliability lookup, a Cloudflare Worker (GET /v1/lookup?task=web-search&max_price=0.01&n=5) that readscatalog.jsonandreceipts.jsonfrom this site and counts distinct clients (seeworker/README.md)mcp/server.py: small stdio MCP server withsearch_catalog,get_service(readcatalog.json) andlookup(calls the Worker); the Worker serves the same tools remotely at/mcpserver.json: official MCP Registry entry (remote server)scripts/demand_weekly.py: weekly count of distinct lookup clients ->results/demand_weekly.json.github/workflows/daily.yml: daily free checks and commit
Run
python3 scripts/run_checks.py # free checks, no payment (default)
python3 scripts/build_site.py # rebuild pages from data/ and results/
python3 tests/run_tests.py # acceptance tests (Node 18+ for the Worker tests)Paid checks exist but are off by default. They need --pay, a wallet file outside this folder (--wallet), and pip install -r scripts/requirements-pay.txt. Hard caps: $0.10 per call, $1.00 per UTC day, $20.00 lifetime; only USDC "exact" on Base is ever signed.
We publish facts only, no grades. We hold no customer funds and are not a party to any seller transaction; lookup fees after the free tier go to our own wallet. To contest a result, open a GitHub issue (see methodology.html#contest).
License
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Pay-per-call agent tools over x402: site audits, llms.txt generation, wallet watch, catalog.
x402-paid agent tools: 18 over HTTP, 14 over stdio. USDC per call, no API key.
European business verification for AI agents: registry, VAT, sanctions, IBAN. Pay-per-call x402.
Pay-per-call x402 services for agents: risk scoring, DeFi, wallet and market data.
Related MCP Servers
- AlicenseAqualityCmaintenanceValidate AI claims against live data: check endpoints, count competitors, and test hypotheses. Includes free and paid tools via x402.16MIT
- FlicenseNot gradedqualityBmaintenancePay-per-call structured data for autonomous AI agents. x402-metered, MCP-native.-
- FlicenseAqualityDmaintenancePay-per-call tools for AI agents including trust checks, due diligence, market data, and human-verified approvals, settled in USDC on Base via the x402 protocol.16-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform medical-billing tasks like prior authorization checks, claim denial decoding, unpaid claim triage, appeal assessments, and PHI de-identification using deterministic rules engines with per-call payments via the x402 protocol.36 npmMIT