Observed since 20 Oct, 19:09 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Sentiment Explorer Python API

Alpha Data Analytics ("Adalytica") is a data analytics company specializing in sentiment analysis. Its core product, Sentiment Explorer, uses sentiment monitoring technology to analyze news and social media content, transforming it into machine-readable data. The platform provides insights into public sentiment that can be applied across various fields, including capital markets, demand forecasting, political analysis, marketing strategies, and more.
This package powers the Fear and Greed Index, a key tool for assessing market sentiment.
For a detailed explanation of how it works, read the article: How Fear and Greed Using Sentiment AI Works?
This packages is made for data proficient users, like quantitative analysts, data engineers, data scientist or analysts
Package is build around two search engines keyword and topic, as explained below.
Data contains two indicators:
score — sentiment polarity score in the range of [-1, +1]coverage — ratio (proportion) of query hits divided to total number of data
pip install adase-api
In case you don't have yet the credentials, you can Sign Up for free 14 day trial
To use API you need to provide API credentials and search terms
from adase_api.schemas.sentiment import Credentials, QuerySentimentTopic
from adase_api.sentiment import load_sentiment_topic
credentials = Credentials(username='youruser@gmail.com', password='yourpass')
search_terms = ["inflation rates", "bitcoin"]
ada_query = QuerySentimentTopic(
text=search_terms,
credentials=credentials
)
sentiment = load_sentiment_topic(ada_query)
sentiment.tail(3)
indicator score coverage score coverage
query inflation rates inflation rates bitcoin bitcoin
date_time
2025-02-04 06:00:00 0.112417 0.002583 0.011417 0.001750
2025-02-04 09:00:00 0.103167 0.002750 -0.155000 0.001500
2025-02-04 12:00:00 0.047500 0.002750 -0.050375 0.003375
Returns two indicators, coverage and score, in a Pandas DataFrame indexed by timestamp objects, with columns organized as a multiindex
You can supply a dictionary of query keys, each containing multiple comma-separated sentiment queries along with the corresponding weight for each subquery:
ASSETS = {
"NXPI": {
"queries": "(+NXPI), (+semiconduct*)",
"weights": [1.0, 0.5]
},
"PLTR": {
"queries": "(+Palantir), (+PLTR)",
"weights": [2.0, 1.0]
}
}
ada_query = QuerySentimentTopic.from_assets(
ASSETS,
credentials=credentials
)
In this case, each search term is queried individually, and then a weighted average is calculated
indicator score coverage score coverage
query NXPI NXPI PLTR PLTR
date_time
2025-02-04 06:00:00 0.056472 0.000333 -0.010778 0.000417
2025-02-04 09:00:00 0.051278 0.000194 0.039500 0.000417
2025-02-04 12:00:00 0.016750 0.000042 0.058500 0.000583
You can also apply z-score sentiment normalization. In this example, the z-score is calculated based on a 35-day rolling window.
from adase_api.schemas.sentiment import ZScoreWindow
ada_query = QuerySentimentTopic.from_assets(
ASSETS,
credentials=credentials,
z_score=ZScoreWindow(window='35d')
)
By default is queried last 35 days of live data collection, but you can switch to historical data
ada_query = QuerySentimentTopic.from_assets(
ASSETS,
credentials=credentials,
z_score=ZScoreWindow(window='365d'),
live=False,
start_date='2020-01-01',
languages=['de', 'ro'],
freq='1d',
on_not_found_query='warn'
)
This query will retrieve data from 2020, in German and Romanian languages, apply a 1-year rolling z-score and return a daily data granularity
"stock market", it might also analyse terms as "Dow Jones", "FAANG" etc."Airline travel demand""Energy disruptions in Europe""President Joe Biden"(), where
+ indicates a search term must be found- excludes it"(+Ford +Motor*), asterix * will include both Motor & MotorsThis query will do a boolean search on historical data starting from Jan 1, 2010 and include only data in specified languages
filter_sample_daily_size option (refer to the code docstring for more details). If not enough data is found, those rows will be set to NaN. The calculation uses a rolling window, meaning some periods may have sufficient data while others may not.All endpoints have a set limit on API calls per minute, with a default of 10 calls per minute.
You can also interact with data using LLM and integrate live news data feeds into your systems, although this is outside the scope of this particular package.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.5.7 | 1 Aug 2025 | 10 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 19:09 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:04f62188f7fe8e1eac8475b2745a69609f94ef5e9ca3db9e05fba342cca3c9c4