By the time a hack, depeg, or exchange delisting shows up in your Twitter feed, the price has already moved. That's especially brutal for trading bots, which happily buy the dip straight into a coin that's actively on fire.
I got tired of finding out after the candle, so I built a small API that answers one question in a single request:
"Is this coin dangerous right now — and can you prove it?"
It's free to start, and the demo endpoint below needs no key. Copy, paste, run.
The 30-second check
import requests
r = requests.get("https://crypto-intel-api-rulu.onrender.com/risk",
params={"symbol": "BTC"})
print(r.json())
Live response (your numbers will differ — this is real-time data):
{
"symbol": "BTC",
"risk_score": 60,
"chg_24h": 0.88,
"funding": 4.9e-05,
"danger_event": {
"event": "breach",
"verified": true,
"confidence": 1.0,
"source_count": 3,
"sources": ["BitcoinMagazine", "CryptoSlate", "Decrypt"],
"headline": "SafePal Bitcoin Wallet Data Breach Stokes Fears of Physical Attacks"
},
"global_risk": "NORMAL"
}
That's the whole point: a risk_score from 0–100, plus the actual event driving it, with the headline and the sources so you can verify it yourself. No black box.
Why the score is trustworthy
Most "crypto sentiment" APIs will happily flag a coin because one no-name blog used the word hack. This one only marks a danger event as verified: true when at least two independent sources report it. One rumor isn't an event.
-
Per-coin, not global —
risk_scoreis specific to the symbol you asked about, not a market-wide mood ring. -
Cross-verified —
source_count >= 2before anything is "confirmed", so you don't get faked out by a single clickbait headline. -
It tells you *why* —
event(breach/depeg/delist/legal), plus the headline and sources.
A clean coin just comes back quiet:
{ "symbol": "PEPE", "risk_score": 0, "danger_event": null, "global_risk": "NORMAL" }
Drop it into your bot as a pre-trade gate
Here's the part that actually saves money — a safety gate you call before opening a position:
import requests
def is_safe_to_trade(symbol, max_risk=50):
"""Return (ok, reason). Blocks trades on verified danger events."""
data = requests.get(
"https://crypto-intel-api-rulu.onrender.com/risk",
params={"symbol": symbol}, timeout=15,
).json()
ev = data.get("danger_event")
if ev and ev.get("verified"):
return False, f"{ev['event']}: {ev['headline']}"
if data.get("risk_score", 0) >= max_risk:
return False, f"risk_score {data['risk_score']} >= {max_risk}"
return True, "clear"
ok, reason = is_safe_to_trade("BTC")
if not ok:
print(f"⛔ Skipping trade — {reason}")
else:
print("✅ Clear to trade")
Three outcomes, no guesswork: a verified breach/depeg/delist/legal event blocks the trade, a high score blocks the trade, everything else is clear.
Bonus: what did the Fed / SEC / Treasury just say?
Regulatory headlines move this market more than any indicator. One call gives you the official ones, tagged bullish/bearish:
r = requests.get("https://crypto-intel-api-rulu.onrender.com/us-movers")
for e in r.json()["events"][:5]:
flag = "🏛️ official" if e["official"] else "press"
print(f"[{e['lean_text']:>7}] {flag} — {e['headline']}")
[neutral] 🏛️ official — Federal Reserve issues FOMC statement
[bullish] press — U.S. Treasury Department proposes GENIUS Act stablecoin rule
[neutral] 🏛️ official — SEC, CFTC Seek Public Comment on Derivatives Product Definitions
Sources are the real Fed / SEC / Treasury / CFTC feeds — not someone's newsletter.
Try it
-
Live demo (no key):
https://crypto-intel-api-rulu.onrender.com/docs - Get it for your app (free tier + API key, 14 endpoints, per-coin risk, US market-movers, whale txns, funding, Fear & Greed): Crypto Intel on RapidAPI
The free tier is enough to wire the safety gate above into a real bot. If it saves you one bad entry, it's paid for itself. Feedback welcome — I'm still adding endpoints.
Top comments (0)