HUNTER KILLER Docs Diligence pack

Documentation & institutional diligence pack

The ops-review checklist a fund needs to diligence us: the Data API reference, the metric definitions contract, our security posture, uptime and reliability, and data lineage. Written to be verifiable, not to impress. Where we don't have a certification or a committed number, this page says so.

Reference document · last revised 2026-07-09 · live track-record numbers are published separately at /proof

01

API reference: Data API

read-only · key-authed

A read-only, market-wide REST API serving our own precomputed derived analytics: calibrated liquidation magnets, horizon reach probabilities, cross-venue perp structure, cross-venue liquidation contagion, and our published track record. It never returns per-account or owner data, never the order path, and never the model recipe. All endpoints below are real and live in production.

Base URL & versioning

Base URL
https://hunterkiller.io
Version prefix
/api/v1. The surface is versioned; a breaking change ships under a new prefix.
Format
JSON. Every response carries an ok boolean; data endpoints also carry a basis string stating the honest interpretation (e.g. "descriptive, not a forecast") and a generated_at timestamp.
Discovery
GET /api/v1/catalog returns the machine-readable endpoint catalog so integrators can enumerate the surface programmatically.

Authentication

Every /api/v1/* call requires a Bearer API key. Pass it either way:

# Authorization header (preferred)
curl -H "Authorization: Bearer <YOUR_API_KEY>" \
     https://hunterkiller.io/api/v1/health

# or the x-api-key header
curl -H "x-api-key: <YOUR_API_KEY>" \
     https://hunterkiller.io/api/v1/magnets?symbol=BTCUSDT

Keys are issued self-serve by any authenticated subscriber on a pay-as-you-go, pro, or institutional plan: POST /api/keys/mine (the plaintext secret is shown once; store it immediately). Manage your keys with GET /api/keys/mine and POST /api/keys/mine/{key_id}/revoke. An API key can never satisfy an owner or another tenant's session gate. It grants access to the market-wide analytics surface only.

Rate limits

Per key
Institutional / pro / comp keys default to 120 requests/minute; pay-as-you-go keys default to 30 requests/minute. The exact limit is set per key at issue time.
Per IP
A global limiter of 600 requests/minute applies upstream, independent of the key limit.
Over limit
Returns 429 (rate_limited). Back off and retry.
PAYG metering
Pay-as-you-go keys deduct one credit per call; a depleted balance returns 402 (insufficient_payg_credits). Subscription keys are not per-call metered. Balance: GET /api/payg/balance.

Endpoints

MethodPathParamsReturns
GET/api/v1/healthnoneKey liveness: confirms the key works without returning data.
GET/api/v1/symbolsnoneThe serveable symbol universe (the positive allowlist). No symbol outside this is serveable.
GET/api/v1/magnetssymbolCalibrated per-magnet reach-rate for one symbol: walk-forward empirical reach, descriptive not forecast. The conditioning recipe is stripped at this boundary.
GET/api/v1/reachsymbolWalk-forward horizon reach probabilities for one symbol (out-of-sample backtest results).
GET/api/v1/contagionsymbol?Cross-venue liquidation-cascade contagion ("who cascades whom"): conditional same-bar move + shock-beta with per-pair sample n. Optional symbol filter.
GET/api/v1/venuessymbol? · limit?Cross-venue perp market structure (aggregate OI, venue count, annualized funding spread, price dispersion). Our derived aggregate, not a raw per-venue passthrough; one restricted-redistribution venue is excluded.
GET/api/v1/trustnonePer-venue trust scores for our own liquidation feed: reconciliation verdicts with the honest reconcile/coverage split, sample n, Wilson 95% floor, history-derived trend and days measured; the same measurements as the public /trust board. Institutional keys additionally receive per-venue daily history windows (last 30d) and full trend detail.
GET/api/v1/proofnoneThe public credibility slice: the same aggregate track record served at /proof.
GET/api/v1/catalognoneSelf-documenting endpoint catalog for programmatic discovery.
POST/api/v1/webhooksurl · events · labelInstitutional: register an outbound webhook. Delivered as HMAC-SHA256-signed POSTs; signing secret returned once.
GET/api/v1/webhooksnoneInstitutional: list your webhook registrations.
DELETE/api/v1/webhooks/{id}noneInstitutional: revoke a webhook registration.
POST/api/v1/webhooks/{id}/testnoneInstitutional: send a signed test ping to confirm connectivity + signature verification.

Webhook endpoints require an institutional plan; the read endpoints work for any active key (institutional, pro, or PAYG-with-balance). Self-serve key management (/api/keys/mine) and PAYG balance/top-up (/api/payg/*) authenticate with your logged-in session, not an API key.

Example: calibrated magnets

# request
GET /api/v1/magnets?symbol=BTCUSDT
Authorization: Bearer <key>

# response (shape; PUBLIC fields only, no recipe/internals)
{
  "ok": true,
  "symbol": "BTCUSDT",
  "magnets": { /* calibrated per-magnet reach records */ },
  "basis": "walk-forward empirical reach-rate; descriptive, not a forecast",
  "generated_at": "2026-07-09T…Z"
}

Error codes

StatusDetailMeaning
400symbol_not_allowedSymbol is outside the serveable allowlist (see /api/v1/symbols).
401invalid_api_keyMissing, malformed, or revoked key.
402insufficient_payg_creditsPAYG balance depleted; top up to continue.
403plan_inactive / institutional_plan_requiredKey's plan doesn't grant this surface (e.g. webhooks need institutional).
429rate_limitedPer-key or per-IP rate limit exceeded; back off.
503*_unavailableA dependency is temporarily unavailable; retry.

MCP: the same data, native to AI agents

Model Context Protocol is the open standard AI agents (Claude, ChatGPT, others) use to call external tools. We expose the same validated data layer as MCP tools — the same handlers, the same recipe-stripping egress, the same key machinery and metering as the REST API above. Every tool response carries the honesty envelope (basis, as-of, per-measurement sample n, "descriptive, not a forecast").

FactValue
EndpointPOST https://hunterkiller.io/mcp — streamable-HTTP, stateless (JSON-RPC 2.0 in, JSON out; no SSE server-stream). Discovery: GET /.well-known/mcp.json.
Toolsget_proof_summary() (free) · get_magnet_levels_teaser(symbol?) (free) · get_feed_trust_summary() (free) · get_liquidation_magnets(symbol, frame?) · get_reach_stats(symbol) · get_feed_trust(venue?) · get_accuracy_proof() — the last four are key-only; a keyless call returns 401 api_key_required with the upgrade pointer.
Paid tierThe same B2B keys as /api/v1/* (Authorization: Bearer <key> or x-api-key). Full symbol universe, live artifacts, metered identically to REST (per keyed call). Self-serve a key at POST /api/keys/mine (any subscriber; PAYG credits or an institutional plan).
Free tierKeyless: protocol discovery (initialize / tools-list / resources) plus three free teasers — get_proof_summary (the public proof aggregate: headline precision with n, venues measured, feed-trust verdicts — the same numbers this website publishes), get_feed_trust_summary (the public /proof/feed_trust verdicts, summary-shaped) and get_magnet_levels_teaser (BTC/ETH top-3 clusters per side — the same published teaser data the free map and /learn pages serve, free-tier delay and recipe scrub applied). Every teaser is a strict subset of the website's free surface; the full graded ladder and per-level data require a key. Strict per-IP rate caps. The free-acquisition story lives on the public pages (/proof, /liq, /trust, /receipts), the MCP monetizes agent-native data access.
Abuse posturePer-key multi-IP fan-out detection (one key from many distinct IPs = credential sharing) → flag + throttle + journal on this surface; no key material is ever logged. Owner access is never limited.
Connectclaude mcp add --transport http hunterkiller https://hunterkiller.io/mcp --header "Authorization: Bearer <key>" — or point any streamable-HTTP MCP client at the endpoint with the same header (no header = discovery + teaser only). The full channel plan lives in the repo at docs/MCP_CHANNEL.md.

For AI agents: connect in one minute

Everything an agent needs is machine-readable. Discovery lives at GET /.well-known/mcp.json and the agent-native site map at /llms.txt. The endpoint is a stateless streamable-HTTP MCP server (JSON-RPC 2.0 in, JSON out):

StepWhat to do
1 · Point your clientPOST https://hunterkiller.io/mcp with header Authorization: Bearer <key>. With no header you still get protocol discovery (initialize, tools/list, resources) plus the free get_proof_summary teaser: the public walk-forward proof aggregate with sample sizes, nothing per-level.
2 · Client configCopy-paste block for MCP clients that take a server config:
{
  "mcpServers": {
    "hunterkiller": {
      "type": "http",
      "url": "https://hunterkiller.io/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
Claude Code one-liner: claude mcp add --transport http hunterkiller https://hunterkiller.io/mcp --header "Authorization: Bearer <key>"
3 · Get a keySelf-serve at POST /api/keys/mine from any account. The first key on a pay-as-you-go account is granted 100 free trial calls (once per account, granted 2026-07-31), metered identically to the REST API after that. Institutional plans cover the surface outright.
4 · Call the data toolsget_liquidation_magnets(symbol, frame?) · get_reach_stats(symbol) · get_feed_trust(venue?) · get_accuracy_proof(). Every response carries the honesty envelope (basis, as-of, per-measurement sample n, "descriptive, not a forecast").

TradingView: the levels, as a Pine v5 indicator

TradingView offers no API to push drawings into a user's chart, so the integration is a generated Pine v5 script with the current unified zone map baked in: zones as boxes, measured walk-forward react-rate labels (rate + n= + measured/context-only tag, Pro), one timeframe-reactive script, and a native alertcondition() per zone family (fires when price enters a zone). Install guide + sample header: /pine.

FactValue
Get itTerminal → Levels Map → Copy Pine, or GET /levels/pine?symbol=BTCUSDT with your logged-in session (text/plain Pine source). Per-tenant cap: 20 exports/day.
Free tierMajors only, react-rate labels omitted (honestly watermarked "free tier"). Zones + native alerts included.
Pro tierFull symbol universe + the measured react-rate label on every zone.
FreshnessSnapshot at generation time (stamped in the script header); levels recalibrate hourly — re-export for the current map. Descriptive structure, not a forecast.
02

Data dictionary: the definitions contract

what each metric IS + its honest caveat

Every metric we publish is defined here with its honest limitation. This is the definitions contract: what the number is, and what it is not. Live values are published at /proof; the frozen, versioned changelog of these definitions lives at /methodology.

Magnet

A price level where leveraged positions are force-closed ("liquidated") in clusters. Because leverage concentrates at round levels and common entry zones, liquidations pool at predictable prices. Those pools are the magnets our model ranks.

Caveat: a magnet is a density estimate of where liquidations tend to land, not a prediction that price will reach it. Descriptive, not a forecast.
precision@N

Of the top-N predicted liquidation bands for a symbol, the share that a real liquidation actually landed in, scored against independently verified cross-exchange data.

Caveat: near-spot precision@N is a tautology floor: most liquidations cluster close to current price, so a trivial near-spot guess already scores high. We publish it for completeness but never headline it, and never as an inflated multiple over a naive baseline. The honest test is far-distal recall (below).
Reach rate (react rate)

The empirical probability that price reaches a magnet a given distance away (e.g. ~1% away) within a stated horizon, counted over history and n-weighted across tracked symbols.

Caveat: descriptive history over the measured window, not a forward-looking probability for any specific future move.
Far-distal (deep-magnet) recall

Our headline result: of the liquidation dollars landing more than ~3% from spot (the deep magnets a naive near-spot guess can never reach), the fraction caught by our top-ranked predicted bands. Scored walk-forward, de-overlapped, and published next to a trivial boundary baseline so the real edge is visible.

Caveat: the honest, non-tautological measure, but still descriptive history, not a forecast. Always shown with its sample size and its comparator baseline.
n (sample size)

The number of independent scored events behind a figure. Where windows overlap, we report the effective n, the overlap-de-weighted independent count the confidence interval is actually computed on, which is always ≤ the raw sample count.

Caveat: a high point estimate on a small n is not proof. We gate on n and publish it beside every number; thin samples are labelled, not headlined.
Wilson lower bound

The 95% Wilson-score lower confidence bound on a rate, computed on the effective n. It answers "given this sample, what's the conservative floor for the true rate?" We publish the lower bound, not the flattering point estimate, as the number to trust.

Caveat: a wide interval on small n produces a low bound by design: that's the honesty working, not a bug.
Day-clusters

The count of distinct calendar days a result spans. Many events on one day are not the same evidence as events spread across many days; day-clusters guard against a single unusual day masquerading as a track record.

Caveat: we require a minimum day-cluster count before treating a forward result as real, precisely because a fat single-day sample can otherwise look convincing.
Kill-gate

The promotion filter every candidate edge must clear before it is ever paper-validated or considered for capital: net-of-cost P&L above zero and the 95% lower confidence bound above zero, on a sufficient sample (net_usd > 0 ∧ ci95_low > 0). Net of fees, slippage, and latency.

Caveat: by design most hypotheses are killed: a "0 survivors" record over a discovery run is the filter working, not a failure. We never relax this gate to manufacture a positive.
Counterfactual / paper

A result measured on simulated fills or a hypothetical account, not real executed capital. Paper results are labelled paper and carry $0 real P&L; a counterfactual states what would have happened on stated assumptions.

Caveat: paper/counterfactual results are never presented as live-proven. Real, executed capital is the only thing we count as a live result.
03

Security posture

what is true · no unearned claims

Stated conservatively: this section describes controls that are actually in place. We do not claim SOC 2, ISO 27001, or any third-party certification we have not completed.

Per-tenant isolation

Every request's tenant identity is derived from the authenticated session, never from a request body or query parameter, so a caller cannot assert another tenant's identity. Tenant-scoped database queries carry a tenant-id filter, and the isolation invariant is enforced by an automated static audit plus a dedicated multi-tenant test suite run before shipping changes to request handlers.

Authentication model

  • Customer app: session-cookie auth; public marketing and proof surfaces are explicitly allow-listed as cookieless.
  • Data API: per-key Bearer tokens (this page, §1). A Data API key resolves to the market-wide analytics surface only and cannot satisfy any owner or cross-tenant gate.
  • Control plane & owner surfaces: owner-gated by exact path; the interactive API schema explorer is owner-gated (the public documentation is this page).

No secret egress · recipe-stripping at the boundary

The model's calibration recipe (the conditioning signal, bucket edges, and per-bucket histograms) is stripped by a single shared egress guard before any customer or API response leaves the box. The API documents and returns public result fields only. Credentials are never emitted, logged, or echoed to any customer surface. One restricted-redistribution venue's data is stripped from every API egress to honor its terms of service.

The honesty spine

Our differentiator is provable truth, not marketing. Every customer-facing number is:

  • Walk-forward: scored only on data from after the prediction was made, never in-sample.
  • Wilson-gated: published as the 95% lower confidence bound with its sample size, never as a flattering point estimate.
  • n- and day-cluster-gated: thin or single-day samples are labelled, not headlined.
  • Descriptive, not forecast: we publish measured history, including the symbols we switched off and the hypotheses we killed.

A static honesty gate runs before any customer-facing number ships; it rejects inflated baseline-artifact framing, any accuracy claim missing an n and a confidence bound, any not-yet-validated number reaching a customer surface, and any recipe/secret crossing an egress boundary.

Infrastructure hardening in place: default-deny inbound firewall, brute-force protection on remote access, and all traffic terminated at the CDN/edge; no direct public path to internal services.
04

Uptime & reliability

honest monitoring posture

Health & status

Health endpoint
https://hunterkiller.io/api/health returns 200 + "ok" when the service is up. This is the machine-readable liveness check; you may poll it for your own monitoring.
External monitor
An off-box monitor runs hourly in a separate cloud (deliberately not on the production host, so it detects the host itself going down) and checks both the health endpoint and the site root with in-run retries; it alerts the operator on confirmed downtime only.
Restore drill
A weekly automated restore drill proves the latest offsite backup archive actually restores: durability is rehearsed, not assumed.
Offsite backups
Institutional-knowledge and state files are backed up daily to offsite object storage, with a documented restore runbook.
SLA: a formal uptime SLA percentage and any service-credit commitment are available on request / see enterprise terms. We deliberately do not publish a fabricated availability number here. A committed SLA figure is a contractual decision, not a marketing claim. The monitoring and durability posture above is what is actually in place today.
05

Data lineage

sources → derived analytics → retention

Sources. Inputs are public exchange market-data feeds: liquidation tapes, order-book/L2, open interest, funding, and trade prints from major venues (Bybit, Binance, OKX, Deribit, Kraken Futures), with a US venue (Coinbase) used as a price/tape reference. These are public market feeds; we ingest them, we do not originate them.

Derived analytics, not raw passthrough. What we publish and sell is our own derived analytics computed from those feeds: calibrated magnet density, walk-forward reach/precision, cross-venue structure aggregates, and liquidation-contagion relationships, never a raw per-venue reseller passthrough of a third party's proprietary product. One restricted-redistribution venue is excluded from the API entirely. This is our standing data-resale posture: we redistribute our transformations, not someone else's raw feed.

Retention. Raw capture corpora are retained on rolling windows with documented per-corpus size and age caps and automatic pruning; append-only research journals are retained long-term and mirrored to offsite backup. Published metrics are recomputed on schedule from these corpora and every figure is dated.

·

Diligence & contact

For an institutional evaluation, an API key, a committed SLA, or a security questionnaire, contact support@hunterkiller.io. Live track record: /proof. Frozen metric-definition changelog: /methodology. Pricing: /pricing.