openapi: 3.1.0
info:
title: EODHD Financial Data 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: End-of-Day Data
description: Historical and current end-of-day price data
- name: Fundamentals
description: Fundamental data for stocks and companies
- name: Live (Delayed) Data
description: Delayed real-time stock prices and US delayed quotes
- name: Intraday Data
description: Intraday historical price data (time-based bars)
- name: Calendar
description: Calendar events including earnings, IPOs, splits, dividends, and trends
- name: Tick Data
description: Historical and marketplace tick-level trade data
- name: Exchanges
description: Exchange information and symbols
- name: Economic Data
description: Economic events and macro indicators
- name: Options
description: Options contracts and pricing data
- name: News
description: Financial news and sentiment analysis
- name: Technical
description: Technical analysis indicators
- name: Screening
description: Stock screening tools
- name: Dividends & Splits
description: Dividend and split history
- name: Corporate Actions
description: Symbol changes and insider transactions
- name: Market Data
description: Market capitalization and other market data
- name: Logos
description: Company and ticker logos
- name: User
description: User account and subscription information
- name: Indices
description: S&P/Dow Jones indices data and components
- name: US Treasury
description: US Treasury interest rates (bills, yields, long-term, real yields)
- name: CBOE
description: CBOE index data and listings
- name: ESG
description: Environmental, Social, and Governance ratings (Investverte)
- name: Investment Analytics
description: Risk scoring, bond analysis, bank financials, reports (PRAAMS)
- name: Credit & Sovereign Risk
description: Sovereign risk premiums, credit ratings, CDS spreads, and corporate credit metrics
- name: Sanctions
description: Sanctioned entities, vessels, programs, and sources (OFAC and others)
- name: Interest Rates
description: Reference rates, central bank policy rates, and funding-stress spreads
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: 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
/calendar/dividends:
get:
summary: Retrieve upcoming dividends calendar
description: 'Look up upcoming and historical dividend events.
Uses the JSON:API filter/page convention. **At least one of `filter[date_eq]` or `filter[symbol]` is required** — a request without either will return HTTP 422.
'
operationId: GetUpcomingDividends
parameters:
- name: filter[date_eq]
in: query
required: false
description: 'Exact date in ''YYYY-MM-DD'' format. Required if `filter[symbol]` is not present.
'
schema:
type: string
format: date
- name: filter[date_from]
in: query
required: false
description: Start date in 'YYYY-MM-DD' format.
schema:
type: string
format: date
- name: filter[date_to]
in: query
required: false
description: End date in 'YYYY-MM-DD' format.
schema:
type: string
format: date
- name: filter[symbol]
in: query
required: false
description: 'Ticker symbol (e.g., ''AAPL.US''). When provided, `filter[date_eq]` may be omitted.
'
schema:
type: string
- name: page[limit]
in: query
required: false
description: Number of records per page (1-10000).
schema:
type: integer
minimum: 1
maximum: 10000
- name: page[offset]
in: query
required: false
description: Pagination offset (0-1000000).
schema:
type: integer
minimum: 0
maximum: 1000000
- name: fmt
in: query
required: false
description: Output format. Defaults to 'json'.
schema:
type: string
enum:
- csv
- json
default: json
responses:
'200':
description: Successfully retrieved dividends calendar data.
content:
application/json:
schema:
type: object
properties:
meta:
type: object
description: Pagination and request metadata.
data:
type: array
items:
type: object
properties:
date:
type: string
format: date
description: Dividend ex-date.
symbol:
type: string
description: Ticker symbol.
required:
- date
- symbol
links:
type: object
description: JSON:API pagination links.
required:
- data
example:
meta:
total: 91
data:
- date: '2026-05-11'
symbol: AAPL.US
- date: '2026-05-12'
symbol: MSFT.US
links:
self: https://eodhd.com/api/calendar/dividends?filter[symbol]=AAPL.US
'401':
description: Unauthorized. Invalid API token.
'422':
description: 'Validation error. Returned when required filter is missing or parameters are malformed.
'
content:
application/json:
schema:
type: object
properties:
errors:
type: object
additionalProperties:
type: array
items:
type: string
example:
errors:
filter:
- The filter field is required.
filter.date_eq:
- The filter.date eq field is required when filter.symbol is not present.
tags:
- Calendar
/calendar/earnings:
get:
summary: Retrieve upcoming earnings data
description: Fetches upcoming earnings data, with optional parameters for date ranges and specific symbols.
operationId: GetUpcomingEarnings
parameters:
- name: from
in: query
required: false
description: Start date for earnings data, in 'YYYY-MM-DD' format. Defaults to today if not provided.
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date for earnings data, in 'YYYY-MM-DD' format. Defaults to 7 days from today if not provided.
schema:
type: string
format: date
- name: symbols
in: query
required: false
description: Specific symbols to retrieve earnings data for, separated by commas (e.g., 'AAPL.US,MSFT.US'). Overrides the 'from' and 'to' parameters if used.
schema:
type: string
- name: fmt
in: query
required: false
description: Output format, either 'csv' or 'json'. Defaults to 'csv'.
schema:
type: string
enum:
- csv
- json
default: csv
responses:
'200':
description: Successfully retrieved earnings data.
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Type of data, e.g., 'Earnings'.
description:
type: string
description: Description of the data, e.g., 'Historical and upcoming Earnings'.
from:
type: string
format: date
description: Start date for the earnings data.
to:
type: string
format: date
description: End date for the earnings data.
earnings:
type: array
items:
type: object
properties:
code:
type: string
description: Ticker symbol of the company.
report_date:
type: string
format: date
description: Date the earnings report was released.
date:
type: string
format: date
description: End date of the fiscal period.
before_after_market:
type: string
description: Indicates whether the earnings report was released 'BeforeMarket' or 'AfterMarket'.
currency:
type: string
description: Currency of the earnings values.
actual:
type: number
description: Actual reported earnings per share or other metric.
estimate:
type: number
description: Estimated earnings per share or other metric.
difference:
type: number
description: Difference between actual and estimated values.
percent:
type: number
description: Percentage difference between actual and estimated values.
required:
- code
- report_date
- date
- currency
example:
type: Earnings
description: Historical and upcoming Earnings
from: '2018-12-02'
to: '2018-12-05'
earnings:
- code: AAPL.US
report_date: '2023-02-02'
date: '2022-12-31'
before_after_market: AfterMarket
currency: USD
actual: 1.88
estimate: 1.94
difference: -0.06
percent: -3.0928
- code: MSFT.US
report_date: '2023-04-25'
date: '2023-03-31'
before_after_market: AfterMarket
currency: USD
actual: 2.45
estimate: 2.23
difference: 0.22
percent: 9.8655
'400':
description: Invalid request parameters.
'401':
description: Unauthorized. Invalid API token.
'404':
description: Earnings data not found for the specified parameters.
tags:
- Calendar
/calendar/ipos:
get:
summary: Retrieve upcoming IPO data
description: Fetches historical and upcoming IPOs for specified date ranges.
operationId: GetUpcomingIPOs
parameters:
- name: from
in: query
required: false
description: Start date for IPO data in 'YYYY-MM-DD' format. Defaults to today if not provided.
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date for IPO data in 'YYYY-MM-DD' format. Defaults to 7 days from today if not provided.
schema:
type: string
format: date
- name: fmt
in: query
required: false
description: 'Output format. Possible values: ''csv'' for CSV and ''json'' for JSON. Defaults to ''csv''.'
schema:
type: string
enum:
- csv
- json
default: csv
responses:
'200':
description: Successfully retrieved IPO data.
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Response type, here 'IPOs'.
description:
type: string
description: Description of the response data.
from:
type: string
format: date
description: The start date for the IPO data.
to:
type: string
format: date
description: The end date for the IPO data.
ipos:
type: array
items:
type: object
properties:
code:
type: string
description: Ticker symbol of the IPO if available.
name:
type: string
description: Name of the company going public.
exchange:
type: string
description: Exchange where the IPO will be listed.
currency:
type: string
description: Currency used for the IPO pricing.
start_date:
type: string
format: date
description: Expected start date for trading.
filing_date:
type: string
format: date
description: Date when the IPO was filed.
amended_date:
type: string
format: date
description: Date when the IPO filing was amended.
price_from:
type: number
format: float
description: Lower end of the price range.
price_to:
type: number
format: float
description: Upper end of the price range.
offer_price:
type: number
format: float
description: Final offer price.
shares:
type: integer
description: Number of shares being offered.
deal_type:
type: string
description: Status of the IPO, e.g., 'Filed', 'Priced', 'Expected', or 'Amended'.
required:
- name
- exchange
- currency
- deal_type
example:
type: IPOs
description: Historical and upcoming IPOs
from: '2018-12-02'
to: '2018-12-06'
ipos:
- code: 603629.SHG
name: Jiangsu Lettall Electn Co Ltd
exchange: Shanghai
currency: CNY
start_date: '2018-12-11'
filing_date: '2017-06-15'
amended_date: '2018-12-03'
price_from: 0
price_to: 0
offer_price: 0
shares: 25000000
deal_type: Expected
- code: N/A
name: Gsp Resource Corp
exchange: TSXV
currency: CAD
start_date: '2018-12-03'
filing_date: '2018-08-13'
amended_date: '2018-11-29'
price_from: 0.1523
price_to: 0.1523
offer_price: 0.2
shares: 2500000
deal_type: Priced
'400':
description: Invalid request parameters.
'401':
description: Unauthorized. Invalid API token.
'404':
description: No IPO data found for the specified date range.
tags:
- Calendar
/calendar/splits:
get:
summary: Retrieve upcoming and historical stock splits
description: Fetches information on stock splits for specified date ranges.
operationId: GetUpcomingSplits
parameters:
- name: from
in: query
required: false
description: Start date for split data in 'YYYY-MM-DD' format. Defaults to today if not provided.
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date for split data in 'YYYY-MM-DD' format. Defaults to 7 days from today if not provided.
schema:
type: string
format: date
- name: fmt
in: query
required: false
description: Output format, either 'csv' or 'json'. Default is 'csv'.
schema:
type: string
enum:
- csv
- json
default: csv
responses:
'200':
description: Successfully retrieved split data.
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Response type, here 'Splits'.
description:
type: string
description: Description of the response data.
from:
type: string
format: date
description: The start date for the split data.
to:
type: string
format: date
description: The end date for the split data.
splits:
type: array
items:
type: object
properties:
code:
type: string
description: Ticker symbol of the stock undergoing the split.
split_date:
type: string
format: date
description: The date when the stock split takes effect.
optionable:
type: string
enum:
- Y
- N
description: Indicates if the stock is optionable ('Y' for yes, 'N' for no).
old_shares:
type: integer
description: The number of shares before the split.
new_shares:
type: integer
description: The number of shares after the split.
required:
- code
- split_date
- old_shares
- new_shares
example:
type: Splits
description: Historical and upcoming splits
from: '2018-12-02'
to: '2018-12-06'
splits:
- code: AINV.US
split_date: '2018-12-03'
optionable: N
old_shares: 3
new_shares: 1
- code: SDV.AU
split_date: '2018-12-03'
optionable: N
old_shares: 10
new_shares: 1
- code: 1604.TW
split_date: '2018-12-04'
optionable: N
old_shares: 1000
new_shares: 800
'400':
description: Invalid request parameters.
'401':
description: Unauthorized. Invalid API token.
'404':
description: No split data found for the specified date range.
tags:
- Calendar
/calendar/trends:
get:
summary: Retrieve earnings trends data
description: Fetches historical and upcoming earnings trends, including EPS and revenue estimates, trends, and revisions for specific stock symbols.
operationId: GetEarningsTrends
parameters:
- name: symbols
in: query
required: true
description: Comma-separated list of stock symbols to retrieve trends data for (e.g., 'AAPL.US,MSFT.US').
schema:
type: string
- name: fmt
in: query
required: false
description: Output format. Currently supports only 'json'.
schema:
type: string
enum:
- json
default: json
responses:
'200':
description: Successfully retrieved earnings trends data.
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Response type, here 'Trends'.
description:
type: string
description: Description of the response data.
symbols:
type: string
description: Symbols for which data is returned.
trends:
type: array
items:
type: array
items:
type: object
properties:
code:
type: string
description: Stock symbol for which trend data is returned.
date:
type: string
format: date
description: Period end date for the trend data.
period:
type: string
description: Period for the earnings trend (e.g., '+1y', '0y', '+1q', '0q').
growth:
type: string
description: Expected EPS growth as a decimal.
earningsEstimateAvg:
type: string
description: Average EPS estimate from analysts.
earningsEstimateLow:
type: string
description: Lowest EPS estimate from analysts.
earningsEstimateHigh:
type: string
description: Highest EPS estimate from analysts.
earningsEstimateYearAgoEps:
type: string
description: EPS estimate from the previous year.
earningsEstimateNumberOfAnalysts:
type: string
description: Number of analysts contributing to the EPS estimate.
earningsEstimateGrowth:
type: string
description: Expected EPS growth, same as 'growth'.
revenueEstimateAvg:
type: string
description: Average revenue estimate from analysts.
revenueEstimateLow:
type: string
description: Lowest revenue estimate from analysts.
revenueEstimateHigh:
type: string
description: Highest revenue estimate from analysts.
revenueEstimateYearAgoEps:
type: string
description: Revenue estimate from the previous year.
revenueEstimateNumberOfAnalysts:
type: string
description: Number of analysts contributing to the revenue estimate.
revenueEstimateGrowth:
type: string
description: Expected growth in revenue.
epsTrendCurrent:
type: string
description: Current EPS estimate.
epsTrend7daysAgo:
type: string
description: EPS estimate 7 days ago.
epsTrend30daysAgo:
type: string
description: EPS estimate 30 days ago.
epsTrend60daysAgo:
type: string
description: EPS estimate 60 days ago.
epsTrend90daysAgo:
type: string
description: EPS estimate 90 days ago.
epsRevisionsUpLast7days:
type: string
description: Number of upward EPS revisions in the last 7 days.
epsRevisionsUpLast30days:
type: string
description: Number of upward EPS revisions in the last 30 days.
epsRevisionsDownLast7days:
type: string
description: Number of downward EPS revisions in the last 7 days.
epsRevisionsDownLast30days:
type: string
description: Number of downward EPS revisions in the last 30 days.
required:
- code
- date
- period
- earningsEstimateAvg
example:
type: Trends
description: Historical and upcoming earning trends
symbols: AAPL.US
trends:
- - code: AAPL.US
date: '2025-09-30'
period: +1y
growth: '0.1200'
earningsEstimateAvg: '7.4700'
earningsEstimateLow: '6.8800'
earningsEstimateHigh: '7.9300'
earningsEstimateYearAgoEps: '6.6700'
earningsEstimateNumberOfAnalysts: '42'
earningsEstimateGrowth: '0.1200'
revenueEstimateAvg: '420689000000.00'
revenueEstimateLow: '401691000000.00'
revenueEstimateHigh: '441882000000.00'
revenueEstimateYearAgoEps: ''
revenueEstimateNumberOfAnalysts: '40'
revenueEstimateGrowth: '0.0780'
epsTrendCurrent: '7.4700'
epsTrend7daysAgo: '7.4800'
epsTrend30daysAgo: '7.4800'
epsTrend60daysAgo: '7.4800'
epsTrend90daysAgo: '7.3400'
epsRevisionsUpLast7days: '1'
epsRevisionsUpLast30days: '4'
epsRevisionsDownLast30days: '3'
'400':
description: Invalid request parameters.
'401':
description: Unauthorized. Invalid API token.
'404':
description: Earnings trends data not found for the specified symbols.
tags:
- Calendar
/commodities/historical/{code}:
get:
summary: Get historical commodity prices
description: Returns historical price data for a specific commodity by its code (e.g., WTI, BRENT, NATURAL_GAS).
operationId: GetCommodityHistoricalData
parameters:
- name: code
in: path
required: true
description: Commodity code (e.g., 'WTI', 'BRENT', 'NATURAL_GAS', 'GOLD', 'SILVER', 'COPPER', 'PLATINUM', 'PALLADIUM', 'WHEAT', 'CORN', 'SOYBEANS', 'RICE', 'SUGAR', 'COFFEE', 'COTTON', 'COCOA', 'OATS', 'LUMBER', 'RUBBER', 'ETHANOL', 'PROPANE', 'URANIUM', 'COAL').
schema:
type: string
- name: interval
in: query
required: false
descrip
# --- truncated at 32 KB (488 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eodhd/refs/heads/main/openapi/eodhd-financial-data-openapi.yml