Deep History
An average of 10 years of history across the core datasets — enough to train models and test strategies through different market regimes, not just the latest one.


Research-grade alternative data with full history. Build with the API, plug it into your LLMs, or explore it in the Terminal — all from one platform.
Delivering alternative data to traders and researchers since 2018
Research-grade data with full history, normalized and ticker-mapped across every dataset. Deep historical granularity for backtesting and model training, production-clean for live systems.
Congressional Trades
US House and Senate member trading activity. Disclosure-based signals from STOCK Act filings.
Corporate Lobbying
Federal lobbying disclosures. Track corporate influence and regulatory exposure.
Government Contracts
Federal contract awards mapped to tickers. Revenue signals from government spending.
Patent Filings
Track granted patents by ticker. A structured signal of innovation and R&D output.
Insider Transactions
Daily SEC Form 4 filings. Track executive purchases, sales, and option exercises.
News Sentiment
AI-powered sentiment scores from financial news. Gauge market mood and momentum.
LinkedIn Metrics
Track employee counts and follower growth. Early indicators of company trajectory.
App Store Ratings
Mobile app performance data from iOS and Android stores. User sentiment signals.
Reddit Mentions
Track ticker mentions across Reddit communities like WallStreetBets and r/stocks.
Price Forecasts
Daily and monthly price forecasts with confidence intervals from time-series models.
Analyst Ratings
Track analyst upgrades, downgrades, and price target changes from major institutions.
Put/Call Ratios
Options market sentiment data. Monitor put/call ratios and options flow signals.
The qualities that make alternative data actually usable: deep history, broad coverage, granular records, and clean, ticker-mapped delivery.
Deep History
An average of 10 years of history across the core datasets — enough to train models and test strategies through different market regimes, not just the latest one.
Full US Universe
Alternative data across 12,000+ US stocks and ETFs — the full listed universe, not just the S&P 500 — with price forecasts extending to 20 global markets.
Granular Detail
Not just daily aggregates: individual insider filings, congressional trades, lobbying disclosures, and contract awards — drill down to the single transaction.
Normalized and Comparable
Consistent, clean tabular formats across every dataset, with normalized scores — so values compare across tickers and over time.
Mapped to Tradable Tickers
News, lobbying filings, contracts, and app data are matched to the right ticker before you ever see them — the messy entity-matching is already done.
Clean and Research-Ready
Filing datasets are collected directly from the official disclosure systems, and every series is screened daily for errors, duplicates, and gaps — minutes from API key to analysis.
Scraped PDFs, Form 4 XML, a quarterly registry and a weekly bulk archive, each on its own clock and its own time anchor. Every dataset has its own pipeline, running the same five stages, landing in the same schema.
Sources
Congressional Trading
House Clerk · Senate eFD
PDF and HTML filings, scraped — no bulk API exists
Insider Transactions
SEC EDGAR
Form 4 XML
Corporate Lobbying
Senate LDA registry
Official REST API
Government Contracts
USAspending.gov
Public API, records upsert by award ID
Patent Filings
USPTO Open Data
Weekly grant XML plus a deep-history archive
Pipelines
Each dataset runs its own pipeline, built for the source it collects from. Every one of them runs the same five stages.
Collect & archive
First-party from each source. The original filing is kept as the provenance record.
Extract
Free text, XML and scanned filings are parsed into one structured shape.
Map to a security
Registrants, awardees and assignees are resolved to a US-listed ticker. SEC and government datasets also carry the issuer CIK.
Normalize
Amounts to their statutory brackets with the as-filed string preserved, dates to ISO, and anything unreadable delivered flagged rather than dropped.
Dedupe & verify
Amendments and restatements collapse to one row per real event, checked against the collection archive.
Delivery
One schema. The same ticker keys throughout.
One integration for your engineering team. Build trading systems, research platforms, and client-facing applications in days.
A single REST API with full historical data and consistent schema across all datasets. One integration covers everything — no vendor patchwork, no missing history.
pip install finbrain-python for rapid prototyping and production usefrom finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
# Get price forecastspredictions = fb.predictions.ticker("AAPL", as_dataframe=True)
# Get insider trading datainsider = fb.insider_transactions.ticker("AAPL", as_dataframe=True)
# Get news sentimentsentiment = fb.sentiments.ticker("NVDA", as_dataframe=True)# Get price forecastscurl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.finbrain.tech/v2/predictions/daily/AAPL"
# Get insider transactionscurl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.finbrain.tech/v2/insider-trading/AAPL"
# Get sentiment datacurl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.finbrain.tech/v2/sentiment/NVDA"const headers = { "Authorization": "Bearer YOUR_API_KEY" };const BASE = "https://api.finbrain.tech/v2";
const predictions = await fetch( `${BASE}/predictions/daily/AAPL`, { headers }).then(res => res.json());
const insider = await fetch( `${BASE}/insider-trading/AAPL`, { headers }).then(res => res.json());#include <curl/curl.h>#include <nlohmann/json.hpp>
json get_predictions(const std::string& symbol, const std::string& api_key) { CURL* curl = curl_easy_init(); std::string response, url = "https://api.finbrain.tech/v2/predictions/daily/" + symbol; std::string auth = "Authorization: Bearer " + api_key; struct curl_slist* hdrs = curl_slist_append(nullptr, auth.c_str());
curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, hdrs); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); curl_easy_perform(curl); curl_slist_free_all(hdrs); curl_easy_cleanup(curl); return json::parse(response);}use reqwest::blocking::Client;use reqwest::header::{AUTHORIZATION, HeaderValue};
fn get_predictions(symbol: &str, api_key: &str) -> Result<serde_json::Value, reqwest::Error> { let url = format!( "https://api.finbrain.tech/v2/predictions/daily/{}", symbol ); Client::new().get(&url) .header(AUTHORIZATION, HeaderValue::from_str( &format!("Bearer {}", api_key)).unwrap()) .send()?.json()}Give analysts and portfolio managers the same datasets through a visual interface — no engineering required.
Give your team's AI assistants direct access to FinBrain data. Accelerate research workflows across the organization.
Use the Model Context Protocol (MCP) to connect FinBrain data to Claude, ChatGPT, and custom LLM applications. Multiply analyst productivity.
pip install finbrain-mcp and add your configAnalyst asks
Any congressional buying in AAPL before April 2024?
Tool call
house_trades_by_ticker(symbol="AAPL")
8 rows returned
date · disclosureDate · politician · owner · transactionType · amount · amountFlag
Answer
4 purchases to 4 sales across 6 members. Half in spouse or dependent-child accounts. Disclosure lag 0 to 42 days, median 26.
Example exchange. Every figure is computed from the returned rows, not written by the model.
Teams across the investment landscape build on the same rows — each through the access that fits how they work. Pick a team to see what they touch.
Add alternative signals to your research pipeline in days, not months. Full history for backtesting, clean daily delivery for production strategies.
Python SDK
client.house_trades.ticker("AAPL")
A DataFrame, ready to join to your factor set.
| date | disclosureDate | politician | owner | transactionType | amount | lag | |
|---|---|---|---|---|---|---|---|
| 0 | 2024-01-10 | 2024-02-05 | Rohit Khanna | SP | Purchase | $1,001 - $15,000 | 26d |
| 1 | 2024-01-10 | 2024-02-05 | Rohit Khanna | DC | Purchase | $1,001 - $15,000 | 26d |
| 2 | 2024-01-18 | 2024-02-15 | Josh Gottheimer | JT | Sale (Partial) | $1,001 - $15,000 | 28d |
| 3 | 2024-01-19 | 2024-01-24 | Blake Moore | SELF | Sale | $15,001 - $50,000 | 5d |
| 4 | 2024-02-29 | 2024-02-29 | Pete Sessions | SP | Purchase | $360review | 0d |
| 5 | 2024-03-13 | 2024-04-24 | Jonathan Jackson | JT | Sale | $15,001 - $50,000 | 42d |
| 6 | 2024-04-23 | 2024-05-06 | Rohit Khanna | SP | Purchase | $1,001 - $15,000 | 13d |
| 7 | 2024-05-09 | 2024-06-13 | Michael T. McCaul | SP | Sale | $15,001 - $50,000 | 35d |
8 of 275 AAPL rows. SP spouse, DC dependent child, JT joint — rows 0 and 1 are the same trade in two accounts, not a duplicate.
Offer your users 12 new datasets through a single integration. Redistribution and client-facing display rights come with the enterprise agreement.
REST API
GET /v2/congress/house/AAPL
The same field names across all 12 datasets.
{ "trades": [ { "date": "2024-01-10", "politician": "Rohit Khanna", "owner": "SP", "transactionType": "Purchase", "amount": "$1,001 - $15,000", "amountFlag": null, "disclosureDate": "2024-02-05" }, { "date": "2024-02-29", "politician": "Pete Sessions", "owner": "SP", "transactionType": "Purchase", "amount": "$360", "amountFlag": "review", "disclosureDate": "2024-02-29" }, // … 273 more AAPL rows ] }
amountFlag ships as "review" where a filed amount could not be read as a statutory bracket. Flagged, never silently dropped.
Track competitor hiring, lobbying, government contracts, and market sentiment — through the Terminal or your team's AI assistants, no engineering needed.
MCP
ask your assistant
No engineering. The data reaches the analyst directly.
“What did Congress do in AAPL through H1 2024?”
Across 275 disclosed AAPL trades, the eight in this window split 4 purchases to 4 sales across 6 members. Half sat in spouse or dependent-child accounts. Disclosure lag ran from same day to 42 days, median 26.
Example exchange. Every figure is computed from the rows in the other two tabs.
Enterprise data licensing for funds, platforms, and research teams — plus self-serve plans for professionals.
Visual alternative data platform for traders and researchers.
For funds, platforms, and teams with custom requirements.
Common questions about integration, coverage, and enterprise plans.
Questions about API access and setup.
What data is available and how often it updates.
Subscription plans and support options.
Tell us about your team and use case. We review every inquiry and reply by email — typically within one business day.
Our team will review it and reach out by email shortly to set up a discovery call.