Ask for exactly what you need
Ask the API for one metric, one token's hours today or the readout, and pay for what you asked. The same API key, the same data the site shows, the same prices as the MCP
1. The catalog
/v1/catalog· Free, no keyEvery daily metric (name, label, unit and group), the sections the token page shows, and every tool with its JSON input and its price. Read it once and you know the whole API
2. Any tool
/v1/tools/{tool}· The tool's priceThe body is the tool's input as JSON; the answer is { tool, ok, charged, data, text, images }. These are the MCP's own tools, so an AI app and your code get the same answer for the same price
curl -X POST "https://api.blocktronics.xyz/v1/tools/token_series" \
-H "Authorization: Bearer $BLOCKTRONICS_KEY" \
-H "content-type: application/json" \
-d '{"token": ["base:DEGEN", "base:AERO", "ethereum:SYRUP"], "metrics": ["netflow_usd"], "days": 30}'token_series: daily metrics for up to 5 tokens. 2 credits per tokentoken_overview,today,get_sections,render_chart: one token each. 2 creditscompare_tokens,screen_tokens,search_tokens,list_ecosystems,pay_attention: the whole market in one answer. 2 creditstoken_signals: the signals, whether the token leans bullish, bearish or balanced, and every fired signal. 1 credit. Withreadout: true, the full readout at the site's price, 10 credits, open 24 hours there tooexplain_metric,credit_costs,get_account: free
3. Several things at once
/v1/query· The sum of what it runsUp to 5 tokens, and any of metrics (with days, or from and to), today, overview, sections, signals and readout. Each is 2 credits per token, except the signals (1 per token) and the readout at its own price. The balance must cover the whole request before anything runs. A part that fails is named in that token's errors and isn't charged
const res = await fetch("https://api.blocktronics.xyz/v1/query", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.BLOCKTRONICS_KEY}`, "content-type": "application/json" },
body: JSON.stringify({
tokens: ["base:DEGEN", "base:AERO"],
metrics: ["holders", "netflow_usd"],
days: 14,
today: true,
}),
});
const { tokens, charged } = await res.json(); // 8 credits: 2 tokens × (metrics + today)
for (const t of tokens) console.log(t.token?.symbol, t.series?.summary, t.today?.everyone, t.errors);Which to use
- One question: a tool. One metric for up to 5 tokens is one
token_seriescall - Several things about a few tokens: the query, one request.
overviewgives a token's grade and main figures in one pull - Your AI app: the MCP, with the same key, the same tools and the same prices
Every answer is served at once from what Blocktronics has stored, and the tokens it read are brought up to the hour behind it (how fresh an answer is). Refusals and errors charge nothing