
Overnight U.S. equity data used to be institutional-only. Starting today, anyone can get it, for $9 a month over their plan, which is at our cost.
Exciting news! Today we’re launching the real-time Blue Ocean ATS API on Tiingo (the BOATS API): overnight stock prices for up to 12,000+ U.S. equities, delivered over REST and WebSockets. We’re the first to make this overnight U.S. equity data broadly accessible, and the first to make it available to individuals at all. The add-on is $9 a month, which is our cost ($8/month BOATS license fee + $1/month compliance and processing cost).
What Blue Ocean ATS is, and what we now deliver
Blue Ocean ATS (a.k.a BOATS) runs during the overnight U.S. equity trading session, and it’s the most dominant, liquid overnight venue for U.S. stocks. The session runs from 8:00 PM to 4:00 AM ET, Sunday through Thursday.
A quick overview on terminology: because “overnight” data is new, consider it a separate set of hours than what’s typically called “after-hours”. After-hours extends the U.S. trading day (considered 4am-9:30am and 4pm-8pm). The overnight session is the stretch between that – the overnight hours of 8pm-4am ET. And if you trade from Asia or Europe, “overnight” is your daytime – which is why BOATS is beloved by Asian and European traders in addition to US.
Tiingo now delivers, in real time, top-of-book quotes (bid, ask, mid) and the last trade with its size. Overnight intraday OHLC too. Coverage spans up to 12,000+ U.S. NMS equities quotable on Blue Ocean ATS, over both REST and WebSockets, through the same real-time equity formats you used to with our IEX Endpoints. There is no new integration to build. Full specs live on the Blue Ocean ATS (BOATS) product page.
One request to get data – easy.
With a simple GET request to the Blue Ocean API, you can get the instant overnight quote for any symbol quoted. Here’s SPCX:
GET https://api.tiingo.com/boats/spcx
[{"ticker":"SPCX","timestamp":"2026-07-22T20:58:18.437361794-04:00","lastSaleTimestamp":"2026-07-22T20:58:14.670299844-04:00","quoteTimestamp":"2026-07-22T20:58:18.437361794-04:00","open":124.165,"high":124.96,"low":114.385,"mid":116.81,"tngoLast":116.81,"last":116.78,"lastSize":47,"bidSize":119,"bidPrice":116.77,"askPrice":116.85,"askSize":160,"prevClose":124.155,"volume":4229595}]
Bid, ask, mid, the last trade and its size, in addition to other fields, all in one object.
Or stream it live
Want a live WebSocket feed instead? Open the WebSocket, send one subscribe message, and the trades and quotes start printing.
import orjson as json
from websocket import create_connection
ws = create_connection("wss://api.tiingo.com/boats")
T_TOKEN = 'YOUR_TOKEN_HERE'
subscribe = {
'eventName': 'subscribe',
'authorization': T_TOKEN,
'eventData': {
'thresholdLevel': 3,
# 'tickers': ['crcl'] # omit for everything; add symbols to filter
}
}
ws.send(json.dumps(subscribe))
while True:
data = json.loads(ws.recv())
print(data)
The stream mixes trades (“T”) and quotes (“Q”):
{'service': 'boats', 'messageType': 'A', 'data': ['T', '2026-07-22T20:59:29.135425232-04:00', 1784768369135425232, 'soxl', 167.3, 100, '@', '', '', '']}
{'service': 'boats', 'messageType': 'A', 'data': ['Q', '2026-07-22T20:59:29.135940609-04:00', 1784768369135940609, 'amzn', 100, 242.56, 242.705, 242.85, 145]}
{'service': 'boats', 'messageType': 'A', 'data': ['Q', '2026-07-22T20:59:29.136006950-04:00', 1784768369136006950, 'spy', 42, 748.41, 748.46, 748.51, 40]}
{'service': 'boats', 'messageType': 'A', 'data': ['Q', '2026-07-22T20:59:29.136023427-04:00', 1784768369136023427, 'qqq', 42, 707.59, 707.64, 707.69, 1740]}
{'service': 'boats', 'messageType': 'A', 'data': ['Q', '2026-07-22T20:59:29.140694685-04:00', 1784768369140694685, 'arm', 284, 286.0, 286.525, 287.05, 111]}
{'service': 'boats', 'messageType': 'A', 'data': ['T', '2026-07-22T20:59:29.135679749-04:00', 1784768369135679749, 'amzn', 242.65, 31, '@', '', '', 'I']}
# ... continues streaming
Leave the tickers list out and you get everything trading overnight. Add a few symbols if you want to limit the output (it’s a ton of data). That’s the entire getting-started path for the Blue Ocean API.
Where to read the full docs
The Blue Ocean ATS API is documented end to end. Every field and every message type lives in the BOATS REST API docs and the BOATS WebSocket API docs. Grab your API token from your account page, and you can pull your first overnight quote in about two minutes.
How this became available to individuals
Until now, this data was effectively enterprise-only. If you had a licensing team and a compliance department, you could get it. Individuals were often priced out; overnight market data started as institutional agreements, and individual access was a category that hadn’t been catered to yet.
We reached out to the BOATS team – and to their amazing credit, they retooled their market data agreements to make this possible. Really big thank you to their team for taking a modern approach to data.
Historically, what makes market data expensive is the licensing and the rules around it, not the bytes, so a venue actually reworking those rules to reach retail is an awesome move. This launch exists because of their approach to market data rules – and modernizing them as more people are able to access and process this data. On our side, we built the compliance layer, so a solo developer doesn’t need a compliance department to subscribe. Once you answer a few questions, we automate compliance on our end for you.
Real-time overnight data existed. Now made accessible to all.
How liquid is Blue Ocean ATS?
Given it’s an overnight exchange, we were surprised by the liquidity. From Blue Ocean market-data statistics for the overnight session of June 22, 2026:

Here are the spreads in the names people actually trade:
| Symbol | Avg quoted spread (bps) |
|---|---|
| SPY | 1.5 |
| QQQ | 2.0 |
| NVDA | 4.8 |
| TSLA | 5.2 |
| GOOGL | 5.9 |
| MSFT | 6.2 |
| PLTR | 10.3 |
| META | 12.8 |
| AMZN | 13.4 |
| AAPL | 14.4 |
| AVGO | 15.8 |
| AMD | 24.4 |
Across the 50 most-traded names by notional, the median spread was about 15 bps. Spreads naturally vary with a company’s size and liquidity, so smaller or more thinly traded names can be wider.
$9 a month. At cost.
The Blue Ocean add-on is $9 a month: $8 is Blue Ocean’s license fee, and $1 covers compliance processing. No Tiingo markup. We make essentially nothing on this, and it was important to me we make it that.
What you need to run it: individuals need a Power plan ($30/month) plus the $9 add-on, which comes to about $39 a month all-in. Businesses need a Commercial plan ($50/month) plus the same $9. Enterprise and redistribution is a separate conversation, a $500/month Tiingo fee plus a Blue Ocean license fee (contact [email protected] and we can make the introduction to the BOATS team).
We’ve been making financial data accessible since 2014, and we’re the oldest accessible retail market-data API still around. This launch is that mission, not a new revenue line. Consider it a give-back. Full details live on the product page.
How to turn it on
- Go to your Tiingo account page
- Open the Entitlements page
- Fill out the short questionnaire
- Start the add-on
You’re enabled immediately, the same day.
What’s next
This is the first article in a series on overnight data. Article 2 gets into the mechanics: how the overnight session actually works and where orders get routed. Today is just the announcement. If you want the full landscape now – every overnight venue and which data feeds carry the session – our overnight stock data API guide breaks it all down.
The overnight U.S. equity session is no longer something you need an institution behind you to see. It streams on the API you already use, in real time, for $9 over your plan. At cost. Because that’s the version of this industry we’ve been trying to build since 2014.