openapi: 3.1.0 info: title: EODHD Financial Data Calendar News 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: News description: Financial news and sentiment analysis paths: /news: get: summary: Retrieve financial news articles description: Retrieve financial news articles for a specific company ticker or topic operationId: GetFinancialNews parameters: - name: s in: query required: false description: Ticker code to get news for (e.g., 'AAPL.US'). Required if 't' is not provided. schema: type: string - name: t in: query required: false description: Tag to get news on a given topic. Required if 's' is not provided. schema: type: string - name: api_token in: query required: true description: API token for authentication schema: type: string - name: from in: query required: false description: Start date for news data (YYYY-MM-DD) schema: type: string format: date - name: to in: query required: false description: End date for news data (YYYY-MM-DD) schema: type: string format: date - name: limit in: query required: false description: The number of results to return schema: type: integer default: 50 minimum: 1 maximum: 1000 - name: offset in: query required: false description: The offset of the data schema: type: integer default: 0 minimum: 0 - name: fmt in: query required: false description: Response format (e.g., 'json') schema: type: string enum: - json responses: '200': description: Successful response with financial news articles content: application/json: schema: type: array items: type: object properties: date: type: string format: date-time title: type: string content: type: string link: type: string format: uri symbols: type: array items: type: string tags: type: array items: type: string sentiment: type: object properties: polarity: type: number neg: type: number neu: type: number pos: type: number example: - date: '2024-06-05T20:35:00+00:00' title: Usher and Apple CEO Tim Cook had a meeting... content: Usher has some suggestions for Apple CEO Tim Cook... link: https://finance.yahoo.com/news/usher-apple-ceo-tim-cook-203500033.html symbols: - AAPL.US tags: [] sentiment: polarity: 0.997 neg: 0.024 neu: 0.871 pos: 0.105 - date: '2024-06-05T20:33:57+00:00' title: 'The 2030''s Millionaire Club: 3 Hyper-Growth Stocks to Buy Now' content: Hyper-growth stocks offer excitement... link: https://finance.yahoo.com/news/2030-millionaire-club-3-hyper-203357155.html symbols: - AAPL.US - NVDA.US - PLTR.US tags: [] sentiment: polarity: 1 neg: 0.018 neu: 0.781 pos: 0.202 '400': description: Invalid request parameters '401': description: Unauthorized '404': description: No news articles found tags: - News /news-word-weights: get: summary: Top weighted news keywords for a ticker description: Returns the most relevant words from financial news for the given ticker and period, with weights (frequency ? significance). operationId: getNewsWordWeights parameters: - name: s in: query required: true description: Ticker to analyze, e.g., AAPL or AAPL.US schema: type: string - name: filter[date_from] in: query required: false description: Start date (YYYY-MM-DD) schema: type: string format: date - name: filter[date_to] in: query required: false description: End date (YYYY-MM-DD). Prefer this over the legacy alias `filter[to]`. schema: type: string format: date - name: filter[to] in: query required: false deprecated: true description: Deprecated alias for `filter[date_to]` (YYYY-MM-DD). Use only one of these parameters. schema: type: string format: date - name: page[limit] in: query required: false description: Number of top words to return schema: type: integer minimum: 1 maximum: 500 default: 10 - name: fmt in: query required: false description: Response format schema: type: string enum: - json - xml default: json - name: api_token in: query required: true description: API token for authentication. schema: type: string responses: '200': description: Weighted keywords for the requested period content: application/json: schema: $ref: '#/components/schemas/WordWeightsResponse' examples: sample: summary: AAPL example (2025-04-08 > 2025-04-16, top-10) value: data: appl: 0.01922 tariff: 0.01889 stock: 0.01884 trump: 0.01115 companies: 0.00983 market: 0.00919 china: 0.0079 trade: 0.00723 ai: 0.00605 price: 0.00577 meta: news_processed: 300 news_found: 5748 links: next: '' '400': description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No results found content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - News /sentiments: get: summary: Retrieve market news sentiment data description: Retrieve sentiment analysis for financial news related to specified tickers. operationId: GetSentimentData parameters: - name: s in: query required: true description: Comma-separated list of ticker codes to retrieve sentiment data for (e.g., 'btc-usd.cc,aapl.us'). schema: type: string - name: api_token in: query required: true description: API token for authentication. schema: type: string - name: from in: query required: false description: Start date for sentiment data (YYYY-MM-DD). schema: type: string format: date - name: to in: query required: false description: End date for sentiment data (YYYY-MM-DD). schema: type: string format: date - name: fmt in: query required: false description: Response format (only 'json' is supported). schema: type: string enum: - json responses: '200': description: Successful response with sentiment data by ticker. content: application/json: schema: type: object properties: ticker: type: object additionalProperties: type: array items: type: object properties: date: type: string format: date count: type: integer description: Number of articles or mentions analyzed for the given date. normalized: type: number minimum: -1 maximum: 1 description: Normalized sentiment score, where -1 represents a very negative sentiment, 0 is neutral, and 1 is very positive. required: - date - count - normalized example: ticker: BTC-USD.CC: - date: '2022-02-22' count: 8 normalized: -0.1811 - date: '2022-02-21' count: 5 normalized: 0.2824 AAPL.US: - date: '2022-02-22' count: 23 normalized: 0.6152 - date: '2022-02-21' count: 23 normalized: 0.3668 '400': description: Invalid request parameters. '401': description: Unauthorized. Invalid or missing API token. '404': description: No sentiment data found for specified tickers or date range. tags: - News components: schemas: Error: type: object properties: status: type: integer error: type: string message: type: string WordWeightsResponse: type: object required: - data - meta - links properties: data: type: object description: Map of keyword â weight additionalProperties: type: number meta: type: object required: - news_found - news_processed properties: news_found: type: integer minimum: 0 news_processed: type: integer minimum: 0 additionalProperties: false links: type: object required: - next properties: next: type: - string - 'null' description: URL for the next page, or null additionalProperties: false additionalProperties: false securitySchemes: EODHDQueryKey: type: apiKey in: query name: api_token description: EODHD API key (stored as a secret in ChatGPT).