Candles and news vs the three-join

Lead product URLs: https://cryptodataapi.com/calendar, https://cryptodataapi.com/etf-flows, https://cryptodataapi.com/market-regimes.

I am Sam Deering. I built CryptoDataAPI so agents can join dated catalysts, institutional flows, and short-horizon regime before they size risk. Agents read. They do not trade. We are not a broker.

Candles and headlines say CPI printed. That is one surface. A trading agent still needs three more reads before FOMC:

The API joins those three surfaces on one key. The agent sizes on tape, not on the headline alone.

How to read the calendar (CPI done, FOMC in 2 days)

Open https://cryptodataapi.com/calendar. Pull the forward board first.

Each row is a dated catalyst with a bias and a 0–1 magnitude. Macro prints carry a risk_flag bias on purpose — the direction of a surprise is unknown ahead of time, but the print still raises event risk.

Fetched from the live API on 14 Sep 2026 (UTC): CPI has already printed. The Aug 2026 print (BLS, reported 11 Sep 2026) came in hot — headline +0.4% MoM / 3.4% YoY; core +0.3% MoM / 2.4% YoY. The calendar's next scheduled CPI release is now 2026-10-14, a month out. The near-term catalyst is FOMC release on 2026-09-16risk_flag bias, magnitude 0.967, 2 days away, source fed_calendar. Market-wide Event Risk on this fetch: elevated, 54.0/100 (consistent across both the 7-day and 30-day windows).

So the live read three days after the print is not "CPI is today" — it is "CPI already printed hot, and the next macro cliff, FOMC, is now imminent." Don't hard-code either date into a script; pull the board at call time.

REST for agents (any valid key on the public calendar itself; free tier included):

GET /api/v1/event/calendar?window_days=30
GET /api/v1/event/regime?window_days=7

There is no curated MCP tool named get_calendar. Use REST, or the MCP escape hatch query_api against those GET paths. Leave 401/402/403 bodies as-is if a key is missing or metered.

How to read the ETF flow streak

Open https://cryptodataapi.com/etf-flows. Read persistence, not one bar.

Green days are net creations (issuers buying spot). Red days are net redemptions (issuers selling spot). A single day is noisy. A run of red or green into a macro meeting is the signal.

Live board fetched 14 Sep 2026:

ReadBTC ETFsETH ETFs
Latest reported net flow−$13.2M+$216.4M
Cumulative+$102.8M over 56 reported figures+$618.9M over 41 reported figures

Both figures carry the label "reported 2026-09-14" — that's when the page shows them settling, not necessarily the trading day itself; the most recent BTC daily bars on the chart are dated through 2026-09-12, consistent with a short reporting lag. Read the bar dates, not just the "reported" stamp, when you need the actual trading day.

The last five BTC daily bars on this fetch: 2026-09-05 +$174.6M, 2026-09-09 +$4.5M, 2026-09-10 −$32.4M, 2026-09-11 +$3.8M, 2026-09-12 −$13.2M. That is not a clean streak — it alternates sign day to day. Prefer the live board over any brief that claims a multi-day run; if the board disagrees with a cached number, the board wins.

MCP tool: get_etf_flows. REST:

GET /api/v1/market-intelligence/etf/{asset}/flows

Swap btc for eth or sol when you need the sibling series (xrp is not supported — no free source publishes it). Note the REST call itself returns only the latest reported day, not a history array; the multi-day cumulative and streak reads above come from the same data as rendered on the human board. A bare call without a key may return 401 or an x402 payment_required body — leave those codes as-is.

How to read regime so size matches trend vs range

Open https://cryptodataapi.com/market-regimes.

The short-horizon engine is a Hidden Markov Model over six states. It is a nowcast, not a direction forecast. Use it to pick which playbook is allowed:

Live whole-market read fetched 14 Sep 2026:

FieldValue
regime.labelsqueeze
Model confidence97.5%
In regime since2026-09-12T22:00Z (~28 hourly candles)
Chance of a >5% drop (24h, 1,000 sims)3.7%
Chance of visiting a vol spike (24h)0.9%

Into FOMC, that read says: this is a Squeeze regime, not the Range / Low Volatility read an older brief might quote — breakout systems are the ones primed here, not mean-reversion. Confirm the label again after the meeting; regimes refresh about every 15 minutes.

The same call's probabilities.open_interest head on this fetch was near-flat: contracting 33.3%, neutral 35.7%, expanding 31.0%, head confidence 0.0015 — too uniform to read as a lean. Worth flagging: the market-scope breadth head uses the exact same three bucket names (contracting/neutral/expanding) for a different signal, and on this fetch happened to print the identical numbers. Read probabilities.open_interest and probabilities.breadth as two separate paths in the JSON even when they agree.

MCP tool: get_market_regime (Pro). REST:

GET /api/v1/quant/market?horizon=24h

A free-tier 403 here is expected. Confirm the account email for 24h Pro on the same key, or upgrade. Do not invent JSON keys. Do not retry a 403 as if it were a transient error.

One concrete live example (dated)

Fetched 14 Sep 2026 (UTC), via the live API:

  1. Calendar — CPI already printed (Aug data, reported 11 Sep). Next macro cliff is FOMC on 2026-09-16, 2 days out, magnitude 0.967. Event Risk elevated, 54.0/100.
  2. ETF flows — latest BTC print −$13.2M, cumulative +$102.8M over the last 56 reported figures; the last five daily bars alternate sign, not a clean streak. ETH is stronger: +$216.4M latest, +$618.9M cumulative over 41 figures.
  3. Regime — whole market is squeeze at 97.5% confidence, ~28 hours in regime. The open-interest probability head is near-uniform (33/36/31%, confidence 0.0015) — uninformative on its own.

Agent workflow on that tape: calendar says the next macro cliff is 2 days out with elevated event risk → ETF board shows a mixed, non-trending flow picture on BTC but persistent ETH strength → regime says this is a Squeeze, so breakout systems are the ones that should be primed into the meeting, not a forced mean-reversion trade. Confirm email on the free key if get_market_regime returns 403.

What this is not

This is not a candles-first tutorial. This is not a Discord blast. This is not a competitor war page.

This is not a rewrite of the Hyperliquid fill-tape post, the MCP-vs-candle-AI wedge, or the contracting open-interest-bucket post. Those are separate pieces. You may see get_market_regime mentioned here as join #3 — do not re-litigate GEX, fill tape, or the open-interest bucket's own JSON path here.

We are not a broker. Agents read. Humans decide.

For agents: MCP / REST truth and tool order

SurfaceMCP toolREST
Event calendarnone named get_calendar — use query_api or raw RESTGET /api/v1/event/calendar, GET /api/v1/event/regime
Spot ETF flowsget_etf_flowsGET /api/v1/market-intelligence/etf/{asset}/flows
Short-horizon HMM regimeget_market_regime (Pro)GET /api/v1/quant/market

Suggested tool order into FOMC:

  1. list_capabilities (no key) — see what your tier unlocks.
  2. create_free_api_key if you have no key — real email; confirm it for 24h Pro on the same key.
  3. Calendar via REST or query_api — what already printed, what is dated next, the event-risk band.
  4. get_etf_flows — latest reported day and the cumulative/streak read from the live board.
  5. get_market_regime — size for the labelled state. Leave 401/402/403 as-is.

Do not invent get_calendar. Do not invent JSON keys. Do not open with an OHLCV poll to discover this API.

MCP remote endpoint: https://cryptodataapi.com/mcp. Human docs: https://cryptodataapi.com/ai-agents/mcp-server. Agent hub: https://cryptodataapi.com/ai-agents. Python's built-in urllib needs a named User-Agent or the CDN returns HTML 403 (Cloudflare error 1010) before the API sees the call.

Docs and boards