We're building the most comprehensive crypto data API we can, and it's still growing — there's always a coin, a field or an endpoint we haven't got to yet.
Please tell us about any data you think Crypto Data API should nail but doesn't. We're data nerds who love to geek out about market data, trading bots, AI agents, or how to make your trading stack work in general. Prefer a form? Send feedback.
— Sam and the CDA team
Join us on DiscordA filtered catalyst tape, not a news archive. Several hundred crypto stories a day go in; a noise gate, an entity resolver and an impact scorer discard almost all of them, and what survives is bound to a Hyperliquid perp, scored for impact and given a signed direction. No LLM anywhere in the path — every gate is deterministic.
Impact is a bounded 0–1 score combining how much that class of event moves a market, how confidently the coin was identified, how many independent sources carried it, and how recent it is. The tick marks the 0.45 publish threshold — anything left of it never reaches the tape. Dir is the signed bias: ▼ risk-off, ▲ risk-on, ● direction-neutral. A +n next to the source is corroboration — how many other independent desks carried the same event. A story that resolves to more than one coin appears once per coin, scored and ranked independently — that is one event affecting two markets, not a duplicate.
Headlines is raw coverage — how many stories in the current window name that coin at high confidence, whether or not they carried a tradeable catalyst. It is attention, not an event: the funnel below discards roughly 95% of what it reads, so pressure stays at 0.00 for most coins while coverage keeps running. A coin high on headlines with no pressure is being talked about without anything happening, which is itself worth knowing. Ranked by top impact — the strongest catalyst that coin carried — then by pressure, then by coverage. Every column here is measured over the same rolling 7 days as the tape above, so a coin whose headline you can see up there always has a row down here with real numbers against it. Pressure is recency-weighted across that window, so a catalyst from four days ago still registers — proportionally smaller than one from this morning. /news/pulse defaults to a tighter 24h window and takes ?hours=; pass hours=168 to reproduce this board exactly. Showing 20 of 178 active perps; the API returns every one, including the silent ones, because a cross-sectional ranking needs its zeros and a silently missing symbol is indistinguishable from a pipeline failure.
The pipeline re-scores its whole rolling window every 5 minutes, so newly qualified counts only what was not already on the tape — a story already published carries a novelty penalty on the re-run and lands in below threshold. It is normal for this row to read 0 while the tape above is populated. Counts are published on /news/sources as hourly buckets with no titles or URLs, so the filter can be watched over-tightening without us keeping a news archive to check it against.
Two numbers are the product. The headlines are the evidence.
News pressure (0–1) is how much qualified news weight a coin is carrying: a recency-weighted sum of its impact scores over a rolling window — 7 days on this page, 24 hours by default on /news/pulse — saturating so a burst compounds but stays bounded. News tilt (−1 to +1) is the direction of that pressure — the impact-weighted average bias. A coin can sit at high pressure with a tilt near zero when good and bad news land together, which is itself information.
The hard part of a news product is not extracting text, it is discarding 95% of it. Price predictions, listicles, sponsored posts, how-to guides, opinion pieces and weekly recaps are dropped before anything is scored. What is left has to name a catalyst class and resolve to a live Hyperliquid market.
Corroboration is the strongest free signal that a story is real. A genuine event gets picked up by every desk within hours; a press release does not. Events are clustered on the resolved (coin, category) rather than on title similarity — two desks describing the same outage in different words still land on the same event, which a word-overlap heuristic would routinely miss.
On latency, plainly: RSS lags the source by roughly 30 seconds to 5 minutes. This is a context, risk-off and event-study feed — it will not win a listing-sniping race and is not sold as one. The exception is Hyperliquid listings and delistings, which come from our own universe diff and are exact and immediate. This page is additionally a free preview cached for about 30 minutes; the API is real-time.
The coverage gap is published, not hidden. The perp universe contains tickers that are ordinary English words — TRUMP, MOVE, NOT, GAS, SAND — so those only ever match on a cashtag or their full project name, and a story about a politician never becomes a TRUMP event. /news/sources lists every symbol that can only be reached that way.
Every qualified catalyst is written to the backtesting archive at the moment it clears the bar, and then revisited as the market answers it.
/backtesting/news-events returns each event with its impact_score, signed bias and corroboration alongside the measured response —
ret_15m, ret_1h, ret_4h, vol_mult against that coin's own 30-day baseline, oi_change_pct, funding_shift and a combined abnormality.
That last set is what makes the impact score calibratable rather than merely asserted: you can check whether a 0.70 event really moved more than a 0.50 one before you trade either.
curl -H "X-API-Key: cdk_live_yourkey" \ "https://cryptodataapi.com/api/v1/backtesting/news-events?start=2026-01-01&min_impact=0.5&limit=5000"
Each point is one UTC day's impact-weighted mean bias across every qualified catalyst that day — the same calculation as the headline tilt at the top of this page, held still. A day with no catalysts is a real 0.00: the filter read several hundred stories and published none of them. The dotted stretch is not modelled data. It is the period before this archive existed, and it will stay empty forever — RSS serves a recent window only, so the tape cannot be replayed backwards. Everything to the right of the divider was observed as it happened. The same constraint applies to /regimes/history, and for the same reason.
curl -H "X-API-Key: cdk_live_yourkey" \ "https://cryptodataapi.com/api/v1/news/pulse?hours=24"
/news/pulse returns one row per perp — news_pressure, news_tilt, event_count, top_impact, cross-sectionally ranked. /news/market-moving is the tape itself, /news/coin/{symbol} narrows it to one perp, and /news/sources publishes feed health, the funnel and the coverage gap. Free covers BTC, ETH and market-wide stories over 24h; Pro opens the full perp universe over 7 days; Pro Plus adds the score components and the measured market response at +15m / +1h / +4h — return, open-interest change, funding shift and volume multiplier, so a headline that moved nothing scores near zero. Tiering changes coin coverage and score detail; it never changes the noise threshold.
Most headlines are noise; this tape scores the ones that actually moved price, with the measured market response afterwards. That measured response is what makes news testable — you are not backtesting sentiment, you are backtesting what the tape actually did next.
Build me an event-driven trading strategy on the CryptoDataAPI news tape.
Read live scored events from /api/v1/news/market-moving and the per-coin pressure ranking from /api/v1/news/pulse. Use the impact score and signed bias as the trigger, and define: the minimum score you act on, the direction rule, the entry delay (news is stale in minutes), the exit, and sizing.
Then backtest on the archived tape at /api/v1/backtesting/news-events joined to /api/v1/backtesting/klines. The archived events carry the measured response at 15m/1h/4h — use it to check whether the move happens BEFORE you could realistically enter.
Report profit factor with taker fees and a 60-second entry delay, then again with 5 minutes. If the edge only exists at zero delay, it is not tradeable — say so plainly.