EOD Historical Data News API

Financial news and sentiment analysis

OpenAPI Specification

eod-historical-news-api-openapi.yml Raw ↑
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).