All systems operational--:--:-- UTC

Market data

Quotes, trades, order books and historical bars over REST and WebSocket.

On this page

Market data covers US equities and ETFs, FX spot and crypto spot in real time, and futures with a 15-minute delay. Every message carries the venue timestamp and our edge receive timestamp.

Snapshot quotes

curl "https://api.consciouslab.xyz/v1/trading/quotes?symbols=NVDA,EUR/USD,ETH/USD" \
  -H "Authorization: Bearer $CL_API_KEY"
{
  "data": [
    { "symbol": "NVDA", "bid": 189.41, "ask": 189.42, "last": 189.42, "change_pct": 1.84, "ts": "2026-10-17T13:45:02.118Z" },
    { "symbol": "EUR/USD", "bid": 1.08738, "ask": 1.08741, "ts": "2026-10-17T13:45:02.201Z" }
  ]
}

Streaming

Connect to the WebSocket and subscribe to channels:

const ws = new WebSocket('wss://api.consciouslab.xyz/v1/trading/stream');

ws.onopen = () => {
  ws.send(JSON.stringify({ op: 'auth', key: process.env.CL_API_KEY }));
  ws.send(JSON.stringify({ op: 'subscribe', channels: ['quotes:NVDA', 'book:ETH/USD', 'trades:NVDA'] }));
};

ws.onmessage = (m) => {
  const msg = JSON.parse(m.data);
  if (msg.channel === 'quotes:NVDA') render(msg.bid, msg.ask);
};
ChannelContentPlans
quotes:<symbol>Top of bookAll
trades:<symbol>PrintsAll
book:<symbol>Level 2, up to 20 levelsPro, Enterprise
bars:<symbol>:<interval>Live bars, 1m to 1dAll

A connection can subscribe to up to 500 channels.

Historical bars

curl "https://api.consciouslab.xyz/v1/trading/bars?symbol=NVDA&interval=1h&from=2026-10-01" \
  -H "Authorization: Bearer $CL_API_KEY"

Bars are adjusted for splits by default; pass adjust=none for raw prices. Up to 20 years of daily history is available for US equities.

Exchange agreements

Real-time US equity data requires accepting exchange agreements in Trading, Market data before first use. Professional users, as defined by the exchanges, are billed exchange fees at cost.