EOD Historical Data Exchanges API
Exchange information and symbols
Exchange information and symbols
openapi: 3.1.0
info:
title: EODHD Financial Data Calendar Exchanges 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: Exchanges
description: Exchange information and symbols
paths:
/exchange-details/{EXCHANGE_CODE}:
get:
summary: Retrieve details for a specific exchange
description: Retrieve exchange details, trading hours, holidays, and active tickers for a specified exchange.
operationId: GetExchangeDetails
parameters:
- name: EXCHANGE_CODE
in: path
required: true
description: Exchange code for which details are to be retrieved (e.g., 'US' for the USA exchange).
schema:
type: string
- name: api_token
in: query
required: true
description: API token for authentication.
schema:
type: string
- name: fmt
in: query
required: false
description: Response format. Options are 'json' and 'csv'. Defaults to JSON.
schema:
type: string
enum:
- json
- csv
- name: from
in: query
required: false
description: Start date for holiday data (YYYY-MM-DD). Defaults to 6 months before the current date.
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date for holiday data (YYYY-MM-DD). Defaults to 6 months after the current date.
schema:
type: string
format: date
- name: format_version
in: query
required: false
description: Response format version.
schema:
type: integer
responses:
'200':
description: Successful response with exchange details and trading hours.
content:
application/json:
schema:
type: object
properties:
Name:
type: string
Code:
type: string
OperatingMIC:
type: string
Country:
type: string
Currency:
type: string
Timezone:
type: string
ExchangeHolidays:
type: array
items:
type: object
properties:
Holiday:
type: string
Date:
type: string
format: date
Type:
type: string
ExchangeEarlyCloseDays:
type: array
items:
type: object
properties:
Date:
type: string
format: date
CloseTime:
type: string
format: time
isOpen:
type: boolean
TradingHours:
type: object
properties:
Open:
type: string
format: time
Close:
type: string
format: time
OpenUTC:
type: string
format: time
CloseUTC:
type: string
format: time
WorkingDays:
type: string
ActiveTickers:
type: integer
PreviousDayUpdatedTickers:
type: integer
UpdatedTickers:
type: integer
example:
Name: USA Stocks
Code: US
OperatingMIC: XNAS, XNYS, OTCM
Country: USA
Currency: USD
Timezone: America/New_York
ExchangeHolidays:
- Holiday: Memorial Day
Date: '2024-05-27'
Type: official
- Holiday: Juneteenth Holiday
Date: '2024-06-19'
Type: official
- Holiday: Independence Day
Date: '2024-07-04'
Type: official
- Holiday: Labour Day
Date: '2024-09-02'
Type: official
- Holiday: Thanksgiving Day
Date: '2024-11-28'
Type: official
- Holiday: Christmas Day
Date: '2024-12-25'
Type: official
- Holiday: New Years Day
Date: '2025-01-01'
Type: official
ExchangeEarlyCloseDays: []
isOpen: false
TradingHours:
Open: 09:30:00
Close: '16:00:00'
OpenUTC: '13:30:00'
CloseUTC: '20:00:00'
WorkingDays: Mon,Tue,Wed,Thu,Fri
ActiveTickers: 49242
PreviousDayUpdatedTickers: 47442
UpdatedTickers: 0
'400':
description: Invalid request parameters.
'401':
description: Unauthorized.
'404':
description: Exchange not found.
tags:
- Exchanges
/exchange-symbol-list/{exchangeCode}:
get:
summary: Retrieve the list of tickers for a specific exchange.
description: Returns a list of active or delisted symbols for the specified exchange, with optional filters by ticker type.
operationId: GetExchangeSymbolList
parameters:
- name: exchangeCode
in: path
required: true
description: Exchange code, e.g., 'PSE' for the Philippines Stock Exchange or 'US' for combined US exchanges.
schema:
type: string
- name: api_token
in: query
required: true
description: API token for authentication.
schema:
type: string
- name: fmt
in: query
required: false
description: 'Response format. Options: ''json'' (default) or ''csv''.'
schema:
type: string
enum:
- json
- csv
- name: delisted
in: query
required: false
description: Include delisted (inactive) tickers. Set to '1' to include.
schema:
type: integer
enum:
- 0
- 1
default: 0
- name: type
in: query
required: false
description: 'Filter by ticker type. Options: ''common_stock'', ''preferred_stock'', ''stock'', ''etf'', ''fund''.'
schema:
type: string
enum:
- common_stock
- preferred_stock
- stock
- etf
- fund
responses:
'200':
description: Successful response with a list of tickers.
content:
application/json:
schema:
type: array
items:
type: object
properties:
Code:
type: string
description: Ticker symbol code.
Name:
type: string
description: Company name associated with the ticker.
Country:
type: string
description: Country of the exchange.
Exchange:
type: string
description: Exchange code.
Currency:
type: string
description: Currency code in which the stock is traded.
Type:
type: string
description: Type of ticker (e.g., Common Stock, ETF).
Isin:
type:
- string
- 'null'
description: ISIN code if available.
example:
- Code: AB
Name: Atok Big Wedge Co Inc
Country: Philippines
Exchange: PSE
Currency: PHP
Type: Common Stock
Isin: PHY044931210
- Code: AC
Name: Ayala Corp
Country: Philippines
Exchange: PSE
Currency: PHP
Type: Common Stock
Isin: PHY0486V1154
'400':
description: Invalid request parameters.
'401':
description: Unauthorized.
tags:
- Exchanges
/exchanges-list:
get:
summary: List supported exchanges
description: Retrieve the list of supported exchanges with their details.
operationId: GetListOfExchanges
parameters:
- name: api_token
in: query
required: true
description: API token for authentication.
schema:
type: string
- name: fmt
in: query
required: false
description: Response format. Options are 'json' and 'csv'. Defaults to JSON.
schema:
type: string
enum:
- json
- csv
responses:
'200':
description: Successful response with a list of exchanges.
content:
application/json:
schema:
type: array
items:
type: object
properties:
Name:
type: string
Code:
type: string
OperatingMIC:
type:
- string
- 'null'
Country:
type: string
Currency:
type: string
CountryISO2:
type: string
CountryISO3:
type: string
example:
- Name: USA Stocks
Code: US
OperatingMIC: XNAS, XNYS, OTCM
Country: USA
Currency: USD
CountryISO2: US
CountryISO3: USA
- Name: Toronto Exchange
Code: TO
OperatingMIC: XTSE
Country: Canada
Currency: CAD
CountryISO2: CA
CountryISO3: CAN
- Name: Berlin Exchange
Code: BE
OperatingMIC: XBER
Country: Germany
Currency: EUR
CountryISO2: DE
CountryISO3: DEU
'400':
description: Invalid request parameters.
'401':
description: Unauthorized.
tags:
- Exchanges
/id-mapping:
get:
summary: Map between financial identifiers
description: 'Look up securities by various identifiers including symbol, exchange code, ISIN, FIGI, LEI, CUSIP, and CIK.
**At least one of the following filter parameters is required**:
`filter[symbol]`, `filter[isin]`, `filter[figi]`, `filter[lei]`, `filter[cusip]`, `filter[cik]`, or `filter[ex]`.
A request without any of these will return HTTP 422.
'
operationId: GetIdMapping
parameters:
- name: api_token
in: query
required: true
description: API token for authentication.
schema:
type: string
- name: filter[symbol]
in: query
required: false
description: Filter by ticker symbol (e.g., 'AAPL').
schema:
type: string
- name: filter[ex]
in: query
required: false
description: Filter by exchange code (e.g., 'US').
schema:
type: string
- name: filter[isin]
in: query
required: false
description: Filter by ISIN code (e.g., 'US0378331005').
schema:
type: string
- name: filter[figi]
in: query
required: false
description: Filter by FIGI identifier.
schema:
type: string
- name: filter[lei]
in: query
required: false
description: Filter by LEI code.
schema:
type: string
- name: filter[cusip]
in: query
required: false
description: Filter by CUSIP identifier.
schema:
type: string
- name: filter[cik]
in: query
required: false
description: Filter by CIK number.
schema:
type: string
- name: page[limit]
in: query
required: false
description: Number of records per page.
schema:
type: integer
- name: page[offset]
in: query
required: false
description: Pagination offset.
schema:
type: integer
- name: fmt
in: query
required: false
description: Output format.
schema:
type: string
enum:
- json
- csv
default: json
responses:
'200':
description: Successfully retrieved identifier mappings.
content:
application/json:
schema:
type: array
items:
type: object
properties:
Code:
type: string
description: Ticker symbol.
Exchange:
type: string
description: Exchange code.
Name:
type: string
description: Company name.
ISIN:
type: string
description: ISIN code.
FIGI:
type: string
description: FIGI identifier.
LEI:
type: string
description: LEI code.
CUSIP:
type: string
description: CUSIP identifier.
CIK:
type: string
description: CIK number.
'400':
description: Invalid request parameters.
'401':
description: Unauthorized. Invalid API token.
tags:
- Exchanges
/v2/exchange-details:
get:
summary: List available exchanges (v2)
description: Returns an array of all exchange codes supported by the v2 endpoint. Use these codes to request details for a specific exchange via /v2/exchange-details/{code}.
operationId: ListExchangeDetailsV2
parameters:
- name: api_token
in: query
required: true
description: API token for authentication.
schema:
type: string
responses:
'200':
description: Successful response with list of exchange codes.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: string
description: Array of supported exchange codes.
example:
data:
- ASEX
- BMEX
- BVMF
- LSE
- NEO
- US
- XAMS
- XASX
- XHKG
- XKRX
- XNSE
- XPAR
- XTKS
'401':
description: Unauthorized — missing or invalid API token.
tags:
- Exchanges
/v2/exchange-details/{code}:
get:
summary: Get exchange details and trading hours (v2)
description: Returns trading hours, extended sessions (pre-market, after-hours), lunch breaks, and the full holiday calendar for the requested exchange. Covers 73 exchanges with verified data. The code parameter is case-insensitive.
operationId: GetExchangeDetailsV2
parameters:
- name: code
in: path
required: true
description: Exchange code (case-insensitive). Use /v2/exchange-details to get the list of supported codes.
schema:
type: string
examples:
us:
summary: US exchanges (NYSE / NASDAQ)
value: US
hk:
summary: Hong Kong Stock Exchange
value: XHKG
tokyo:
summary: Tokyo Stock Exchange
value: XTKS
- name: api_token
in: query
required: true
description: API token for authentication.
schema:
type: string
responses:
'200':
description: Successful response with exchange details, trading hours, and holiday calendar.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
Name:
type: string
description: Full exchange name.
Code:
type: string
description: Exchange code used in this endpoint.
Timezone:
type: string
description: IANA timezone (e.g. America/New_York).
TradingHours:
type: object
properties:
Open:
type: string
description: Regular session open time (HH:MM:SS).
Close:
type: string
description: Regular session close time (HH:MM:SS).
WorkingDays:
type: string
description: Trading days (e.g. Mon, Tue, Wed, Thu, Fri).
PreMarketOpen:
type: string
description: Pre-market session open (if available).
PreMarketClose:
type: string
description: Pre-market session close (if available).
AfterHoursOpen:
type: string
description: After-hours session open (if available).
AfterHoursClose:
type: string
description: After-hours session close (if available).
LunchBreakStart:
type: string
description: Lunch break start (if applicable).
LunchBreakEnd:
type: string
description: Lunch break end (if applicable).
required:
- Open
- Close
- WorkingDays
ExchangeHolidays:
type: object
description: Holiday calendar keyed by date (YYYY-MM-DD).
additionalProperties:
type: object
properties:
Holiday:
type: string
description: Holiday name.
Type:
type: string
enum:
- Official
- Bank
- EarlyClose
description: Holiday type.
EarlyClose:
type: string
description: Early close time (HH:MM:SS). Only present when Type is EarlyClose.
required:
- Holiday
- Type
required:
- Name
- Code
- Timezone
- TradingHours
- ExchangeHolidays
meta:
type: array
description: Reserved for future use.
links:
type: array
description: Reserved for future use.
example:
data:
Name: NYSE / NASDAQ
Code: US
Timezone: America/New_York
TradingHours:
Open: 09:30:00
Close: '16:00:00'
WorkingDays: Mon, Tue, Wed, Thu, Fri
PreMarketOpen: 04:00:00
PreMarketClose: 09:30:00
AfterHoursOpen: '16:00:00'
AfterHoursClose: '20:00:00'
ExchangeHolidays:
'2026-01-01':
Holiday: New Year's Day
Type: Official
'2026-01-19':
Holiday: Martin Luther King Jr. Day
Type: Official
'2026-11-27':
Holiday: Day after Thanksgiving
Type: EarlyClose
EarlyClose: '13:00:00'
'2026-12-24':
Holiday: Christmas Eve
Type: EarlyClose
EarlyClose: '13:00:00'
'2026-12-25':
Holiday: Christmas Day
Type: Official
meta: []
links: []
'401':
description: Unauthorized — missing or invalid API token.
'404':
description: Exchange not found.
tags:
- Exchanges
components:
securitySchemes:
EODHDQueryKey:
type: apiKey
in: query
name: api_token
description: EODHD API key (stored as a secret in ChatGPT).