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).