Data API

LinkHash Data API

One clean REST API for the data behind the terminal: multi-exchange OHLCV prices, server-computed technical indicators, the market-implied up/down prediction, per-coin Polymarket + Kalshi odds, and crypto-relevant macro probabilities. Create a free key below and you're pulling data in two minutes.

1Your API keys

Connect your wallet to create a free API key.

No wallet? Any Phantom (Solana) wallet works — it's just your identity for issuing keys. Free, no payment.

2Quickstart

Every endpoint is a plain authenticated GET that returns JSON — use it from any language. Pass your key in the Authorization header (or as ?api_key= / the X-API-Key header).

cURL
curl -H "Authorization: Bearer lhx_live_..." \
  "https://link-hash.com/api/v1/prices?symbol=BTC&exchanges=binance,okx&interval=1h&limit=100"
Python
import requests

BASE = "https://link-hash.com/api/v1"
HEADERS = {"Authorization": "Bearer lhx_live_..."}   # your key from link-hash.com/developers

# 1) Multi-exchange candles + cross-exchange aggregate
r = requests.get(f"{BASE}/prices",
                 params={"symbol": "BTC", "exchanges": "binance,okx",
                         "interval": "1h", "limit": 100},
                 headers=HEADERS).json()
print(r["aggregate"][-1])          # {'t':..., 'close_mean':..., 'close_median':..., 'sources':2}

# 2) Technical indicators
r = requests.get(f"{BASE}/indicators",
                 params={"symbol": "BTC", "interval": "1h",
                         "indicators": "rsi,macd,bollinger"},
                 headers=HEADERS).json()
print(r["data"]["indicators"]["rsi"]["latest"])     # e.g. 61.3

# 3) Market-implied up/down prediction (what the prediction chart shows)
r = requests.get(f"{BASE}/prediction",
                 params={"symbol": "BTC", "cycle": "15m"},
                 headers=HEADERS).json()
print(r["data"]["cycles"]["15m"])  # {'direction':'up','up_probability':51.5, ...}

# 4) Per-coin Polymarket + Kalshi odds
requests.get(f"{BASE}/odds", params={"symbol": "BTC"}, headers=HEADERS).json()

# 5) Macro probabilities (Fed / CPI / FOMC / recession / crypto policy)
requests.get(f"{BASE}/macro", params={"limit": 10}, headers=HEADERS).json()
JavaScript (fetch)
const r = await fetch(
  "https://link-hash.com/api/v1/prediction?symbol=ETH&cycle=1h",
  { headers: { Authorization: "Bearer lhx_live_..." } }
);
const { data } = await r.json();
console.log(data.cycles["1h"]);   // { direction, up_probability, down_probability, ... }

Every response is { "ok": true, "count": N, "data": ... }. Assets with prediction/odds coverage: BTC ETH SOL XRP DOGE BNB HYPE ZEC · price/indicator exchanges: binance coinbase upbit bithumb okx bitget · cycles: 5m 15m 1h 4h.

3Endpoints

Base URL https://link-hash.com/api/v1 · auth header Authorization: Bearer <key>.

GET/prices
OHLCV candles for one asset across one or more exchanges, plus a cross-exchange aggregate (mean & median close aligned by candle timestamp).
ParamDefaultDescription
symbol req—Base asset, e.g. BTC, ETH, SOL.
exchangesbinanceComma-separated list from: binance, coinbase, upbit, bithumb, okx, bitget.
interval1hCandle size: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w (venue-dependent).
limit200Number of candles per exchange (clamped to your tier).
{ "ok": true, "symbol": "BTC", "interval": "1h",
  "exchanges": ["binance","okx"],
  "aggregate": [ { "t": 1791183600, "close_mean": 86257.1, "close_median": 86257.1, "sources": 2 } ],
  "data": [ { "exchange": "binance", "count": 100,
              "candles": [ { "t": 1791183600, "o": 86200, "h": 86400, "l": 86100, "c": 86257, "v": 512.3 } ] } ] }
GET/indicators
Technical indicators computed server-side on one exchange's candles — the same kernels the terminal's strategy engine uses.
ParamDefaultDescription
symbol req—Base asset, e.g. BTC, ETH, SOL.
exchangebinanceSingle exchange to compute on.
interval1hCandle size: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w (venue-dependent).
indicatorsrsi,macdCSV of: sma, ema, wma, rsi, macd, bollinger, momentum, roc, cci, willr, mfi, stochrsi.
lengthper-indicatorOverride the lookback length for single-length indicators.
seriesfalsetrue returns the full [t, value] series; otherwise only the latest value.
{ "ok": true, "data": { "symbol": "BTC", "exchange": "binance", "interval": "1h", "as_of": 1791183600,
    "indicators": {
      "rsi": { "length": 14, "latest": 61.3 },
      "macd": { "length": 20, "latest": { "line": 6.79, "signal": 6.50, "hist": 0.29 } },
      "bollinger": { "length": 20, "latest": { "mid": 85900, "up": 86900, "lo": 84900 } } } } }
GET/prediction
The market-implied up/down prediction the terminal's prediction chart renders, per short cycle. Includes the probability, the implied direction, and the price-to-beat for the current window.
ParamDefaultDescription
symbol req—Covered assets: BTC ETH SOL XRP DOGE BNB HYPE ZEC.
cycleallOne of 5m, 15m, 1h, 4h. Omit to return every cycle.
{ "ok": true, "data": { "symbol": "BTC", "price": 86212.5, "as_of": "2026-10-05T07:05:30+00:00",
    "cycles": {
      "15m": { "direction": "up", "up_probability": 51.5, "down_probability": 48.5,
               "price_to_beat": 86233.6, "ends_at": "2026-10-05T07:15:00Z", "source": "polymarket" } } } }
GET/odds
Raw per-coin up/down prediction-market odds. Polymarket odds are always present for covered assets; Kalshi odds are best-effort and returned only when a matching market is live and Kalshi access is configured.
ParamDefaultDescription
symbol req—Base asset, e.g. BTC, ETH, SOL.
cycleallOne of 5m, 15m, 1h, 4h. Omit to return every cycle.
venueallall, polymarket, or kalshi.
{ "ok": true, "symbol": "BTC", "kalshi_available": false, "data": {
    "polymarket": [ { "cycle": "5m", "up_pct": 35.5, "down_pct": 64.5, "volume_24h": 456.8,
                      "title": "Bitcoin Up or Down ...", "ends_at": "2026-10-05T07:10:00Z",
                      "url": "https://polymarket.com/event/..." } ],
    "kalshi": [] } }
GET/macro
Crypto-relevant macro prediction-market probabilities — Fed rate decisions, FOMC, CPI, recession odds, and crypto policy — from Polymarket, with best-effort Kalshi.
ParamDefaultDescription
venueallall, polymarket, or kalshi.
limit20Max items per venue (1–50).
{ "ok": true, "venue": "all", "data": {
    "polymarket": [ { "question": "Will there be no change in Fed interest rates ...",
                      "yes_pct": 83.5, "ends_at": "2026-10-29T03:59:00Z",
                      "volume_24h": 50877.0, "volume_total": 7265538.6,
                      "url": "https://polymarket.com/event/..." } ],
    "kalshi": [] } }
GET/usage   GET/status
/usage returns your key's tier and remaining daily quota. /status returns service health and the list of data sources. Both require a key.

4Limits & notes

  • Free tier: up to 5000 requests/day; the daily quota resets at 00:00 UTC. Higher tiers are coming.
  • Rate-limit headers: every response carries X-RateLimit-Limit / X-RateLimit-Remaining; a 429 means you hit the daily cap.
  • Freshness: prices and indicators are computed on demand from the live exchange feeds; predictions and odds refresh every few seconds from the same snapshot the terminal uses.
  • CORS: every response sends Access-Control-Allow-Origin: *, so you can call the API directly from the browser.
  • Security: keys are shown once and stored only as a hash. Rotate anytime by revoking and creating a new one.