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:
| Parameter | Values | Notes |
|---|---|---|
| X-RateLimit-Limit | 60 | Requests allowed per minute |
| X-RateLimit-Remaining | 59 | Left in the current window |
| X-RateLimit-Reset | 1786004858 | Unix time the window refills |
| X-Quota-Monthly | 100000 | Monthly request quota |
| X-Quota-Used | 1204 | Used 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" } }| Parameter | Values | Notes |
|---|---|---|
| missing_key | 401 | No key in the request |
| invalid_key | 401 | Unknown, revoked, or expired key |
| rate_limited | 429 | Per-minute limit exceeded — honor Retry-After |
| not_found | 404 | Unknown 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).
| Parameter | Values | Notes |
|---|---|---|
| contract_type | perp | spot_token | Perpetual futures vs. tokenized spot equities |
| exchange | hyperliquid, bybit, … | Exchange slug — see /v1/exchanges |
| category | stock | etf | pre_ipo | tokenized_stock | commodity | fx | index | crypto | Asset class |
| ticker | TSLA | Single 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.
| Parameter | Values | Notes |
|---|---|---|
| interval | 15m | 1h | 4h | 1d | 1w | Default 1h |
| hours | 168 | Lookback 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.
| Parameter | Values | Notes |
|---|---|---|
| interval | 15m | 1h | 4h | 1d | 1w | Default 1h |
| hours | 720 | Lookback 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.
| Parameter | Values | Notes |
|---|---|---|
| contract_type | perp | spot_token | Same 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.