Legacy package notice:
social-stock-sentimentis the old package line.- New installs should use
adanos-python-sdk. - New repo:
https://github.com/adanos-software/adanos-python-sdk - New PyPI package:
https://pypi.org/project/adanos-python-sdk/
Migration:
pip install adanos-python-sdk
from adanos_python_sdk import AdanosClient
Python SDK for the Finance Sentiment API — analyze stock sentiment (News, Reddit, X/Twitter, Polymarket) and crypto sentiment (Reddit).
Installation
pip install social-stock-sentiment
Quick Start
from stocksentiment import StockSentimentClient
client = StockSentimentClient(api_key="sk_live_...")
# Get trending stocks on Reddit
trending = client.reddit.trending(days=7, limit=10)
for stock in trending:
print(f"{stock.ticker}: buzz={stock.buzz_score}, sentiment={stock.sentiment_score}")
# Get detailed sentiment for a stock
tsla = client.reddit.stock("TSLA", days=14)
print(f"TSLA buzz: {tsla.buzz_score}, trend: {tsla.trend}")
# AI-generated trend explanation
explanation = client.reddit.explain("TSLA")
print(explanation.explanation)
# Search for stocks
results = client.reddit.search("Tesla")
# Compare multiple stocks
comparison = client.reddit.compare(["TSLA", "AAPL", "MSFT"], days=7)
# News trending endpoints support an optional source filter
news_trending = client.news.trending(days=7, source="reuters")
News Data
news_trending = client.news.trending(days=7, source="reuters")
nvda = client.news.stock("NVDA", days=7)
news_compare = client.news.compare(["NVDA", "AAPL"], days=7)
X/Twitter Data
# Same interface, different data source
x_trending = client.x.trending(days=1, limit=20)
nvda = client.x.stock("NVDA")
Polymarket Data
# Prediction-market sentiment and activity
pm_trending = client.polymarket.trending(days=7, limit=20, type="stock")
aapl = client.polymarket.stock("AAPL")
Polymarket semantics:
buzz_scoreis activity-first and optimized for current market attention, not raw depth alone.total_liquidityis a windowed signal over the requesteddays, not a live snapshot.top_mentionsonstock()are relevance-sorted: traded markets first, thentrade_count,volume_24h, andliquidity.
Async Usage
Every method has an _async variant:
import asyncio
from stocksentiment import StockSentimentClient
async def main():
async with StockSentimentClient(api_key="sk_live_...") as client:
trending = await client.reddit.trending_async(days=7)
tsla = await client.reddit.stock_async("TSLA")
asyncio.run(main())
Available Methods
client.reddit.*
| Method | Description |
|---|---|
trending(days, limit, offset, type) |
Trending stocks by buzz score |
trending_sectors(days, limit, offset) |
Trending sectors |
trending_countries(days, limit, offset) |
Trending countries |
stock(ticker, days) |
Detailed sentiment for a ticker |
explain(ticker) |
AI-generated trend explanation |
search(query) |
Search stocks by name/ticker |
compare(tickers, days) |
Compare up to 10 stocks |
client.news.*
| Method | Description |
|---|---|
trending(days, limit, offset, type, source) |
Trending stocks from news |
trending_sectors(days, limit, offset, source) |
Trending sectors from news |
trending_countries(days, limit, offset, source) |
Trending countries from news |
stock(ticker, days) |
Detailed news sentiment for a ticker |
explain(ticker) |
AI-generated explanation from news context |
search(query) |
Search stocks in the news dataset |
compare(tickers, days) |
Compare up to 10 stocks in news |
stats() |
News dataset statistics |
health() |
Public news service health |
client.x.*
| Method | Description |
|---|---|
trending(days, limit, offset, type) |
Trending stocks on X/Twitter |
trending_sectors(days, limit, offset) |
Trending sectors |
trending_countries(days, limit, offset) |
Trending countries |
stock(ticker, days) |
Detailed X/Twitter sentiment |
search(query) |
Search stocks |
compare(tickers, days) |
Compare stocks |
client.polymarket.*
| Method | Description |
|---|---|
trending(days, limit, offset, type) |
Trending stocks on Polymarket with activity-first buzz and windowed liquidity |
trending_sectors(days, limit, offset) |
Trending sectors |
trending_countries(days, limit, offset) |
Trending countries |
stock(ticker, days) |
Detailed Polymarket activity, sentiment, and relevance-sorted market questions |
search(query) |
Search stocks |
compare(tickers, days) |
Compare stocks with windowed Polymarket activity signals |
Authentication
Get your API key at api.adanos.org. Free tier includes 250 requests/month.
# Custom base URL (e.g. for self-hosted instances)
client = StockSentimentClient(
api_key="sk_live_...",
base_url="https://your-instance.com",
timeout=60.0,
)
Rate Limits
| Tier | Monthly Requests | Burst Limit |
|---|---|---|
| Free | 250 | 100/min |
| Paid | Unlimited | 1000/min |
Rate limit headers are included in every response.
License
MIT