Tiingo · AsyncAPI Specification
Tiingo WebSocket API
Version 1.0.0
Tiingo's WebSocket streaming interface for real-time market data. Clients subscribe and unsubscribe to data feeds by sending a JSON request containing eventName, an authorization API token, and eventData (thresholdLevel, tickers, and subscriptionId for updates). Servers push frames tagged with a messageType. Generated by API Evangelist from Tiingo's published WebSocket documentation (https://www.tiingo.com/documentation/websockets/iex) - Tiingo does not publish an AsyncAPI itself.
View Spec
View on GitHub
FintechMarket DataStocksCryptoFXNewsFundamentalsWebSocketsAsyncAPIWebhooksEvents
Channels
/iex
publish
Send a subscribe or unsubscribe request as a JSON object.
IEX real-time top-of-book and last-sale data.
/crypto
publish
Send a subscribe or unsubscribe request as a JSON object.
Real-time cryptocurrency top-of-book and trade data aggregated across exchanges.
/fx
publish
Send a subscribe or unsubscribe request as a JSON object.
Real-time forex quote data.
/boats
publish
Send a subscribe or unsubscribe request as a JSON object.
BOATS overnight session real-time equity market data firehose (beta).
/equity/intraday
publish
Send a subscribe or unsubscribe request as a JSON object.
Consolidated equity realtime snapshot stream (beta).
/test
publish
Send a subscribe request to verify connectivity.
Test channel for verifying WebSocket connectivity and authentication.
Servers
wss
production
api.tiingo.com
Tiingo WebSocket server. Authenticate by passing your API token in the authorization field of each subscribe request.
AsyncAPI Specification
asyncapi: 2.6.0
info:
title: Tiingo WebSocket API
version: 1.0.0
description: Tiingo's WebSocket streaming interface for real-time market data. Clients subscribe and unsubscribe
to data feeds by sending a JSON request containing eventName, an authorization API token, and eventData (thresholdLevel,
tickers, and subscriptionId for updates). Servers push frames tagged with a messageType. Generated by API Evangelist
from Tiingo's published WebSocket documentation (https://www.tiingo.com/documentation/websockets/iex) - Tiingo
does not publish an AsyncAPI itself.
x-apievangelist:
generated: '2026-07-22'
method: generated
source: https://apimedia.tiingo.com/dist/src_app_api_documentation_documentation_module_ts-es2015.f5eea3d64917e26bb724.js
externalDocs:
url: https://www.tiingo.com/documentation/general/connecting
servers:
production:
url: api.tiingo.com
protocol: wss
description: Tiingo WebSocket server. Authenticate by passing your API token in the authorization field of each
subscribe request.
channels:
/iex:
description: IEX real-time top-of-book and last-sale data.
subscribe:
summary: Server pushes market data frames after a subscribe request.
message:
name: iexFrame
payload:
type: object
properties:
messageType: &id001
type: string
enum:
- A
- U
- D
- I
- E
- H
description: 'Message type on every server frame: "A" new data, "U" update to existing data, "D" delete
existing data, "I" informational/meta data, "E" error messages, "H" heartbeat (sent every 30 seconds
to keep the connection alive).'
service:
type: string
description: The service the message pertains to.
data:
description: Message data. On the first response after a successful subscribe, contains the subscriptionId
used to manage the connection (add/remove tickers).
publish:
summary: Send a subscribe or unsubscribe request as a JSON object.
message:
name: iexSubscribe
payload:
type: object
properties:
eventName:
type: string
description: This will be either "subscribe" or "unsubscribe".
authorization:
type: string
description: This will be your API Auth token.
eventData:
type: object
properties:
thresholdLevel:
type: string
description: 'A threshold level. This is a filter that determines how much data you get from the
IEX feed. 0 - All updates from IEX. Be careful with this as it is A LOT of data. 5 - If a quote:
sends updates where mid is not null AND there is a change in mid by at least $0.01 OR If a trade:
send a trade if it differs from the last trade price.'
required:
- thresholdLevel
description: 'Subscribe parameters: thresholdLevel controls how much data you receive from the IEX
feed.'
required:
- eventName
- authorization
/crypto:
description: Real-time cryptocurrency top-of-book and trade data aggregated across exchanges.
subscribe:
summary: Server pushes market data frames after a subscribe request.
message:
name: cryptoFrame
payload:
type: object
properties:
messageType: *id001
service:
type: string
description: The service the message pertains to.
data:
description: Message data. On the first response after a successful subscribe, contains the subscriptionId
used to manage the connection (add/remove tickers).
publish:
summary: Send a subscribe or unsubscribe request as a JSON object.
message:
name: cryptoSubscribe
payload:
type: object
properties:
eventName:
type: string
description: This will be either "subscribe" or "unsubscribe".
authorization:
type: string
description: This will be your API Auth token.
eventData:
type: object
properties:
subscriptionId:
type: string
description: This is used to modify existing subscriptions. Leave this blank for new connections.
Can use this parameter to subscribe/unsubscribe from additional tickers.
thresholdLevel:
type: string
description: A threshold level. This is a filter that determines how much data you get from the
crypto feed. 2 - Top-of-Book quote updates as well as Trade updates. Both quote and trade updates
are per-exchange 5 - Trade Updates per-exchange.
description: Subscribe/unsubscribe parameters.
required:
- eventName
- authorization
/fx:
description: Real-time forex quote data.
subscribe:
summary: Server pushes market data frames after a subscribe request.
message:
name: fxFrame
payload:
type: object
properties:
messageType: *id001
service:
type: string
description: The service the message pertains to.
data:
description: Message data. On the first response after a successful subscribe, contains the subscriptionId
used to manage the connection (add/remove tickers).
publish:
summary: Send a subscribe or unsubscribe request as a JSON object.
message:
name: fxSubscribe
payload:
type: object
properties:
eventName:
type: string
description: This will be either "subscribe" or "unsubscribe".
authorization:
type: string
description: This will be your API Auth token.
eventData:
type: object
properties:
subscriptionId:
type: string
description: This is used to modify existing subscriptions. Leave this blank for new connections.
Can use this parameter to subscribe/unsubscribe from additional tickers.
thresholdLevel:
type: string
description: A threshold level. This is a filter that determines how much data you get from the
FX feed. 7 - A top-of-book update that is due to a change in either the bid/ask price or size.
description: 'Subscribe parameters: thresholdLevel controls how much data you receive from the FX
feed; subscriptionId modifies existing subscriptions.'
required:
- eventName
- authorization
/boats:
description: BOATS overnight session real-time equity market data firehose (beta).
subscribe:
summary: Server pushes market data frames after a subscribe request.
message:
name: boatsFrame
payload:
type: object
properties:
messageType: *id001
service:
type: string
description: The service the message pertains to.
data:
description: Message data. On the first response after a successful subscribe, contains the subscriptionId
used to manage the connection (add/remove tickers).
publish:
summary: Send a subscribe or unsubscribe request as a JSON object.
message:
name: boatsSubscribe
payload:
type: object
properties:
eventName:
type: string
description: This will be either "subscribe" or "unsubscribe".
authorization:
type: string
description: This will be your API Auth token.
eventData:
type: object
properties:
thresholdLevel:
type: string
description: A threshold level. This is a filter that determines how much data you get from the
BOATS feed. 3 - All venue-native BOATS top-of-book and last-trade updates (full firehose). Requires
the BOATS Real-time entitlement.
required:
- thresholdLevel
description: 'Subscribe parameters: thresholdLevel controls how much data you receive from the BOATS
feed.'
required:
- eventName
- authorization
/equity/intraday:
description: Consolidated equity realtime snapshot stream (beta).
subscribe:
summary: Server pushes market data frames after a subscribe request.
message:
name: equityRealtimeFrame
payload:
type: object
properties:
messageType: *id001
service:
type: string
description: The service the message pertains to.
data:
description: Message data. On the first response after a successful subscribe, contains the subscriptionId
used to manage the connection (add/remove tickers).
publish:
summary: Send a subscribe or unsubscribe request as a JSON object.
message:
name: equityRealtimeSubscribe
payload:
type: object
properties:
eventName:
type: string
description: This will be either "subscribe" or "unsubscribe".
authorization:
type: string
description: This will be your API Auth token.
eventData:
type: object
properties:
thresholdLevel:
type: string
description: A threshold level. This is a filter that determines how much data you get from the
consolidated equity feed. 4 - Receive liquidity risk metric updates \u2014 statistical estimates
of spread and liquidity characteristics derived from aggregated historical observations.
required:
- thresholdLevel
description: Subscribe parameters for the consolidated equity realtime feed.
required:
- eventName
- authorization
/test:
description: Test channel for verifying WebSocket connectivity and authentication.
publish:
summary: Send a subscribe request to verify connectivity.
message:
name: testSubscribe
payload:
type: object
properties:
eventName:
type: string
description: This will be either "subscribe" or "unsubscribe".
authorization:
type: string
description: This will be your API Auth token.
eventData:
type: object
properties:
thresholdLevel:
type: string
description: 'A threshold level. This is a filter that determines how much data you get from the
IEX feed. 0 - All updates from IEX. Be careful with this as it is A LOT of data. 5 - If a quote:
sends updates where mid is not null AND there is a change in mid by at least $0.01 OR If a trade:
send a trade if it differs from the last trade price.'
required:
- thresholdLevel
description: Subscribe parameters.
required:
- eventName
- authorization