EOD Historical Data Fundamentals API

Fundamental data for stocks and companies

OpenAPI Specification

eod-historical-fundamentals-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: EODHD Financial Data Calendar Fundamentals API
  description: Comprehensive API for retrieving financial data including stock prices, fundamentals, calendar events, news, and more from EOD Historical Data (eodhd.com)
  version: 2.0.0
  contact:
    name: EODHD Support
    url: https://eodhd.com
    email: supportlevel1@eodhistoricaldata.com
  termsOfService: https://eodhd.com/financial-apis/terms-conditions
  license:
    name: Proprietary
    url: https://eodhd.com/financial-apis/terms-conditions
servers:
- url: https://eodhd.com/api
  description: Primary API path
- url: https://eodhistoricaldata.com/api
  description: Alternative API path
security:
- EODHDQueryKey: []
tags:
- name: Fundamentals
  description: Fundamental data for stocks and companies
paths:
  /bulk-fundamentals/{EXCHANGE}:
    get:
      summary: Retrieve bulk fundamental data for an exchange
      description: Fetches fundamental data in bulk for all symbols on a given exchange. Supports filtering by specific symbols and data sections (General, Highlights, Valuation, etc.).
      operationId: GetBulkFundamentals
      parameters:
      - name: EXCHANGE
        in: path
        required: true
        description: Exchange code (e.g., 'US', 'LSE', 'TO').
        schema:
          type: string
      - name: api_token
        in: query
        required: true
        description: Your API token for authentication.
        schema:
          type: string
      - name: symbols
        in: query
        required: false
        description: Comma-separated list of symbols to filter (e.g., 'AAPL,MSFT,GOOGL').
        schema:
          type: string
      - name: offset
        in: query
        required: false
        description: Offset for pagination (number of records to skip).
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        required: false
        description: Maximum number of records to return (max 500).
        schema:
          type: integer
          default: 500
      - name: version
        in: query
        required: false
        description: API version for response format.
        schema:
          type: integer
      - name: fmt
        in: query
        required: false
        description: Output format.
        schema:
          type: string
          enum:
          - json
          default: json
      responses:
        '200':
          description: Successfully retrieved bulk fundamental data.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    General:
                      type: object
                      properties:
                        Code:
                          type: string
                        Name:
                          type: string
                        Exchange:
                          type: string
                        Sector:
                          type: string
                        Industry:
                          type: string
                    Highlights:
                      type: object
                      properties:
                        MarketCapitalization:
                          type: number
                        EBITDA:
                          type: number
                        PERatio:
                          type: number
                    Valuation:
                      type: object
                      properties:
                        TrailingPE:
                          type: number
                        ForwardPE:
                          type: number
        '400':
          description: Invalid request parameters.
        '401':
          description: Unauthorized. Invalid API token.
        '404':
          description: Exchange not found.
      tags:
      - Fundamentals
  /fundamentals/{ticker}:
    get:
      summary: Retrieve filtered fundamental data for a specific symbol
      description: Fetches various sections of fundamental data for a given stock symbol. Use filters to specify the data section and sub-sections, such as Financials::Balance_Sheet::quarterly::2024-06-30 for quarterly Balance Sheet data.
      operationId: GetFundamentalData
      parameters:
      - name: ticker
        in: path
        required: true
        description: The ticker symbol in the format SYMBOL.EXCHANGE, e.g., 'AAPL.US' for Apple Inc. on NASDAQ.
        schema:
          type: string
      - name: api_token
        in: query
        required: true
        description: Your API token for authentication. Use 'demo' for limited access with specific symbols.
        schema:
          type: string
          example: demo
      - name: filter
        in: query
        required: false
        description: Filter parameter to specify data section and optional sub-sections, e.g., `Financials::Balance_Sheet::quarterly::2024-06-30`. Supported sections include General, Highlights, Valuation, SharesStats, Technicals, SplitsDividends, AnalystRatings, Holders, InsiderTransactions, ESGScores, outstandingShares, Earnings, and Financials. When omitted, returns all sections.
        schema:
          type: string
          example: Financials::Income_Statement::annual::2023-12-31
      - name: historical
        in: query
        required: false
        description: Set to 1 to return historical data for certain sections (e.g., outstandingShares).
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: from
        in: query
        required: false
        description: Start date for historical data in 'YYYY-MM-DD' format.
        schema:
          type: string
          format: date
      - name: to
        in: query
        required: false
        description: End date for historical data in 'YYYY-MM-DD' format.
        schema:
          type: string
          format: date
      - name: version
        in: query
        required: false
        description: API version for response format.
        schema:
          type: integer
      - name: no_cache
        in: query
        required: false
        description: Set to 1 to bypass cache and get fresh data.
        schema:
          type: integer
          enum:
          - 0
          - 1
      responses:
        '200':
          description: Successfully retrieved filtered fundamental data for the specified symbol and section.
          content:
            application/json:
              schema:
                type: object
                properties:
                  General:
                    type: object
                    description: General company information
                    properties:
                      Code:
                        type: string
                      Name:
                        type: string
                      Exchange:
                        type: string
                      Sector:
                        type: string
                  Highlights:
                    type: object
                    description: Key financial highlights
                    properties:
                      MarketCapitalization:
                        type: number
                      EBITDA:
                        type: number
                      PERatio:
                        type: number
                  Valuation:
                    type: object
                    description: Company valuation metrics
                    properties:
                      TrailingPE:
                        type: number
                      ForwardPE:
                        type: number
                      EnterpriseValue:
                        type: number
                  SharesStats:
                    type: object
                    description: Shares statistics
                    properties:
                      SharesOutstanding:
                        type: number
                      SharesFloat:
                        type: number
                      PercentInstitutions:
                        type: number
                  Technicals:
                    type: object
                    description: Technical indicators
                    properties:
                      Beta:
                        type: number
                      52WeekHigh:
                        type: number
                      52WeekLow:
                        type: number
                  SplitsDividends:
                    type: object
                    description: Dividend and split information
                    properties:
                      DividendYield:
                        type: number
                      DividendDate:
                        type: string
                        format: date
                      LastSplitFactor:
                        type: string
                  AnalystRatings:
                    type: object
                    description: Analyst ratings
                    properties:
                      Rating:
                        type: number
                      StrongBuy:
                        type: integer
                      Sell:
                        type: integer
                  Holders:
                    type: object
                    description: Institutional and fund holders
                    properties:
                      Institutions:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            totalShares:
                              type: number
                      Funds:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            totalShares:
                              type: number
                  InsiderTransactions:
                    type: array
                    description: Insider transactions
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          format: date
                        ownerName:
                          type: string
                        transactionCode:
                          type: string
                        transactionAmount:
                          type: number
                  ESGScores:
                    type: object
                    description: Environmental, social, and governance scores
                    properties:
                      environmentScore:
                        type: number
                      socialScore:
                        type: number
                      governanceScore:
                        type: number
                  outstandingShares:
                    type: object
                    description: Outstanding shares data
                    properties:
                      annual:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                            shares:
                              type: number
                      quarterly:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                            shares:
                              type: number
                  Earnings:
                    type: object
                    description: Earnings data
                    properties:
                      History:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                            epsActual:
                              type: number
                      Trend:
                        type: array
                        items:
                          type: object
                          properties:
                            period:
                              type: string
                            epsEstimateAvg:
                              type: number
                  Financials:
                    type: object
                    description: Financial statements
                    properties:
                      Balance_Sheet:
                        type: object
                        description: Balance sheet data
                        properties:
                          annual:
                            type: array
                          quarterly:
                            type: array
                      Income_Statement:
                        type: object
                        description: Income statement data
                        properties:
                          annual:
                            type: array
                          quarterly:
                            type: array
                      Cash_Flow:
                        type: object
                        description: Cash flow data
                        properties:
                          annual:
                            type: array
                          quarterly:
                            type: array
        '400':
          description: Invalid request parameters or missing required filter.
        '401':
          description: Unauthorized. Invalid API token.
        '404':
          description: Data not found for the specified symbol or filter.
      tags:
      - Fundamentals
  /v1.1/bulk-fundamentals/{EXCHANGE}:
    get:
      summary: Retrieve bulk fundamental data for an exchange (v1.1)
      description: Fetches fundamental data in bulk for all symbols on a given exchange using API v1.1. Supports filtering by specific symbols and data sections (General, Highlights, Valuation, etc.). In v1.1, the fmt parameter only supports json format.
      operationId: GetBulkFundamentalsV1_1
      parameters:
      - name: EXCHANGE
        in: path
        required: true
        description: Exchange code (e.g., 'US', 'LSE', 'TO').
        schema:
          type: string
      - name: api_token
        in: query
        required: true
        description: Your API token for authentication.
        schema:
          type: string
      - name: symbols
        in: query
        required: false
        description: Comma-separated list of symbols to filter (e.g., 'AAPL,MSFT,GOOGL').
        schema:
          type: string
      - name: offset
        in: query
        required: false
        description: Offset for pagination (number of records to skip).
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        required: false
        description: Maximum number of records to return (max 500).
        schema:
          type: integer
          default: 500
      - name: version
        in: query
        required: false
        description: API version for response format.
        schema:
          type: integer
      - name: fmt
        in: query
        required: false
        description: Output format. In v1.1, only json format is supported.
        schema:
          type: string
          enum:
          - json
          default: json
      responses:
        '200':
          description: Successfully retrieved bulk fundamental data.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    General:
                      type: object
                      properties:
                        Code:
                          type: string
                        Name:
                          type: string
                        Exchange:
                          type: string
                        Sector:
                          type: string
                        Industry:
                          type: string
                    Highlights:
                      type: object
                      properties:
                        MarketCapitalization:
                          type: number
                        EBITDA:
                          type: number
                        PERatio:
                          type: number
                    Valuation:
                      type: object
                      properties:
                        TrailingPE:
                          type: number
                        ForwardPE:
                          type: number
        '400':
          description: Invalid request parameters.
        '401':
          description: Unauthorized. Invalid API token.
        '404':
          description: Exchange not found.
      tags:
      - Fundamentals
  /v1.1/fundamentals/{ticker}:
    get:
      summary: Retrieve filtered fundamental data for a specific symbol (v1.1)
      description: Fetches various sections of fundamental data for a given stock symbol using API v1.1. This version differs from v1 in the Earnings Trend section, which is split into Quarterly and Annual sub-objects with an additional "quarter" field on quarterly items. Use filters to specify the data section and sub-sections, such as Financials::Balance_Sheet::quarterly::2024-06-30 for quarterly Balance Sheet data.
      operationId: GetFundamentalDataV1_1
      parameters:
      - name: ticker
        in: path
        required: true
        description: The ticker symbol in the format SYMBOL.EXCHANGE, e.g., 'AAPL.US' for Apple Inc. on NASDAQ.
        schema:
          type: string
      - name: api_token
        in: query
        required: true
        description: Your API token for authentication. Use 'demo' for limited access with specific symbols.
        schema:
          type: string
          example: demo
      - name: filter
        in: query
        required: false
        description: Filter parameter to specify data section and optional sub-sections, e.g., `Financials::Balance_Sheet::quarterly::2024-06-30`. Supported sections include General, Highlights, Valuation, SharesStats, Technicals, SplitsDividends, AnalystRatings, Holders, InsiderTransactions, ESGScores, outstandingShares, Earnings, and Financials. When omitted, returns all sections.
        schema:
          type: string
          example: Financials::Income_Statement::annual::2023-12-31
      - name: historical
        in: query
        required: false
        description: Set to 1 to return historical data for certain sections (e.g., outstandingShares).
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: from
        in: query
        required: false
        description: Start date for historical data in 'YYYY-MM-DD' format.
        schema:
          type: string
          format: date
      - name: to
        in: query
        required: false
        description: End date for historical data in 'YYYY-MM-DD' format.
        schema:
          type: string
          format: date
      - name: version
        in: query
        required: false
        description: API version for response format.
        schema:
          type: integer
      - name: no_cache
        in: query
        required: false
        description: Set to 1 to bypass cache and get fresh data.
        schema:
          type: integer
          enum:
          - 0
          - 1
      responses:
        '200':
          description: Successfully retrieved filtered fundamental data for the specified symbol and section.
          content:
            application/json:
              schema:
                type: object
                properties:
                  General:
                    type: object
                    description: General company information
                    properties:
                      Code:
                        type: string
                      Name:
                        type: string
                      Exchange:
                        type: string
                      Sector:
                        type: string
                  Highlights:
                    type: object
                    description: Key financial highlights
                    properties:
                      MarketCapitalization:
                        type: number
                      EBITDA:
                        type: number
                      PERatio:
                        type: number
                  Valuation:
                    type: object
                    description: Company valuation metrics
                    properties:
                      TrailingPE:
                        type: number
                      ForwardPE:
                        type: number
                      EnterpriseValue:
                        type: number
                  SharesStats:
                    type: object
                    description: Shares statistics
                    properties:
                      SharesOutstanding:
                        type: number
                      SharesFloat:
                        type: number
                      PercentInstitutions:
                        type: number
                  Technicals:
                    type: object
                    description: Technical indicators
                    properties:
                      Beta:
                        type: number
                      52WeekHigh:
                        type: number
                      52WeekLow:
                        type: number
                  SplitsDividends:
                    type: object
                    description: Dividend and split information
                    properties:
                      DividendYield:
                        type: number
                      DividendDate:
                        type: string
                        format: date
                      LastSplitFactor:
                        type: string
                  AnalystRatings:
                    type: object
                    description: Analyst ratings
                    properties:
                      Rating:
                        type: number
                      StrongBuy:
                        type: integer
                      Sell:
                        type: integer
                  Holders:
                    type: object
                    description: Institutional and fund holders
                    properties:
                      Institutions:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            totalShares:
                              type: number
                      Funds:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            totalShares:
                              type: number
                  InsiderTransactions:
                    type: array
                    description: Insider transactions
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          format: date
                        ownerName:
                          type: string
                        transactionCode:
                          type: string
                        transactionAmount:
                          type: number
                  ESGScores:
                    type: object
                    description: Environmental, social, and governance scores
                    properties:
                      environmentScore:
                        type: number
                      socialScore:
                        type: number
                      governanceScore:
                        type: number
                  outstandingShares:
                    type: object
                    description: Outstanding shares data
                    properties:
                      annual:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                            shares:
                              type: number
                      quarterly:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                            shares:
                              type: number
                  Earnings:
                    type: object
                    description: Earnings data. In v1.1, Trend is split into Quarterly and Annual sub-objects. Quarterly items include a "quarter" field (Q1-Q4).
                    properties:
                      History:
                        type: array
                        items:
                          type: object
                          properties:
                            date:
                              type: string
                              format: date
                            epsActual:
                              type: number
                      Trend:
                        type: object
                        description: Earnings trend data split into Quarterly and Annual sub-objects. This is the key difference from v1 where Trend was a flat array.
                        properties:
                          Quarterly:
                            type: array
                            description: Quarterly earnings trend items with an additional quarter identifier.
                            items:
                              type: object
                              properties:
                                period:
                                  type: string
                                quarter:
                                  type: string
                                  description: Fiscal quarter identifier.
                                  enum:
                                  - Q1
                                  - Q2
                                  - Q3
                                  - Q4
                                epsEstimateAvg:
                                  type: number
                          Annual:
                            type: array
                            description: Annual earnings trend items.
                            items:
                              type: object
                              properties:
                                period:
                                  type: string
                                epsEstimateAvg:
                                  type: number
                  Financials:
                    type: object
                    description: Financial statements
                    properties:
                      Balance_Sheet:
                        type: object
                        description: Balance sheet data
                        properties:
                          annual:
                            type: array
                          quarterly:
                            type: array
                      Income_Statement:
                        type: object
                        description: Income statement data
                        properties:
                          annual:
                            type: array
                          quarterly:
                            type: array
                      Cash_Flow:
                        type: object
                        description: Cash flow data
                        properties:
                          annual:
                            type: array
                          quarterly:
                            type: array
        '400':
          description: Invalid request parameters or missing required filter.
        '401':
          description: Unauthorized. Invalid API token.
        '404':
          description: Data not found for the specified symbol or filter.
      tags:
      - Fundamentals
components:
  securitySchemes:
    EODHDQueryKey:
      type: apiKey
      in: query
      name: api_token
      description: EODHD API key (stored as a secret in ChatGPT).