{"openapi":"3.0.3","info":{"title":"Hunter Killer Free Public API","version":"1.0.0","description":"Free, no-auth, rate-limited JSON: the delayed cross-exchange liquidation tape (delayed 15 minutes) and the measured walk-forward accuracy track record (every precision figure carries its sample size n and a Wilson 95% lower confidence bound). Descriptive history, never a forecast, never financial advice. Rate limits: 600 requests/minute per IP globally; 60/minute per IP additionally on /api/public/coin_teaser/* — over the limit returns 429 with Retry-After: 60. Real-time data and the full tracked universe are the paid B2B API (https://hunterkiller.io/docs).","termsOfService":"https://hunterkiller.io/legal/terms"},"servers":[{"url":"https://hunterkiller.io"}],"paths":{"/api/public/liq_teaser":{"get":{"summary":"Liquidation tape teaser (majors)","description":"Cross-exchange liquidation tape, majors only, delayed 15 minutes. Descriptive history, not a forecast. 60s server cache. 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}","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/api/public/coin_teaser/{symbol}":{"get":{"summary":"Per-coin liquidation snapshot","description":"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). 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}","parameters":[{"name":"symbol","in":"path","required":true,"description":"Tracked USDT-perp symbol, e.g. BTCUSDT, ETHUSDT. The tracked universe is the /coins/* page set. Unknown symbols 404 (symbol_not_tracked).","schema":{"type":"string","pattern":"^[A-Z0-9]{2,20}$"},"example":"BTCUSDT"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/proof/stats":{"get":{"summary":"Live accuracy track record","description":"Walk-forward, out-of-sample, de-overlapped. The same payload that powers the /proof page. 5-min server cache. 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)","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/proof/evidence":{"get":{"summary":"Full accuracy evidence (download)","description":"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. Response fields: ok, generated_at, what_this_is, verify_independently, ledger (complete published per-symbol accuracy ledger), headline_history (last 500 points)","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/proof/ledger.csv":{"get":{"summary":"Accuracy ledger (CSV)","description":"The same per-symbol ledger as a spreadsheet-ready CSV. Response fields: symbol, n_windows, n_effective_samples, precision_at_n_mean, precision_at_n_weighted, wilson_low, random_baseline, lift_vs_random","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/proof/anchors":{"get":{"summary":"Cryptographic anchor chain","description":"Daily hash anchors over the proof artifacts — verify the ledger's integrity independently. Response fields: ok, chain_length, chain[] (daily anchors, most-recent first, max 90), hashed_files, how_to_verify, basis","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/proof/feed_trust":{"get":{"summary":"Feed reconciliation verdicts","description":"We audit our OWN liquidation tape against independent exchange references and publish the verdicts, with the n shown. 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, ...}","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/feeds/trust":{"get":{"summary":"Trust-scored venue feed","description":"Per-venue reconciliation trust scores with the honest measured-vs-tracked venue count. 5-min server cache. Response fields: ok, generated_at, window, as_of, venues_measured, venues_tracked, basis, venues[] per venue {verdict, n, Wilson ci95_low, trend, days_measured}","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/receipts.json":{"get":{"summary":"Machine-readable receipts","description":"The verifiable-evidence locker in one JSON: measured track record, published cascade autopsies, feed-trust audit. Response fields: ok, as_of, as_of_iso, what_this_is, track_record, autopsy_index, feed_trust, methodology_links","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/healthz":{"get":{"summary":"Liveness probe","description":"Public liveness probe used by external monitors. Response fields: status","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}},"/.well-known/mcp.json":{"get":{"summary":"MCP discovery document","description":"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). Response fields: mcp — streamable-HTTP discovery for the /mcp agent-native server","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited — back off for Retry-After seconds.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["rate_limited"]}}}}}}},"x-rate-limit":{"global_requests_per_minute_per_ip":600,"coin_surface_requests_per_minute_per_ip":60,"retry_after_sec":60}}}}}