How to Build an Investing App with Insider and Congress Trading Data
A practical guide to adding insider trades, Congress trades and hedge fund holdings to a fintech or broker app: architecture, endpoints, caching, alerts and licensing.
Users of investing apps want to know who else is buying. Showing insider purchases, Congress trades and hedge fund positions next to a stock is one of the most requested features in fintech, and one of the hardest to build from raw SEC and congressional filings. This guide walks through a practical architecture using an API instead of scrapers.
Key takeaways
- Do not scrape EDGAR and the House Clerk yourself unless data collection is your product. Parsing, ticker matching and corrections take months.
- One per-ticker endpoint can power a whole "smart money" panel on a stock page.
- Cache aggressively; filings change slowly, so a few minutes of caching cost nothing.
- Use webhooks for alerts instead of polling.
- Get a commercial license before you show the data to paying users.
The three datasets users ask for
Insider trades (SEC Form 4). Officers, directors and 10% owners must report trades within two business days. The interesting rows are open-market purchases (transaction code P). Sales are noisier because of tax and diversification.
Congress trades (STOCK Act). Members of Congress disclose trades within 45 days. Users like seeing which politicians traded a stock and how those trades performed.
Fund holdings (Form 13F). Managers with over $100 million in U.S. equities report holdings 45 days after each quarter. It shows what Buffett, Burry or Ackman owned, with a delay.
Bourse covers all three, plus the President's and Cabinet's 278-T reports, lobbying, federal contracts, and European director dealings from Poland, Germany, France and the UK.
A simple architecture
- Stock page panel. When a user opens a ticker, your backend calls
/v1/ticker/{SYMBOL}once. It returns Congress trades, insider trades, 13F holders, CNBC calls and other datasets for that symbol. - Cache layer. Store the response for 10 to 30 minutes per ticker. Filings arrive in batches, so users will not notice.
- Feeds and screens. For "latest insider buys" or "most bought by Congress this month", use the analytics endpoints:
/v1/insider-clusters,/v1/congress-top,/v1/insider-top. - Alerts. Register a webhook. Every 5 minutes Bourse POSTs new filings to your endpoint, signed with HMAC-SHA256, and you fan them out as push notifications to users who follow those tickers.
- Backfill. For history and backtests, pull whole datasets once with bulk downloads or nightly exports instead of millions of paginated calls.
```python from bourse import Bourse
b = Bourse("bk_...") profile = b.ticker("AAPL") # one request, every dataset clusters = b.get("insider-clusters", days=30) ```
Rate limits in practice
A stock page that makes one cached call per ticker needs far fewer requests than you might think. Even so, a growing app can pass 1,000 requests a day in its first week. Plan for:
- Free key: 1,000 a day, fine for development.
- Premium: 20,000 a day, enough for a prototype with real users.
- API Pro: 250,000 a day and 600 a minute, with up to 10 keys (production, staging, partners).
Presenting the data responsibly
- Show the disclosure date next to the trade date. Congress trades can be weeks old when they become public.
- Explain amount ranges for Congress trades; they are not exact values.
- Separate open-market buys from option exercises and grants for insiders.
- Add a clear "not investment advice" line.
Licensing
Displaying third-party data to paying users is commercial use. The free and Premium plans do not include it; API Pro does, with attribution ("Data: Bourse") and a ban on reselling the raw data as your own feed. Read the API & Data License before launch.
Where to start
Get a free key in the Bourse app (Settings, API key), build the stock-page panel with /v1/ticker/{SYMBOL}, then upgrade when you go live. Documentation: bourse.pl/api.
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.
Bourse provides financial data and editorial information, parts of which are generated by AI. This page is for general education only. It is not personalised investment advice or a recommendation to buy or sell any financial instrument. Make your own decisions.