Pricing & Guardrails
Every service costs exactly $0.01 per request, paid via x402 with the exact scheme. One cent is the product promise, not a sample price: a route is only in the catalog if it can be served honestly at that price, and each route enforces caps that keep it there. The price you are quoted is the price you pay — there are no tiers, surcharges, or usage-based surprises.
Why some upstream modes are refused
Section titled “Why some upstream modes are refused”Several underlying sources offer modes that cost more than one cent to serve. Rather than silently downgrading your request or quietly eating the difference until the terms change, the API refuses them outright with 400 unsupported_options (or a strict-schema validation_error) — before payment, so a refused request costs you nothing:
| Refused mode | Offered instead |
|---|---|
| Exa deep / deep-reasoning search | Fast/auto search, max 10 results |
| Exa search with summaries | Results without summaries |
| Firecrawl scrape + JSON extraction | Plain markdown scrape |
| Firecrawl enhanced scrape | Plain markdown scrape |
| Firecrawl crawl / browser interaction / agent modes | Single map/search/scrape calls |
| Unbounded Context7 token budgets | Bounded token budget (see caps) |
Mechanically this is enforced two ways: the web-context input schemas are strict (unknown keys like scrapeOptions or summary are rejected outright), and in-range but unsupported combinations return unsupported_options.
The caps
Section titled “The caps”The hard limits that keep every call inside the one-cent envelope:
| Cap | Value | Applies to |
|---|---|---|
| Exa search results | 10 | exa-search (numResults) |
| Exa content URLs | 5 | exa-contents (urls) |
| Firecrawl search results | 10 | firecrawl-search (limit) |
| Firecrawl map links | 100 | firecrawl-map (response) |
| Firecrawl scrape content | 20,000 chars | firecrawl-scrape (markdown truncation) |
| Context7 token budget | 5,000 (min 500, default 2,500) | context7-query-docs (tokens) |
| Context7 resolve candidates | 5 | context7-resolve-library (response) |
| Wallet token balances / transfers | 10 / 10 | wallet-brief (response) |
Every cap is also stated on the service’s own page and in its machine-readable schema, so an agent can plan around them instead of discovering them by rejection.
Caching
Section titled “Caching”Public-data services cache responses in a server-side TTL cache (1, 5, or 10 minutes depending on the route — e.g. token-risk 5 minutes, protocol-context 10 minutes). A cache hit is flagged in the envelope (cache.hit: true) with the original provider attribution preserved. Each request is priced identically either way — caching buys you latency, not a discount, and never staleness beyond the stated TTL.