EOD Historical Data News API
Financial news and sentiment analysis
Financial news and sentiment analysis
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).