openapi: 3.1.0 info: title: EODHD Financial Data Calendar 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: Calendar description: Calendar events including earnings, IPOs, splits, dividends, and trends paths: /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: api_token in: query required: true description: Your API token for accessing the API. schema: type: string - 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: api_token in: query required: true description: Your API token for accessing the API. schema: type: string - 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: api_token in: query required: true description: Your API key for authentication. schema: type: string - 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: api_token in: query required: true description: Your API key for authentication. schema: type: string - 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: api_token in: query required: true description: Your API key for authentication. 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 components: securitySchemes: EODHDQueryKey: type: apiKey in: query name: api_token description: EODHD API key (stored as a secret in ChatGPT).