Tiingo Fundamentals API

The Fundamentals API from Tiingo — 4 operation(s) for fundamentals.

Operations 4

GET /tiingo/fundamentals/definitions Get definitions of available fundamentals fields #
GET /tiingo/fundamentals/meta Get fundamentals metadata for tickers #
GET /tiingo/fundamentals/{ticker}/statements Get financial statement history for a ticker #
GET /tiingo/fundamentals/{ticker}/daily Get daily fundamentals metrics for a ticker #

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-fundamentals-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-fundamentals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tiingo Fundamentals 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: Fundamentals
paths:
  /tiingo/fundamentals/definitions:
    get:
      operationId: getFundamentalsDefinitions
      summary: Get definitions of available fundamentals fields
      tags:
      - Fundamentals
      externalDocs:
        url: https://www.tiingo.com/documentation/fundamentals
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FundamentalsDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /tiingo/fundamentals/meta:
    get:
      operationId: getFundamentalsMeta
      summary: Get fundamentals metadata for tickers
      tags:
      - Fundamentals
      externalDocs:
        url: https://www.tiingo.com/documentation/fundamentals
      parameters:
      - name: tickers
        in: query
        required: false
        description: Specific tickers to return meta data for. If no string passed, will return meta data for all available tickers. Can either be a single ticker, a comma-separated list of tickers, or an array of strings (string[]).
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FundamentalsMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /tiingo/fundamentals/{ticker}/statements:
    get:
      operationId: getFundamentalsStatements
      summary: Get financial statement history for a ticker
      tags:
      - Fundamentals
      externalDocs:
        url: https://www.tiingo.com/documentation/fundamentals
      parameters:
      - name: ticker
        in: path
        required: true
        description: Required. Use the ticker for active symbols, or Tiingo PermaTicker (stable identifier) for delisted/recycled symbols.
        schema:
          type: string
      - name: asReported
        in: query
        required: false
        description: When false (default), the endpoint will return the most recent data, including any revisions for the reporting period. The dates will correspond to the fiscal end of the quarter or year. When true, the endpoint will return the data as it was reported on the release date. Similarly, the date will correspond to the date the filings were posted on the SEC.
        schema:
          type: boolean
      - name: startDate
        in: query
        required: false
        description: This filter limits metrics to on or after the startDate (>=). Parameter must be in YYYY-MM-DD format.
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: false
        description: This filter limits metrics to on or before the endDate (<=). Parameter must be in YYYY-MM-DD format.
        schema:
          type: string
          format: date
      - name: sort
        in: query
        required: false
        description: 'This field allows you to specify the sort direct and which column to sort by. Prepend "-" if you want descending order, otherwise it will be ascending. E.g. sort=date will sort by date in ascending order. sort=-date will sort by date in descending order. NOTE: For Fundamentals statement only the "date" field may be sorted upon'
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FundamentalsStatement'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /tiingo/fundamentals/{ticker}/daily:
    get:
      operationId: getFundamentalsDaily
      summary: Get daily fundamentals metrics for a ticker
      tags:
      - Fundamentals
      externalDocs:
        url: https://www.tiingo.com/documentation/fundamentals
      parameters:
      - name: ticker
        in: path
        required: true
        description: Required. Use the ticker for active symbols, or Tiingo PermaTicker (stable identifier) for delisted/recycled symbols.
        schema:
          type: string
      - name: startDate
        in: query
        required: false
        description: This filter limits metrics to on or after the startDate (>=). Parameter must be in YYYY-MM-DD format.
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: false
        description: This filter limits metrics to on or before the endDate (<=). Parameter must be in YYYY-MM-DD format.
        schema:
          type: string
          format: date
      - name: sort
        in: query
        required: false
        description: This field allows you to specify the sort direct and which column to sort by. Prepend "-" if you want descending order, otherwise it will be ascending. E.g. sort=date will sort by date in ascending order. sort=-date will sort by date in descending order.
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FundamentalsDaily'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    FundamentalsDaily:
      type: object
      properties:
        date:
          type: string
          format: date-time
          description: The date the daily data corresponds to.
        marketCap:
          type: number
          description: The value of the field corresponding to the market capitalization.
        enterpriseVal:
          type: number
          description: The value of the field corresponding to the enterprise value.
        peRatio:
          type: number
          description: The value of the field corresponding to the price/earnings ratio.
        pbRatio:
          type: number
          description: The value of the field corresponding to the price/book ratio.
        trailingPEG1Y:
          type: number
          description: The value of the field corresponding to the trailing 1 year PEG Ratio.
    FundamentalsDefinition:
      type: object
      properties:
        dataCode:
          type: string
          description: An identifier representing the fundamentals field the value belongs to. For example, "peRatio."
        name:
          type: string
          description: A human-friendly readable name of the field.
        description:
          type: string
          description: A description of the field.
        statementType:
          type: string
          description: One of four values ("balanceSheet", "incomeStatement", "cashFlow", "overview"), representing which statement this value belongs to. For example, "netIncome" would belong to "incomeStatement".
        units:
          type: string
          description: The unit the field value is in. Value is either "$", "%" or blank. If blank, value may either be an integer (like shares outstanding), or a ratio.
    FundamentalsStatement:
      type: object
      properties:
        date:
          type: string
          format: date-time
          description: The date the statement data was released to the public.
        quarter:
          type: integer
          description: An integer corresponding to the fiscal quarter reported. A value of "0" means this is an Annual Report. A value of "1" through "4" corresponds to the respective fiscal quarter.
        year:
          type: integer
          description: An integer corresponding to the fiscal year reported.
        statementData:
          allOf:
          - $ref: '#/components/schemas/FundamentalsStatementData'
          description: 'Statement data that is broken out by four different fields in a JSON object. Each fields corresponds to a statement. The four fields are: balanceSheet : Balance sheet data incomeStatement : Income Statement Data cashFlow : Cash flow statement data overview : Metrics and ratios that may be a combination of the fields from various statements Each field will return an array of "dataCode" and "value" pairs that are described in the "Statement Data Table" below.'
    FundamentalsStatementData:
      type: object
      properties:
        dataCode:
          type: string
          description: An identifier representing the fundamentals field the value belongs to. For example, "peRatio."
        value:
          type: number
          description: The value of the field corresponding to the dataCode
    FundamentalsMeta:
      type: object
      properties:
        permaTicker:
          type: string
          description: Permanent Tiingo Ticker mapping to the security. Can be used as a primary key.
        ticker:
          type: string
          description: Ticker related to the asset.
        name:
          type: string
          description: Full-length name of the asset.
        isActive:
          type: boolean
          description: Boolean describing whether or not the ticker is still actively traded. If false, this ticker is delisted.
        isADR:
          type: boolean
          description: Boolean describing whether or not the ticker is an ADR. Value is true if listed ticker is an ADR.
        sector:
          type: string
          description: Sector information that is derived from sicSector and is meant to approximate GICS.
        industry:
          type: string
          description: Sector information that is derived from sicIndustry and is meant to approximate GICS.
        sicCode:
          type: integer
          description: SIC Code that represents company's business activities.
        sicSector:
          type: string
          description: Sector as determined by the SIC Code.
        sicIndustry:
          type: string
          description: Industry as determined by the SIC Code.
        reportingCurrency:
          type: string
          description: The currency the company reports their SEC statement filings in.
        location:
          type: string
          description: Location/domicile of the company. States are included for U.S. companies, otherwise countries for non-US companies.
        companyWebsite:
          type: string
          description: The website of the company when available.
        secFilingWebsite:
          type: string
          description: A URL to where you can find the company's SEC filings directly on the SEC website.
        statementLastUpdated:
          type: string
          format: date-time
          description: The timestamp the statement data/endpoint was last updated for the ticker.
        dailyLastUpdated:
          type: string
          format: date-time
          description: The timestamp the daily data/endpoint was last updated for the ticker.
  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 <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