EOD Historical Data Fundamentals API
Fundamental data for stocks and companies
Fundamental data for stocks and companies
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).