Market data
OHLC
LiveThe canonical price series. History over REST. Live ticks and bars over WebSocket.
Bowhead reads price from Breach, the OHLC provider. Breach stores bars, repairs gaps, and streams ticks. This page is the contract: how a consumer loads history and how it stays live. It does not define primitives or strategies.
Feed
Public data API, no authentication. Origin https://feed.bowhead.trade. Current broker litefinance.
| Endpoint | Role |
|---|---|
| GET /v1/health | Liveness |
| GET /v1/feed/litefinance | Broker, instance, live source, symbol list |
| GET /v1/feed/litefinance/symbols | Symbols only |
| GET /v1/feed/litefinance/ohlcv/{symbol}/{tf} | Closed and forming bars |
| /v1/feed/litefinance/ws[/{symbol}] | WebSocket — ticks and candle events |
Bar
One object per period. Timestamps are Unix milliseconds. Volume may be zero on FX.
{
"t": 1700000000000,
"o": 1980.5,
"h": 1985.2,
"l": 1978.1,
"c": 1983.4,
"v": 1240
}Symbols: XAUUSD XAGUSD EURUSD GBPUSD USDJPY GBPJPY NQ YM. Timeframes: 1m 5m 15m 1h 4h 1d 1w 1M.
Consumers use these names only. Broker-native aliases stay inside Breach.
History
GET /v1/feed/litefinance/ohlcv/XAUUSD/1h?from=1700000000000&to=1710000000000&limit=500from and to are Unix milliseconds. limit is 1…10000; omit it and the feed uses 10,000. The response is the latest bars inside the window, oldest to newest. Page older history by moving to before the first timestamp you received.
WebSocket
Open a socket. Do not send a handshake body. Frames are JSON. Keep the connection; if it drops, reconnect with backoff.
wss://feed.bowhead.trade/v1/feed/litefinance/ws/XAUUSDOmit the symbol for the broker-wide socket: wss://feed.bowhead.trade/v1/feed/litefinance/ws.
Three shapes arrive. Discriminate on the fields, not on a type key.
Tick — every quote. Has b and a. Not a bar.
{
"broker": "litefinance",
"s": "XAUUSD",
"b": 2345.12,
"a": 2345.34,
"t": 1700000000000
}Kline — the forming or just-closed bar. Has o h l c and closed.
{
"s": "XAUUSD",
"tf": "1m",
"t": 1700000000000,
"o": 2345.0,
"h": 2346.0,
"l": 2344.0,
"c": 2345.5,
"v": 0,
"closed": false
}Close — the period ended. Discriminate on x equal to close. t is the period start of the bar that just closed.
{
"x": "close",
"s": "XAUUSD",
"tf": "1m",
"t": 1700000000000
}How to use it
- Confirm the feed:
GET /v1/feed/litefinance. Use the symbol list it returns. - Seed the series with REST history for each symbol and timeframe you need.
- Open the WebSocket. Prefer the symbol socket when you are watching one instrument; it includes intra-bar kline updates (
closed: false). Use the broker-wide socket when you want ticks and completed bars only — intra-bar klines are filtered there. - Apply ticks to quote. Apply klines to the bar at
tfor thattf. Whenclosedis true, or a close notice arrives, that bar is final. - On disconnect, reconnect and, if the gap is large, re-seed from REST using
fromat the last closed timestamp.
Do not infer primitives from this feed. OHLC is price. ERL & IRL and later definitions are written under Primitives.