Back

API Reference

The tickers.watch API serves the same data as this site: stock, commodity, FX, and index perpetual futures plus tokenized equities, tracked across Hyperliquid, Binance, Bybit, Bitget, Gate, Kraken, OKX, MEXC, and more — live prices, funding rates, open interest, OHLC candles, and cross-venue price changes.

Base URL: https://api.tickers.watch/v1. All endpoints are read-only GET and return JSON as { data, meta }, where meta.as_of is the server time of the response. Object timestamps are ISO 8601 strings; time-series points (candles, funding, open interest) use Unix seconds.

Authentication

Every request needs an API key, passed either as a bearer token or an X-API-Key header:

curl https://api.tickers.watch/v1/instruments \
  -H "Authorization: Bearer $TW_API_KEY"

Keys are currently invite-only. To request one, reach us on Telegram or X. Keep keys server-side — never ship one in client code.

Rate limits

The default free tier allows 60 requests/minute and 100,000 requests/month per key. Every response reports where you stand:

ParameterValuesNotes
X-RateLimit-Limit60Requests allowed per minute
X-RateLimit-Remaining59Left in the current window
X-RateLimit-Reset1786004858Unix time the window refills
X-Quota-Monthly100000Monthly request quota
X-Quota-Used1204Used this calendar month

Exceeding the per-minute limit returns 429 with a Retry-After header. Prices update on a ~60-second collection cycle and responses are cacheable for 15 seconds — polling faster than that returns identical data.

Errors

Errors use one envelope:

{ "error": { "code": "invalid_key", "message": "Unknown, revoked, or expired API key" } }
ParameterValuesNotes
missing_key401No key in the request
invalid_key401Unknown, revoked, or expired key
rate_limited429Per-minute limit exceeded — honor Retry-After
not_found404Unknown ticker or endpoint

Endpoints

List instruments

GET/v1/instruments

Every active listing with its latest price, funding, and open interest — one row per ticker × exchange. Prices are USD per share/unit (contract multipliers already applied).

ParameterValuesNotes
contract_typeperp | spot_tokenPerpetual futures vs. tokenized spot equities
exchangehyperliquid, bybit, …Exchange slug — see /v1/exchanges
categorystock | etf | pre_ipo | tokenized_stock | commodity | fx | index | cryptoAsset class
tickerTSLASingle ticker across all venues
curl "https://api.tickers.watch/v1/instruments?contract_type=perp&exchange=hyperliquid" \
  -H "Authorization: Bearer $TW_API_KEY"

Response

{
  "data": [{
    "ticker": "TSLA",
    "name": "Tesla",
    "category": "stock",
    "market": "US",
    "exchange": "hyperliquid",
    "exchange_name": "Hyperliquid",
    "symbol": "TSLA",
    "contract_type": "perp",
    "listed_at": "2025-10-06T00:00:00.000Z",
    "price": 322.51,
    "index_price": 322.6,
    "volume_24h": 8525119.8,
    "price_ts": "2026-08-06T08:24:12.000Z",
    "funding_rate": 0.0000125,
    "predicted_funding_rate": null,
    "funding_ts": "2026-08-06T08:24:05.000Z",
    "open_interest_base": 51230.5,
    "open_interest_quote": 16523400,
    "oi_ts": "2026-08-06T08:24:05.000Z",
    "shares_outstanding": 3210000000,
    "aum_usd": null,
    "underlying_ticker": null,
    "logo_url": "https://tickers.watch/logos/tsla.png",
    "tags": ["ev"]
  }, …],
  "meta": { "count": 1467, "as_of": "2026-08-06T08:25:01.000Z" }
}

Ticker detail

GET/v1/instruments/{ticker}

The canonical asset plus its listing on every venue that carries it.

curl "https://api.tickers.watch/v1/instruments/TSLA" \
  -H "Authorization: Bearer $TW_API_KEY"

Response

{
  "data": {
    "asset": { "ticker": "TSLA", "name": "Tesla", "category": "stock", "market": "US",
               "listed_at": "2010-06-29", "aum_usd": null },
    "instruments": [ …same shape as the list endpoint… ]
  },
  "meta": { "as_of": "2026-08-06T08:25:01.000Z" }
}

OHLC candles

GET/v1/instruments/{ticker}/ohlc

Candles from the most liquid venue for the ticker (cross-venue stitched where history requires it). time is the bar-open Unix timestamp.

ParameterValuesNotes
interval15m | 1h | 4h | 1d | 1wDefault 1h
hours168Lookback window; capped per interval (e.g. 1y at 15m, 10y at 1d)
curl "https://api.tickers.watch/v1/instruments/TSLA/ohlc?interval=1d&hours=720" \
  -H "Authorization: Bearer $TW_API_KEY"

Response

{
  "data": {
    "ticker": "TSLA",
    "interval": "1d",
    "source": { "exchange": "hyperliquid", "symbol": "TSLA" },
    "bars": [
      { "time": 1785974400, "open": 321.73, "high": 322.82, "low": 320.13,
        "close": 322.52, "volume": 8525119.8 }, …
    ]
  },
  "meta": { "count": 30, "as_of": "2026-08-06T08:25:01.000Z" }
}

Funding & open interest history

GET/v1/instruments/{ticker}/funding

Funding is volume-weighted across venues into one series; open interest stays per exchange (sum rows sharing a ts for the total). oi_quote is USD notional.

ParameterValuesNotes
interval15m | 1h | 4h | 1d | 1wDefault 1h
hours720Lookback window; defaults and caps scale with the interval
curl "https://api.tickers.watch/v1/instruments/TSLA/funding?interval=1h&hours=168" \
  -H "Authorization: Bearer $TW_API_KEY"

Response

{
  "data": {
    "ticker": "TSLA",
    "interval": "1h",
    "funding": [ { "ts": 1786000000, "funding_rate": 0.0000125 }, … ],
    "open_interest": [ { "ts": 1786000000, "exchange": "hyperliquid", "oi_quote": 16523400 }, … ]
  },
  "meta": { "as_of": "2026-08-06T08:25:01.000Z" }
}

List exchanges

GET/v1/exchanges

Venues we track, with the slugs used by every other endpoint.

curl "https://api.tickers.watch/v1/exchanges" \
  -H "Authorization: Bearer $TW_API_KEY"

Response

{
  "data": [
    { "slug": "hyperliquid", "name": "Hyperliquid", "type": "dex",
      "logo_url": "…", "status": "active" }, …
  ],
  "meta": { "count": 12, "as_of": "2026-08-06T08:25:01.000Z" }
}

Price changes

GET/v1/changes

Cross-venue price changes per ticker, keyed by ticker. Changes are median per-venue returns (robust to a single bad print); change_since_close anchors to the underlying market's last regular-session close and is null for 24/7 assets. 52-week high/low come from daily candles.

ParameterValuesNotes
contract_typeperp | spot_tokenSame split as the list endpoint
curl "https://api.tickers.watch/v1/changes?contract_type=perp" \
  -H "Authorization: Bearer $TW_API_KEY"

Response

{
  "data": {
    "TSLA": {
      "change_1h": -0.0012, "change_4h": 0.0034, "change_24h": 0.0187,
      "change_7d": -0.0241, "change_30d": 0.0912, "change_ytd": 0.1533,
      "change_ytd_start": "2026-01-02T00:00:00.000Z",
      "change_since_close": 0.0021, "change_since_close_ts": "2026-08-05T20:00:00.000Z",
      "volume_rank": 3, "volume_rank_24h": 4, "volume_rank_change": 1,
      "high_52w": 488.54, "low_52w": 182.0,
      "high_52w_ts": "2025-12-18T00:00:00.000Z", "low_52w_ts": "2026-04-07T00:00:00.000Z"
    }, …
  },
  "meta": { "count": 214, "as_of": "2026-08-06T08:25:01.000Z" }
}

Stability & fair use

  • Response shapes only change additively — new fields may appear; existing ones won't change meaning or disappear without a new version prefix.
  • Attribute displayed data to tickers.watch with a link.
  • No bulk redistribution or resale of the raw feed.
  • Data is aggregated across venues and provided as-is, without warranty. Nothing here is investment advice.