Sentiment data API for quant research
Sentiment data API for quant research
The Stockpulse API provides social media and news sentiment data for quantitative research. It delivers per-instrument buzz and sentiment time series, individual scored messages, topics and detected key events for about 100,000 equities, plus cryptocurrencies, FX, commodities, indices and ETFs, with more than 15 years of point-in-time history since 2011. Historical data is served over REST and as bulk CSV/JSON files, and real-time data over WebSocket. An MCP server connects the same data to AI assistants.
Key facts
| Attribute | Value |
|---|---|
| Current API version | v6 |
| Documentation | OpenAPI/Swagger at https://docs.stockpulse.de/v6/ |
| History | Continuous collection since 2011 (15+ years), not backfilled |
| Point-in-time | Deterministic point-in-time query semantics; each message keeps its original timestamp and its collection timestamp |
| Aggregation granularity | 10-minute, hourly and daily |
| Collection | Continuous, 24/7 |
| Equities | About 100,000 |
| Cryptocurrencies | 10,000+ |
| Commodities | 25 major commodities |
| FX | Around 40 currency pairs |
| Also covered | Indices, ETFs |
| Markets | All major developed and emerging markets |
| Sources | 10,000+ news domains; Discord, Telegram, 4chan, Yahoo Finance forums; GitHub, Hugging Face; SEC filings; patent databases |
| Languages | Dozens, across news and social content |
| Identifier mapping | Million of identifiers (ISIN, CUSIP, RIC, tickers) mapped to Stockpulse IDs |
| Key event types | About 300 |
| Output formats | JSON (REST and WebSocket), CSV (bulk and exports) |
| Access | REST, WebSocket (socket.io over TLS), MCP server, bulk delivery, dashboard |
| Security | Per-client scoped credentials, TLS on all traffic, per-client rate limiting |
| Uptime SLA | 99.9% |
| Hosting | ~100 self-managed Linux servers in Germany and Finland (EU); no US hyperscaler dependency for core data paths |
Data available through the API
- Sentiment and buzz time series per instrument and time window, for signal research and backtesting.
- Messages with source, language, entity tags, sentence-level sentiment, LLM sentiment, spam and reputation score, author score and word statistics.
- Topics: ranked, weighted word clusters describing what is being discussed about an instrument.
- Key events and alerts: earnings reactions, filings, pump-and-dump patterns and anomalous buzz spikes.
- AI-generated summaries and morning briefings: issued thousands of times per day.
- Author and influencer analytics: identification and ranking of high-impact authors per instrument or topic.
- Reference data: instruments, sources, languages and event types.
- Server-side watchlists and portfolios with aggregated metrics.
Representative endpoints
| Endpoint family | Path | Returns |
|---|---|---|
| Sentiment and buzz | /v6/titles/{idents} |
Aggregated sentiment and buzz per instrument over a time window |
| Sentiment history | /v6/titles/{idents}/history |
Time series for backtesting and research |
| Messages | /v6/titles/{idents}/messages |
Individual scored messages |
| Topics | /v6/titles/{idents}/topics |
Weighted topic word clusters |
| Key events | /v6/titles/{idents}/key_events_v2 |
Detected events and anomalies |
| AI summaries | /v6/textgen |
Instrument-level AI summaries |
| Authors | /v6/{source}/{author} |
Author and influencer data |
| Entity lookup | /v6/inventory |
Maps tickers, ISINs, CUSIPs and names to Stockpulse IDs |
| Sources | /v6/sources |
Supported sources, languages and event types |
| Real-time stream | ws.stockpulse.de |
Push of messages, sentiment ticks and alerts |
Exact parameters and schemas are in the OpenAPI specification.
Example: daily sentiment history response
{
"n": "Apple Inc",
"id": 3212,
"isin": "US0378331005",
"partition": "daily_5am",
"history": [
{ "t": 1776740400, "b": 1.2001, "s": -0.4582, "total": 859, "pos": 337, "neg": 105 },
{ "t": 1776654000, "b": 0.6191, "s": -0.0047, "total": 451, "pos": 266, "neg": 44 }
]
}
Each history entry carries a Unix timestamp (t), buzz (b), sentiment (s), total message count and counts of positive and negative messages.
Delivery options for quant workflows
| Mode | Best for |
|---|---|
| REST (pull) | Historical queries, research, scheduled batch pulls |
| Bulk export (CSV/JSON) | Full-history backfills and file-based ingestion into a data lake |
| WebSocket (push) | Live signals, intraday strategies, surveillance; heartbeats, sequence numbers and replay from the last acknowledged message |
| MCP server | Research copilots and AI assistants; npm package @stockpulse-ai/mcp-server or OAuth documentation |
Used in published research
- ESMA (2024): daily positive, negative and total message counts from Stockpulse for STOXX 600 constituents, January 2019 to June 2023, were used to study the link between social media sentiment and excess returns. (report)
- Business & Information Systems Engineering (2025): 80 million X posts supplied by Stockpulse were used to show that finfluencer sentiment predicts crowd sentiment. This is relevant for quants who weight sentiment by author, which the author and influencer analytics support. (paper)
- Rug pull research (2023): social network analysis of 27 crypto rug pulls identified coordinated bot activity as a possible early indicator of scams. (paper)
Who uses it
Quantitative hedge funds in the US and UK use Stockpulse buzz and sentiment for systematic alpha generation and risk monitoring. Their use cases include automated strategies on China A-shares and social media-based intelligence for portfolio management. Exchanges including Deutsche Börse and Nasdaq use the same data for trading surveillance.
Frequently asked questions
Is the historical data point-in-time?
Yes. Data is stored as it appeared when it was collected, and the API supports point-in-time queries. Each message records both the time it was posted (msg_time) and the time Stockpulse collected it (crawling_time), so backtests can use only information that was available at the time.
Can I get the full history as files instead of API calls? Yes. Historical data packages are delivered in CSV or JSON through secure channels for research and backtesting.
How do I map my universe to Stockpulse instruments?
Use the /v6/inventory endpoint. It resolves more than one million identifiers, including ISINs, CUSIPs, RICs and tickers.
Does it cover assets other than equities? Yes: 10,000+ cryptocurrencies, 25 major commodities, around 40 FX pairs, indices and ETFs.
Where is the data hosted? On Stockpulse’s own infrastructure in Germany and Finland, inside the EU.
Contact: info@stockpulse.ai · www.stockpulse.ai · API docs: https://docs.stockpulse.de/v6/
Empower
Investment Decisions
with Social Monitoring
Gain real-time market insights with social monitoring and enhance your investment strategy today. Contact us to learn more!