The same data that powers the GALAXSI radar, served as plain JSON with CORS wide open. Official exchange delisting announcements, stablecoin peg drift, funding extremes and open-interest cliffs — refreshed roughly every 30 minutes.
https://vekilo.app/data/haber_radar.jsonThe main radar. Everything the front page shows.
| Field | Type | Meaning |
|---|---|---|
| updated | number | Unix seconds of the last sweep. |
| delist | array | Active official delisting announcements (last 30 days). |
| depeg | array | Stablecoin peg readings. |
| funding_uc | array | Perpetuals with extreme funding rates. |
| oi_cliff | array | Sudden open-interest collapses. |
| fear_greed | object | {value, cls} — market sentiment index. |
| kaynak_hata | array | Sources that could not be reached this sweep. Read this — if an exchange is listed here, its status is UNKNOWN, not "clean". |
// live sample { "updated": 1787478300, "delist": [ { "sym": "ICX", "borsa": "KuCoin", // exchange "title": "KuCoin Futures Will Delist ICXUSDT…", "ts": 1787478300000, // ms "tarih": "23.08" // dd.mm } ], "depeg": [ { "sym": "USDC", "fiyat": 0.99979, "sapma_pct": -0.021, // drift % from $1 "alarm": false } // true = hard depeg ], "funding_uc": [ { "sym": "KR200", "rate_pct": 0.5 } ], "oi_cliff": [], "fear_greed": { "value": 73, "cls": "Greed" }, "kaynak_hata": [ "Bybit" ] }
https://vekilo.app/data/duyurular.jsonHuman-readable announcement feed — each delisting and alarm written out as a short message. Handy if you want to relay alerts without formatting them yourself.
{
"updated": 1787478300,
"items": [
{
"id": "delist-KuCoin-ICX", // stable — dedupe on this
"ts": 1787478300,
"type": "delist",
"emoji": "⛔",
"baslik": "KuCoin, ICX coinini delist ediyor",
"metin": "…",
"etiket": "KRİTİK"
}
]
}
Text fields are Turkish. id is stable across sweeps — use it to avoid posting the same alert twice.
https://vekilo.app/data/arkeoloji.jsonLeak archaeology — the part no free tool offers. For each delisting, it measures the 48 hours before the announcement: if price fell hard on abnormal volume, someone likely knew early.
{
"sizinti": [
{ "sym": "ICX", "tarih": "20.08",
"pre48_ret_pct": -11.8, // 48h return before news
"hacim_orani": 2.93, // volume vs normal
"supheli": true } // statistically odd
],
"github": [
{ "sym": "STORJ", "repo": "storj/storj",
"son_push": "2026-08-19",
"ay_once": 0, "olu": false } // olu = abandoned
]
}
Read carefully: supheli: true means the price/volume pattern is statistically unusual. It is not an accusation of insider trading against any person or exchange, and must not be presented as one.
https://vekilo.app/data/oi_snapshot.jsonRaw open-interest readings per symbol, used to compute the OI cliff.
{ "ICX": { "oi": 1234567, "ts": 1787478300 } }
https://vekilo.app/coin/<coingecko-id>/Human-readable risk report page for any of 1,200+ coins. Not JSON — but stable, linkable and safe to embed in a chat reply.
// examples
https://vekilo.app/coin/bitcoin/
https://vekilo.app/coin/pepe/
https://vekilo.app/coin/shiba-inu/
const r = await fetch('https://vekilo.app/data/haber_radar.json'); const d = await r.json(); // how stale is this data? const mins = Math.round((Date.now() - d.updated * 1000) / 60000); console.log(`radar swept ${mins} min ago`); // a source that failed means UNKNOWN, not safe if (d.kaynak_hata?.length) console.warn('unreachable:', d.kaynak_hata.join(', ')); for (const x of d.delist) console.log(`${x.sym} — ${x.borsa} (${x.tarih})`);
import requests d = requests.get("https://vekilo.app/data/haber_radar.json").json() for s in d["depeg"]: if s["alarm"]: print(f"HARD DEPEG {s['sym']} @ {s['fiyat']}") elif abs(s["sapma_pct"]) > 0.1: # the early tremor most dashboards round away print(f"drift {s['sym']} {s['sapma_pct']}%")
curl -s https://vekilo.app/data/haber_radar.json \
| jq -r '.delist[] | "\(.sym) — \(.borsa) \(.tarih)"'
borsa = exchange, fiyat = price, sapma_pct = deviation %, tarih = date, kaynak_hata = source error, sizinti = leak, olu = dead). They will not be renamed — renaming would break every existing integration.kaynak_hata. If an exchange failed to respond, the honest answer is "unknown", not "no flags". Please don't render silence as safety.Prefer not to write code? The same data answers in Telegram: send a coin symbol and get its risk card back.
// commands /delist — active delist flags /alarm — depeg, funding, market state PEPE — just send a symbol for a risk report