Free, no-auth, rate-limited JSON. No key, no signup — the same delayed liquidation tape and measured track record this site publishes, for integrations, research, and independent verification.
/api/public/coin_teaser/* and /coins/*) so the tracked
universe can't be cheaply enumerated.429 with {"error":"rate_limited"}
and a Retry-After: 60 header.Cache-Control: public — cache them; the data
updates on its own schedule, not yours./api/public/liq_teaserGETLiquidation tape teaser (majors)
| Params | none |
|---|---|
| Response fields | ok, delayed_minutes, window_hours, generated_at, note; totals_24h{events, usd, long_usd, short_usd, largest_single_usd}; majors_24h[] per symbol (BTC/ETH/SOL/XRP); tape[] — last 40 delayed events ≥ $5k {ts, exchange, symbol, side, price, usd} |
| Notes | Cross-exchange liquidation tape, majors only, delayed 15 minutes. Descriptive history, not a forecast. 60s server cache. |
/api/public/coin_teaser/BTCUSDTGETPer-coin liquidation snapshot
| Params | path: {symbol} — any tracked perp symbol (e.g. BTCUSDT, ETHUSDT; the tracked universe is the /coins/* page set). Unknown symbols 404 (symbol_not_tracked); malformed symbols 404 (invalid_symbol). |
|---|---|
| Response fields | ok, symbol, delayed_minutes, window_hours, note, events_24h, usd_24h, long_usd_24h, short_usd_24h, largest_single_usd; tape[] — last 20 delayed events ≥ $5k {ts, exchange, side, price, usd} |
| Notes | Delayed 120 minutes on the free surface (the live free-tier delay — longer than the majors teaser). Stricter 60/min per-IP bucket (see rate limits). |
/proof/statsGETLive accuracy track record
| Params | none |
|---|---|
| Response fields | ok, generated_at, basis, random_baseline, window, headline, global, per-symbol governed blocks — every precision figure carries its sample size n and a Wilson 95% lower confidence bound (ci95_low / wilson_low) |
| Notes | Walk-forward, out-of-sample, de-overlapped. The same payload that powers the /proof page. 5-min server cache. |
/proof/evidenceGETFull accuracy evidence (download)
| Params | none |
|---|---|
| Response fields | ok, generated_at, what_this_is, verify_independently, ledger (complete published per-symbol accuracy ledger), headline_history (last 500 points) |
| Notes | The complete published track record as one machine-readable JSON (Content-Disposition: attachment). Includes auto-disabled symbols — publishing what we switched off is the point. |
/proof/ledger.csvGETAccuracy ledger (CSV)
| Params | none |
|---|---|
| Response fields | symbol, n_windows, n_effective_samples, precision_at_n_mean, precision_at_n_weighted, wilson_low, random_baseline, lift_vs_random |
| Notes | The same per-symbol ledger as a spreadsheet-ready CSV. |
/proof/anchorsGETCryptographic anchor chain
| Params | none |
|---|---|
| Response fields | ok, chain_length, chain[] (daily anchors, most-recent first, max 90), hashed_files, how_to_verify, basis |
| Notes | Daily hash anchors over the proof artifacts — verify the ledger's integrity independently. |
/proof/feed_trustGETFeed reconciliation verdicts
| Params | none |
|---|---|
| Response fields | ok, generated_at, window (rolling 7d), last_reconcile_run_ts, what_this_is, venues{} per venue {verdict, accuracy_pct, reconcile_accuracy_pct, coverage_pct, n_assessable, n_runs, ...} |
| Notes | We audit our OWN liquidation tape against independent exchange references and publish the verdicts, with the n shown. |
/feeds/trustGETTrust-scored venue feed
| Params | none |
|---|---|
| Response fields | ok, generated_at, window, as_of, venues_measured, venues_tracked, basis, venues[] per venue {verdict, n, Wilson ci95_low, trend, days_measured} |
| Notes | Per-venue reconciliation trust scores with the honest measured-vs-tracked venue count. 5-min server cache. |
/receipts.jsonGETMachine-readable receipts
| Params | none |
|---|---|
| Response fields | ok, as_of, as_of_iso, what_this_is, track_record, autopsy_index, feed_trust, methodology_links |
| Notes | The verifiable-evidence locker in one JSON: measured track record, published cascade autopsies, feed-trust audit. |
/healthzGETLiveness probe
| Params | none |
|---|---|
| Response fields | status |
| Notes | Public liveness probe used by external monitors. |
/.well-known/mcp.jsonGETMCP discovery document
| Params | none |
|---|---|
| Response fields | mcp — streamable-HTTP discovery for the /mcp agent-native server |
| Notes | AI-agent-native access to the same validated data layer. Keyless /mcp calls give protocol discovery plus the get_proof_summary teaser; the data tools require a B2B API key (see /docs). |
Copy-paste; each returns JSON today.
curl -s https://hunterkiller.io/api/public/liq_teasercurl -s https://hunterkiller.io/api/public/coin_teaser/BTCUSDTcurl -s https://hunterkiller.io/proof/statsThree recipes, copy-paste runnable as-is against the live free endpoints — no key, no signup. Each is pinned in CI against the real payload shape, so what you copy is what runs.
import requests
r = requests.get("https://hunterkiller.io/api/public/liq_teaser", timeout=10)
r.raise_for_status()
d = r.json()
t = d["totals_24h"]
print(f"24h liquidations: ${t['usd']:,.0f} across {t['events']} events "
f"(tape delayed {d['delayed_minutes']} min)")
fetch("https://hunterkiller.io/api/public/coin_teaser/BTCUSDT")
.then((r) => r.json())
.then((d) => console.log(
`BTCUSDT 24h: $${Math.round(d.usd_24h).toLocaleString()} across `
+ `${d.events_24h} events (tape delayed ${d.delayed_minutes} min)`));
curl -s https://hunterkiller.io/api/public/liq_teaser
The live measured headline precision — with its sample size (n=…) and Wilson 95% lower bound — as a small auto-updating badge for your site. One iframe, no JavaScript SDK, no API key, no cookies. Attribution is built in; keep it intact.
<iframe src="https://hunterkiller.io/embed/accuracy" width="320" height="150" style="border:0;border-radius:10px" title="Measured liquidation-level accuracy, by Hunter Killer" loading="lazy"></iframe>The cross-venue funding snapshot (annualized mean, each figure with its venue count) and the Deribit gamma-flip level for BTC/ETH (each with its distance-from-spot and visible-strike count) — snapshot age on the face, descriptive-not-a-signal framing, and an honest unavailable state whenever a source is stale. One iframe, no API key, no cookies. Attribution is built in; keep it intact.
<iframe src="https://hunterkiller.io/embed/funding-gex" width="340" height="260" style="border:0;border-radius:10px" title="Cross-venue funding and dealer-gamma snapshot, by Hunter Killer" loading="lazy"></iframe>/api/v1/*, API-key
authenticated): real-time, full universe, metered.