social-stock-sentiment
v1.17.0
Published
TypeScript SDK for the Stock Sentiment API — analyze stock sentiment from Reddit, X/Twitter, and Polymarket
Maintainers
Readme
social-stock-sentiment
TypeScript SDK for the Stock Sentiment API — analyze stock sentiment from Reddit, X/Twitter, and Polymarket.
Installation
npm install social-stock-sentimentQuick Start
import { StockSentimentClient } from 'social-stock-sentiment';
const client = new StockSentimentClient({ apiKey: 'sk_live_...' });
// Get trending stocks on Reddit
const trending = await client.reddit.trending({ days: 7, limit: 10 });
for (const stock of trending) {
console.log(`${stock.ticker}: buzz=${stock.buzz_score}, sentiment=${stock.sentiment_score}`);
}
// Get detailed sentiment for a stock
const tsla = await client.reddit.stock('TSLA', { days: 14 });
console.log(`TSLA buzz: ${tsla.buzz_score}, trend: ${tsla.trend}`);
// AI-generated trend explanation
const explanation = await client.reddit.explain('TSLA');
console.log(explanation.explanation);
// Search for stocks
const results = await client.reddit.search('Tesla');
// Compare multiple stocks
const comparison = await client.reddit.compare(['TSLA', 'AAPL', 'MSFT'], { days: 7 });X/Twitter Data
// Same interface, different data source
const xTrending = await client.x.trending({ days: 1, limit: 20 });
const nvda = await client.x.stock('NVDA');Polymarket Data
// Prediction-market sentiment and activity
const pmTrending = await client.polymarket.trending({ days: 7, limit: 20, type: 'stock' });
const aapl = await client.polymarket.stock('AAPL');Available Methods
client.reddit.*
| Method | Description |
|--------|-------------|
| trending({ days, limit, offset, type }) | Trending stocks by buzz score |
| trendingSectors({ days, limit, offset }) | Trending sectors |
| trendingCountries({ 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.x.*
| Method | Description |
|--------|-------------|
| trending({ days, limit, offset, type }) | Trending stocks on X/Twitter |
| trendingSectors({ days, limit, offset }) | Trending sectors |
| trendingCountries({ 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 |
| trendingSectors({ days, limit, offset }) | Trending sectors |
| trendingCountries({ days, limit, offset }) | Trending countries |
| stock(ticker, { days }) | Detailed Polymarket sentiment |
| search(query) | Search stocks |
| compare(tickers, { days }) | Compare stocks |
Error Handling
All non-2xx responses throw an ApiError:
import { StockSentimentClient, ApiError } from 'social-stock-sentiment';
try {
const trending = await client.reddit.trending();
} catch (e) {
if (e instanceof ApiError) {
console.error(`API error ${e.status}: ${e.detail}`);
}
}Authentication
Get your API key at api.adanos.org. Free tier includes 250 requests/month.
// Custom base URL (e.g. for self-hosted instances)
const client = new StockSentimentClient({
apiKey: 'sk_live_...',
baseUrl: 'https://your-instance.com',
timeout: 60_000,
});Rate Limits
| Tier | Monthly Requests | Burst Limit | |------|-----------------|-------------| | Free | 250 | 100/min | | Paid | Unlimited | 1000/min |
Rate limit headers are included in every response.
Requirements
- Node.js >= 18 (uses native
fetch) - Works in Deno, Bun, and modern browsers
License
MIT
