Bourse API
Congress trades, insider trades, 13F and 13D/13G filings, lobbying, government contracts, analyst ratings, WallStreetBets, short volume, technical signals, strategies, macro and news as clean JSON. One key, 38 endpoints, free to start.
Getting set up
- Get a key. Sign in to Bourse (web or Android) and open Settings → API key → Generate key. Copy it right away: for security we only show it once.
- Send it with every request in the
Authorization: Bearer bk_…header (orX-API-Key). - Call an endpoint. All endpoints are
GET https://api.bourse.pl/v1/<dataset>and return JSON.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insiders?ticker=NVDA&code=P&limit=20"
Python
import os, requests
r = requests.get(
"https://api.bourse.pl/v1/congress",
headers={"Authorization": f"Bearer {os.environ['BOURSE_KEY']}"},
params={"ticker": "NVDA", "from": "2026-01-01", "limit": 100},
timeout=30,
)
r.raise_for_status()
for t in r.json()["data"]:
print(t["transaction_date"], t["member"], t["transaction_type"], t["amount_range"])
JavaScript
const r = await fetch("https://api.bourse.pl/v1/funds13f?fund=berkshire&limit=50", {
headers: { Authorization: `Bearer ${process.env.BOURSE_KEY}` },
});
const { data } = await r.json();
console.table(data);
Common parameters
| Parameter | Meaning |
|---|---|
limit | Rows per request, 1–1000 (default 100) |
offset | Skip rows for paging (default 0) |
from, to | Date range, YYYY-MM-DD (on the dataset's main date) |
Responses look like {"dataset": "...", "count": 20, "total_estimate": 1534, "limit": 20, "offset": 0, "data": [...]}. Newest records come first.
One ticker, everything
GET https://api.bourse.pl/v1/ticker/{SYMBOL} returns every dataset for one company in a single request (counts as one request): Congress and insider trades, 13D/13G stakes, lobbying, contracts, analyst consensus and rating changes, earnings, dividends, WallStreetBets mentions, short volume, technical signals and the latest quote.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/ticker/NVDA"
All endpoints (38)
24 raw datasets you can filter and page through, 13 analytics endpoints computed on request (rankings, clusters, fund changes, live prices) and the one-call ticker profile above. GET https://api.bourse.pl/v1 returns this list as JSON.
Analytics (13)
| Endpoint | What it returns | Parameters |
|---|---|---|
/v1/sectors | Daily performance of the 11 S&P 500 sectors (Select Sector SPDR ETFs), best to worst. | – |
/v1/movers | Biggest gainers and losers today among 700+ tracked instruments. | type, country, limit |
/v1/tickers | Search the instruments Bourse covers by symbol or name. | q, type, country, limit |
/v1/insider-clusters | Companies where several different insiders bought shares on the open market (Form 4 code P) in a window. | days (default 30), min_insiders (default 3), limit |
/v1/insider-top | Stocks with the largest total insider open-market buying (or selling with side=sell) in a window. | days, side, limit |
/v1/congress-top | Stocks most bought (or sold with side=sell) by members of Congress in a window, by number of trades and members. | days, side, limit |
/v1/congress-members | Members of Congress ranked by trading activity: trades, buys, sells, last trade, most traded tickers. | days (default 365), party, chamber, limit |
/v1/fund-changes | Quarter-over-quarter changes in one 13F filer: new, added, trimmed and exited positions. | fund (required) |
/v1/fund-holders | Which 13F funds hold a company, from each fund's latest filing, by position value. | company (required), limit |
/v1/prices | Daily closing prices for up to 10 symbols (cached series, live fallback). | symbols (required, comma-separated), range: 6m,1y,2y,5y,10y,max, from, to |
/v1/candles | OHLCV candles for one symbol. | symbol (required), interval: 5m,15m,1h,4h,1d,1wk |
/v1/fundamentals | Fundamentals from SEC filings for a U.S. company: revenue, earnings, margins, debt, valuation ratios, history. | symbol (required) |
/v1/fx-nbp | Official National Bank of Poland exchange rates (table A) for up to 4 currencies over a date range. | currencies (required, e.g. USD,EUR), from (required), to (required) |
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insider-clusters?days=30&min_insiders=3"
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/fund-changes?fund=berkshire"
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/congress-top?days=90&side=buy"
Datasets (24)
| Endpoint | What it is |
|---|---|
/v1/congressWashington | Stock trades disclosed by members of the U.S. Congress (STOCK Act periodic transaction reports), with price at trade and performance since. |
/v1/lobbyingWashington | Federal lobbying disclosures (Lobbying Disclosure Act reports) matched to public companies. |
/v1/contractsWashington | U.S. federal government contract awards (USAspending) matched to public companies. |
/v1/insidersInsiders & institutions | Insider transactions from SEC Form 4 (code P = open-market purchase, S = sale), with 1-day and 1-month returns after the trade. |
/v1/funds13fInsiders & institutions | Holdings of large investment managers from SEC Form 13F filings. |
/v1/whalesInsiders & institutions | Large-stake filings (SEC Schedule 13D and 13G): who crossed 5% ownership in a company. |
/v1/analystsWall Street | Wall Street analyst consensus: price targets, rating distribution and number of analysts. |
/v1/ratingsWall Street | Analyst upgrades, downgrades and initiations by brokerage firm. |
/v1/earningsWall Street | Upcoming earnings report dates with EPS estimates. |
/v1/dividendsWall Street | Dividends: annual amount, yield, payout ratio, ex-dividend and payment dates. |
/v1/wsbRetail & market | Most-discussed tickers on Reddit r/wallstreetbets: rank, mentions and change over 24 hours. |
/v1/shortvolumeRetail & market | Daily off-exchange short sale volume (FINRA Reg SHO). |
/v1/signalsRetail & market | Technical snapshot for 700+ instruments: RSI, MACD, moving averages, 52-week range, momentum, volatility and active signals (golden cross, breakouts...). |
/v1/quotesRetail & market | Latest quotes for indices, sector ETFs, stocks, currencies, commodities and crypto tracked by Bourse. |
/v1/strategiesStrategies, macro & news | Backtested Bourse strategies (Congress, insiders, lobbying, contracts, WSB, analysts, funds): return, Sharpe, drawdown. Add id=... to get the equity curve. |
/v1/economicStrategies, macro & news | Economic calendar: central bank decisions, inflation, jobs and GDP releases for the U.S., euro area and Poland. |
/v1/macroStrategies, macro & news | Macro indicators (inflation, rates, unemployment, GDP, PMI...) for the U.S., euro area and Poland, with history. |
/v1/newsStrategies, macro & news | Market news headlines from financial publishers, categorised (macro, markets, companies, crypto, commodities, central banks). |
/v1/briefStrategies, macro & news | The Bourse AI daily market brief (Premium keys only). (Premium keys only.) |
/v1/stock-movesStrategies, macro & news | "Why is it moving today?" explanations: the news and filings behind a stock's daily move, with sources. |
/v1/strategy-holdingsStrategies, macro & news | Current holdings and trade history of each backtested Bourse strategy (use id from /v1/strategies). |
/v1/espiPoland | Current reports (ESPI) of companies listed on the Warsaw Stock Exchange, with an AI summary. |
/v1/cpi-plPoland | Polish CPI inflation year over year by month (GUS), including flash estimates. |
/v1/deposits-plPoland | Best savings and deposit offers from Polish banks, verified by Bourse. |
GET https://api.bourse.pl/v1/congress
Stock trades disclosed by members of the U.S. Congress (STOCK Act periodic transaction reports), with price at trade and performance since.
Filters: ticker, member, chamber, party, type, from, to, limit, offset
Fields: member, chamber, party, ticker, asset, transaction_type, amount_range, transaction_date, disclosure_date, est_price, recent_price, perf_pct, source_url
GET https://api.bourse.pl/v1/lobbying
Federal lobbying disclosures (Lobbying Disclosure Act reports) matched to public companies.
Filters: ticker, client, registrant, quarter, from, to, limit, offset
Fields: id, ticker, client, registrant, amount, year, quarter, date, issues, description, url
GET https://api.bourse.pl/v1/contracts
U.S. federal government contract awards (USAspending) matched to public companies.
Filters: ticker, agency, recipient, from, to, limit, offset
Fields: id, ticker, recipient, amount, agency, sub_agency, date, description, url
GET https://api.bourse.pl/v1/insiders
Insider transactions from SEC Form 4 (code P = open-market purchase, S = sale), with 1-day and 1-month returns after the trade.
Filters: ticker, insider, title, code, from, to, limit, offset
Fields: ticker, company_name, insider_name, insider_title, is_officer, transaction_code, shares_amount, price_per_share, total_value, shares_owned_after, transaction_date, return_1d, return_1m
GET https://api.bourse.pl/v1/funds13f
Holdings of large investment managers from SEC Form 13F filings.
Filters: fund, company, from, to, limit, offset
Fields: fund, company, value_usd, shares, filing_date
GET https://api.bourse.pl/v1/whales
Large-stake filings (SEC Schedule 13D and 13G): who crossed 5% ownership in a company.
Filters: ticker, investor, form, from, to, limit, offset
Fields: id, date, form, company, company_cik, ticker, investor, investor_cik, url
GET https://api.bourse.pl/v1/analysts
Wall Street analyst consensus: price targets, rating distribution and number of analysts.
Filters: ticker, rating, limit, offset
Fields: symbol, name, price, target_mean, target_median, target_high, target_low, analysts, rating_mean, rating, strong_buy, buy, hold, sell, strong_sell, updated_at
GET https://api.bourse.pl/v1/ratings
Analyst upgrades, downgrades and initiations by brokerage firm.
Filters: ticker, firm, action, from, to, limit, offset
Fields: symbol, name, firm, from_grade, to_grade, action, date
GET https://api.bourse.pl/v1/earnings
Upcoming earnings report dates with EPS estimates.
Filters: ticker, from, to, limit, offset
Fields: symbol, name, report_date, eps_estimate, currency
GET https://api.bourse.pl/v1/dividends
Dividends: annual amount, yield, payout ratio, ex-dividend and payment dates.
Filters: ticker, from, to, limit, offset
Fields: symbol, name, price, annual_amount, yield_pct, ex_date, pay_date, payout_pct, currency, updated_at
GET https://api.bourse.pl/v1/wsb
Most-discussed tickers on Reddit r/wallstreetbets: rank, mentions and change over 24 hours.
Filters: ticker, from, to, limit, offset
Fields: date, ticker, name, rank, mentions, upvotes, rank_24h_ago, mentions_24h_ago
GET https://api.bourse.pl/v1/shortvolume
Daily off-exchange short sale volume (FINRA Reg SHO).
Filters: ticker, from, to, limit, offset
Fields: date, symbol, short_volume, short_exempt_volume, total_volume
GET https://api.bourse.pl/v1/signals
Technical snapshot for 700+ instruments: RSI, MACD, moving averages, 52-week range, momentum, volatility and active signals (golden cross, breakouts...).
Filters: ticker, sector, country, sentiment, type, limit, offset
Fields: symbol, name, type, country, sector, price, rsi14, macd_hist, sma20, sma50, sma200, bb_pctb, high_52w, low_52w, from_high_52w_pct, from_low_52w_pct, mom_1m, mom_3m, mom_6m, mom_12m, mom_12_1, chg_1d, chg_5d, volatility_30d, relative_volume, sentiment, signals, updated_at
GET https://api.bourse.pl/v1/quotes
Latest quotes for indices, sector ETFs, stocks, currencies, commodities and crypto tracked by Bourse.
Filters: ticker, category, limit, offset
Fields: symbol, name, price, change_pct, category, updated_at
GET https://api.bourse.pl/v1/strategies
Backtested Bourse strategies (Congress, insiders, lobbying, contracts, WSB, analysts, funds): return, Sharpe, drawdown. Add id=... to get the equity curve.
Filters: id, category, limit, offset
Fields: id, category, stats, since, positions, updated_at
GET https://api.bourse.pl/v1/economic
Economic calendar: central bank decisions, inflation, jobs and GDP releases for the U.S., euro area and Poland.
Filters: region, importance, category, from, to, limit, offset
Fields: date, time, name, region, category, importance, description
GET https://api.bourse.pl/v1/macro
Macro indicators (inflation, rates, unemployment, GDP, PMI...) for the U.S., euro area and Poland, with history.
Filters: region, code, group, limit, offset
Fields: code, region, group, name, unit, value, previous, date, previous_date, history, source
GET https://api.bourse.pl/v1/news
Market news headlines from financial publishers, categorised (macro, markets, companies, crypto, commodities, central banks).
Filters: q, source, category, from, to, limit, offset
Fields: title, summary, source, url, image, category, published_at
GET https://api.bourse.pl/v1/brief
The Bourse AI daily market brief (Premium keys only). (Premium keys only.)
Filters: from, to, limit, offset
Fields: date, headline, content, key_events
GET https://api.bourse.pl/v1/stock-moves
"Why is it moving today?" explanations: the news and filings behind a stock's daily move, with sources.
Filters: ticker, language, from, to, limit, offset
Fields: symbol, day, language, explanation
GET https://api.bourse.pl/v1/strategy-holdings
Current holdings and trade history of each backtested Bourse strategy (use id from /v1/strategies).
Filters: id, limit, offset
Fields: id, holdings, trades, updated_at
GET https://api.bourse.pl/v1/espi
Current reports (ESPI) of companies listed on the Warsaw Stock Exchange, with an AI summary.
Filters: company, q, from, to, limit, offset
Fields: company, title, summary_ai, published_at
GET https://api.bourse.pl/v1/cpi-pl
Polish CPI inflation year over year by month (GUS), including flash estimates.
Filters: from, to, limit, offset
Fields: month, yoy_pct, flash, source
GET https://api.bourse.pl/v1/deposits-pl
Best savings and deposit offers from Polish banks, verified by Bourse.
Filters: bank, limit, offset
Fields: bank, product, rate_pct, months, min_amount, max_amount, apr_pct, fee_pct, conditions, url, verified_on
Limits and plans
| Plan | Requests per day | Per minute |
|---|---|---|
| Free account | 1,000 | 60 |
| Bourse Premium | 20,000 | 60 |
Over the limit you get HTTP 429. Errors come as {"error": {"code": "...", "message": "..."}} with codes such as missing_api_key, invalid_api_key, unknown_dataset, bad_date, rate_limited and daily_limit.
Terms
The data comes from public U.S. government sources (SEC EDGAR, House and Senate disclosures, Senate LDA, USAspending). Please credit Bourse (bourse.pl) when you publish it. Disclosures can arrive weeks after a trade, so this is not real-time trading data and not investment advice. Need higher limits or bulk history? Email bourse.official@gmail.com.
See these filings as they land
Bourse collects Congress trades, SEC Form 4 insider filings and 13F fund holdings in one live feed, and flags insider buying clusters automatically. Free to start.