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