Tiingo BOATS API

The BOATS API from Tiingo — 2 operation(s) for boats.

Operations 2

GET /boats Get BOATS overnight top-of-book and last-sale quotes (beta) #
GET /boats/{ticker}/prices Get BOATS overnight historical intraday prices for a ticker (beta) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tiingo-boats-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tiingo-boats-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tiingo BOATS 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: BOATS
paths:
  /boats:
    get:
      operationId: getBoatsTopOfBook
      summary: Get BOATS overnight top-of-book and last-sale quotes (beta)
      tags:
      - BOATS
      externalDocs:
        url: https://www.tiingo.com/documentation/boats
      parameters:
      - name: tickers
        in: query
        required: false
        description: Ticker related to the asset. Pass a comma-separated list for multiple tickers (for example aapl,spy).
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BoatsTopOfBook'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /boats/{ticker}/prices:
    get:
      operationId: getBoatsHistoricalPrices
      summary: Get BOATS overnight historical intraday prices for a ticker (beta)
      tags:
      - BOATS
      externalDocs:
        url: https://www.tiingo.com/documentation/boats
      parameters:
      - name: ticker
        in: path
        required: true
        description: Ticker related to the asset.
        schema:
          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 after the startDate (>=). Parameter must be in YYYY-MM-DD format. When both dates are omitted, Tiingo returns the latest overnight BOATS session window (8:00 PM-3:59 AM ET).
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: false
        description: If startDate or endDate is not null, historical data will be queried. This filter limits metrics to on or before the endDate (<=). Parameter must be in YYYY-MM-DD format. Date-only endDate values are normalized to the BOATS overnight session end (3:59 AM ET).
        schema:
          type: string
          format: date
      - 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". Both units in minutes (min) and hours (hour) are accepted. Format is # + (min/hour); e.g. "15min" or "4hour". If no value is provided, defaults to 5min.'
        schema:
          type: string
      - name: afterHours
        in: query
        required: false
        description: Accepted for request compatibility with other equity intraday endpoints, but it does not widen the BOATS historical window. BOATS history is limited to the overnight session (8:00 PM-3:59 AM ET) regardless of this flag.
        schema:
          type: boolean
      - name: forceFill
        in: query
        required: false
        description: Some tickers do not have a trade/quote update for a given time period. if forceFill is set to true, then the previous OHLC will be used to fill the current OHLC.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BoatsPriceBar'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    BoatsPriceBar:
      type: object
      properties:
        date:
          type: string
          format: date-time
          description: The date this data pertains to.
        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.
        volume:
          type: integer
          description: The number of shares traded on BOATS only. This value will only be exposed if explicitly passed to the "columns" request parameter. E.g. ?columns=open,high,low,close, volume
    BoatsTopOfBook:
      type: object
      properties:
        ticker:
          type: string
          description: Ticker related to the asset.
        timestamp:
          type: string
          format: date-time
          description: The timestamp the data was last refreshed on.
        quoteTimestamp:
          type: string
          format: date-time
          description: The timestamp of the last quote (bid/ask) update from BOATS.
        lastSaleTimestamp:
          type: string
          format: date-time
          description: The timestamp of the last trade (last/lastSize) update from BOATS.
        last:
          type: number
          description: Last is the last trade that was executed on BOATS.
        lastSize:
          type: integer
          description: The amount of shares traded (volume) at the last price on BOATS.
        tngoLast:
          type: number
          description: Tiingo Last is either the last price or mid price. The mid price is only used if our algo determines it is a good proxy for the last price. So if the spread is considered wide by our algo, we do not use it. Also, after the official exchange print comes in, this value changes to that value. This value is calculated by Tiingo and not provided by BOATS .
        prevClose:
          type: number
          description: Previous day's closing price of the security. This can be from any of the exchanges, NYSE, NASDAQ, IEX, etc.
        open:
          type: number
          description: The opening price of the asset on the current day. This value is calculated by Tiingo and not provided by BOATS.
        high:
          type: number
          description: The high price of the asset on the current day. This value is calculated by Tiingo and not provided by BOATS.
        low:
          type: number
          description: The low price of the asset on the current day. This value is calculated by Tiingo and not provided by BOATS.
        mid:
          type: number
          description: 'The mid price of the current timestamp when both "bidPrice" and "askPrice" are not-null. In mathematical terms: mid = (bidPrice + askPrice)/2.0 This value is calculated by Tiingo and not provided by BOATS.'
        volume:
          type: integer
          description: Live BOATS session volume for the ticker. Volume is never delayed on the BOATS REST endpoint.
        bidSize:
          type: number
          description: The amount of shares at the bid price on BOATS.
        bidPrice:
          type: number
          description: The current bid price on BOATS.
        askSize:
          type: number
          description: The amount of shares at the ask price on BOATS.
        askPrice:
          type: number
          description: The current ask price on BOATS.
  responses:
    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.
    Unauthorized:
      description: Missing or invalid API token.
  securitySchemes:
    apiTokenHeader:
      type: apiKey
      in: header
      name: Authorization
      description: 'Pass your API token in the Authorization header as: Authorization: Token <your-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