openapi: 3.2.0 info: title: Tiingo Crypto API version: 1.0.0 description: 'Tiingo''s REST API for financial market data: end-of-day equity prices, IEX intraday, BOATS overnight equity data, consolidated equity realtime snapshots, crypto, crypto yield, forex, fundamentals, mutual fund and ETF fees, corporate actions, curated news, and asset search. Most endpoints return JSON by default and support CSV via the format parameter. Generated by API Evangelist from Tiingo''s published documentation (https://www.tiingo.com/documentation/) - Tiingo does not publish an OpenAPI itself.' termsOfService: https://www.tiingo.com/about/terms contact: name: Tiingo Support url: https://www.tiingo.com/support email: support@tiingo.com x-apievangelist: generated: '2026-07-22' method: generated source: https://apimedia.tiingo.com/dist/src_app_api_documentation_documentation_module_ts-es2015.f5eea3d64917e26bb724.js servers: - url: https://api.tiingo.com security: - apiTokenHeader: [] - apiTokenQuery: [] tags: - name: Crypto paths: /tiingo/crypto: get: operationId: listCryptoMeta summary: Get metadata for crypto tickers tags: - Crypto externalDocs: url: https://www.tiingo.com/documentation/crypto parameters: - name: tickers in: query required: false description: 'The ticker(s) associated with the crypto pair(s). Can either be a single string or an array of strings (string[]). Please note: no more than 100 tickers may be requested at this time. If no ticker(s) are passed, returns data for all supported crypto pairs.' schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/CryptoMeta' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /tiingo/crypto/top: get: operationId: getCryptoTopOfBook summary: Get top-of-book quotes for crypto tickers tags: - Crypto externalDocs: url: https://www.tiingo.com/documentation/crypto parameters: - name: tickers in: query required: true description: 'The ticker(s) associated with the crypto pair(s). Can either be a single string or an array of strings (string[]). Please note: no more than 100 tickers may be requested at this time.' schema: type: string - name: exchanges in: query required: false description: If you would like to limit the query to a subset of exchanes, pass a comma-separated list of exchanged to select. E.g. "POLONIEX, GDAX". schema: type: array items: type: string - name: includeRawExchangeData in: query required: false description: If True, the endpoint will return all of the underlying exchange data used in the calculation. If this is set to true, there will be a new field called exchangeData for each crypto. This will contain the exchange-level OHLC for each asset. schema: type: boolean responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/CryptoTopOfBook' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /tiingo/crypto/prices: get: operationId: getCryptoPrices summary: Get historical crypto price data tags: - Crypto externalDocs: url: https://www.tiingo.com/documentation/crypto parameters: - name: tickers in: query required: true description: 'The ticker(s) associated with the crypto pair(s). Can either be a single string or an array of strings (string[]). Please note: no more than 100 tickers may be requested at this time.' schema: type: string - name: exchanges in: query required: false description: If you would like to limit the query to a subset of exchanes, pass a comma-separated list of exchanged to select. E.g. "POLONIEX, GDAX". schema: type: array items: type: string - name: startDate in: query required: false description: If startDate or endDate is not null, historical data will be queried. This filter limits metrics to on or later than the startDate (>=). Parameter must be in YYYY-MM-DD format. schema: type: string format: date-time - name: endDate in: query required: false description: f startDate or endDate is not null, historical data will be queried. This filter limits metrics to on or less than the endDate (<=). Parameter must be in YYYY-MM-DD format. schema: type: string format: date-time - name: resampleFreq in: query required: false description: 'This allows you to set the frequency in which you want data resampled. For example "1hour" would return the data where OHLC is calculated on an hourly schedule. The minimum value is "1min". Units in minutes (min), hours (hour), and days (day) are accepted. Format is # + (min/hour/dau); e.g. "15min", "4hour" or "1day". If no value is provided, defaults to 5min.' schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/CryptoPrices' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: CryptoTopOfBook: type: object properties: ticker: type: string description: Ticker related to the asset. baseCurrency: type: string description: The base pair of the cryptocurrency, e.g. "btc" for "btcusd". quoteCurrency: type: string description: The quote pair of the cryptocurrency, e.g. "usd" for "btcusd". topOfBookData: allOf: - $ref: '#/components/schemas/CryptoTopOfBookData' description: Stores the top-of-book data being returned. See the table below for the fields in this object. exchangeData: type: object description: The underlying data for each exchange. This will only be returned if the includeRawExchangeData flag is set to "true". CryptoPriceBar: type: object properties: date: type: string format: date-time description: The datetime this data pertains to. It will be a timestamp dependent upon the resampleFreq parameter. For example, if resampleFreq=5min, it will be in 5 min increments. open: type: number description: The opening price for the asset on the given date. high: type: number description: The high price for the asset on the given date. low: type: number description: The low price for the asset on the given date. close: type: number description: The closing price for the asset on the given date. tradesDone: type: integer description: The number of trades done on the given date. volume: type: number description: The volume done for the asset on the specific date in the base currency. volumeNotional: type: number description: 'The last size done for the asset on the specific date in the quote currency. The volume done for the asset on the specific date in the quote currency. In mathematical terms: volumeNotional = close * volume' CryptoMeta: type: object properties: ticker: type: string description: Ticker related to the asset. baseCurrency: type: string description: The base pair of the cryptocurrency, e.g. "btc" for "btcusd". quoteCurrency: type: string description: The quote pair of the cryptocurrency, e.g. "usd" for "btcusd". name: type: string description: Full-length name of the asset. description: type: string description: Long-form descripton of the asset. CryptoPrices: type: object properties: ticker: type: string description: Ticker related to the asset. baseCurrency: type: string description: The base pair of the cryptocurrency, e.g. "btc" for "btcusd". quoteCurrency: type: string description: The quote pair of the cryptocurrency, e.g. "usd" for "btcusd". priceData: allOf: - $ref: '#/components/schemas/CryptoPriceBar' description: Stores the top-of-book data being returned. See the table below for the fields in this object. exchangeData: type: object description: The underlying data for each exchange. This will only be returned if the includeRawExchangeData flag is set to "true". CryptoTopOfBookData: type: object properties: quoteTimestamp: type: string format: date-time description: The timestamp the last time the quote (bid/ask) data was received from any crypto exchange. lastSaleTimestamp: type: string format: date-time description: The timestamp the last time the trade (last/lastSize) data was received from any crypto exchange. lastPrice: type: number description: Last price is the last price that was executed on any crypto exchange. lastSize: type: number description: The amount of crypto volume done at the last price in the base currency. lastSizeNotional: type: number description: 'The last size done for the asset on the specific date in the quote currency. The notional of the volume traded. In mathematical terms: lastSizeNotional = lastPrice * lastSize' lastExchange: type: string description: The full name of the exchange the "lastPrice" and "lastSize" were executed on. bidSize: type: number description: The amount of shares at the bid price. bidPrice: type: number description: The current bid price. bidExchange: type: string description: The full name of the exchange the "bidPrice" and "bidSize" are located on. askSize: type: number description: The amount of shares at the ask price. askPrice: type: number description: The current ask price. askExchange: type: string description: The full name of the exchange the "askPrice" and "askSize" are located on. responses: Unauthorized: description: Missing or invalid API token. TooManyRequests: description: Usage limit exceeded. Tiingo limits by hourly requests (reset every hour), daily requests (reset at midnight EST), and monthly bandwidth (reset the first of every month at midnight EST); there is no per-minute or per-second rate limit. securitySchemes: apiTokenHeader: type: apiKey in: header name: Authorization description: 'Pass your API token in the Authorization header as: Authorization: Token .' apiTokenQuery: type: apiKey in: query name: token description: Pass your API token directly in the request URL via the token query parameter. externalDocs: description: Tiingo API documentation url: https://www.tiingo.com/documentation/general/overview