Fetch Chainstack's public pricing and return a normalized snapshot.
Use this to answer pricing questions before quoting the user: plan fit,
overage math, per-chain dedicated-node costs, and add-on pricing
(Unlimited Node flat-fee tiers, Yellowstone gRPC streams, Warp
transactions, dedicated-node base rates).
This tool returns the menu, not the bill — the calling agent does the
arithmetic. All prices are list prices in USD; disclaimers are surfaced
in the `disclaimers` field.
Design: we pass pricing.md through as raw markdown. Marketing owns that
file and its structure changes freely; parsing it server-side would
couple us to heading text and table column names we don't control. The
LLM reads markdown natively, so handing the raw text to the agent keeps
us correct regardless of how the page is restructured.
pricing_current.json is parsed into `dedicated_catalog` because it has
a stable engineering-owned schema, and the catalog benefits from
filtering (to user-orderable SKUs only), unit conversion (cents → USD,
milli-cores → cores), and region humanization (via `region_legend`).
Per-method RU billing rules are NOT in these sources. Plan-level rates
(Full Node = 1 RU, Archive Node = 2 RU) are in the markdown, but some
EVM archive-state methods (eth_getBalance, eth_call, eth_getProof,
eth_getStorageAt, eth_getCode, eth_getTransactionCount, eth_callMany,
eth_createAccessList) and all debug_* / trace_* methods are billed at
2 RU on a full node when called against old blocks. For method-level
detail, call `search_docs` with "request units" or
`get_doc_page("docs/request-units")`.
No API key required — sources are fully public. Each call fetches both
sources fresh (no caching), so a stale result isn't possible.
Returns:
A dict with fields:
- `pricing_markdown`: raw markdown from chainstack.com/pricing.md.
Read this for plan tiers, feature matrix, add-on pricing, support
levels, PAYG details, and provider comparisons.
- `dedicated_catalog`: user-orderable per-chain dedicated-node SKUs
with flavor, regions (as infra slugs like "sgp1"), hourly and
monthly prices in USD. Already filtered to the ~87 orderable SKUs
and unit-converted.
- `region_legend`: slug → human city name map covering every region
slug that appears in `dedicated_catalog`. Use `region_legend[slug]`
to translate for display; `regions` keeps the slug as the canonical
identifier.
- `disclaimers`: list-price caveats (Enterprise "from" pricing, etc.).
- `sources`: URL + ok/error per source; the JSON source carries its
own `updated_at`.
- `warnings`: populated when a source is unreachable or the JSON
parser failed. The tool still returns best-effort results.
- `fetched_at`: UTC timestamp of this call.