Developer API
Read-only JSON endpoints. CORS-enabled. Cached 10 minutes at the CDN. Anonymous access works without a key at the free-tier limits below; attach a Bearer key (generate one at /account/api) to lift rate limits and row caps to match your subscription plan.
Authentication
Optional. Send your key as a Bearer token:
Authorization: Bearer ins_live_XXXXXXXXXXXXXXXXXXXXXX
Generate and revoke keys from /account/api. Keys inherit the owning account's plan — upgrading from Hobby to Pro lifts existing keys without rotation. Keys are hashed at rest; we can never show you a lost key and will only let you regenerate.
Endpoints
Leaderboard
Anonymous callers get the top 5 rows; Hobby keys extend this to 100, Pro to 1,000, Team to 5,000. The limitquery param is clamped to your tier's row cap — it won't error, just return up to your maximum.
GET /api/v1/leaderboard?sort=win_rate&limit=5
GET /api/v1/leaderboard?sort=active&limit=500 # needs a Pro key
Response:
{
"sort": "win_rate",
"rows": [
{
"insider_id": "klaus-muller__sap-se",
"insider_name": "Klaus Müller",
"most_recent_company": "SAP SE",
"most_recent_role": "CFO",
"win_rate_3m": 0.78,
"avg_return_3m": 0.12,
"buys_with_price_data": 7,
"last_buy_at": "2026-03-14"
}
]
}Insider profile
GET /api/v1/insider/{id}
Response:
{
"insider": {
"id": "klaus-muller__sap-se",
"name": "Klaus Müller",
"role": "CFO",
"country": "DE",
"companies": ["SAP SE"]
},
"stats": {
"total_filings": 12,
"buys": 8,
"sells": 4,
"total_buy_eur": 5420000,
"total_sell_eur": 1800000,
"net_flow_eur": 3620000
},
"filings": [
{
"id": "...",
"date": "2026-03-14",
"type": "buy",
"company": "SAP SE",
"isin": "DE0007164600",
"shares": 1500,
"price": 148.20,
"value_eur": 222300,
"exchange": "XETRA"
}
]
}Company profile
GET /api/v1/company/{isin}
Response: same shape as insider, but stats include distinct_insiders count.Recent buys (Atom)
GET /feed.xml Standard Atom 1.0 feed. Works in any RSS reader.
Service health
GET /api/health Returns 200 if green, 503 if the last scrape is > 36h old or failed. Point your uptime monitor (UptimeRobot, BetterStack) at this URL.
Rate limits
| Tier | Req / min | Max rows / response |
|---|---|---|
| Anonymous (no key) | 30 | 5 |
| Hobby (€9 / mo) | 120 | 100 |
| Pro (€29 / mo) | 600 | 1,000 |
| Team | 3,000 | 5,000 |
- Anonymous limits are per IP; keyed limits are per key.
- 429 responses include a
Retry-Afterheader. - Every response echoes your active tier in the
tierfield.
Stability
The v1 prefix is a soft promise of compatibility. Additive changes (new fields, new endpoints) will not be considered breaking. Removed fields or schema changes would ship under v2.
What's not public (yet)
- Full per-insider 3m/12m forward return arrays — Pro-tier only.
- Bulk filings endpoint without filters — see Team.
- Historical leaderboard snapshots.
Team
Need limits above 3,000 req/min, a no-cache pass-through, a private feed of your competitors' insider activity, or bulk historical pulls? Those sit in the Team conversation — email george@insidereu.comwith fund size, coverage needs, and integration details and we'll reply the same day.