100 requests/day free — no account or API key required. Upgrade to Pro for webhooks and higher limits.
curl https://congressinfor-production.up.railway.app/trades/NVDA
curl "https://congressinfor-production.up.railway.app/trades/recent?limit=25&days=30"
curl -H "X-Api-Key: YOUR_KEY" \
"https://congressinfor-production.up.railway.app/trades/recent?limit=500"
Get notified within hours of a new filing — no polling required.
1. Subscribe to a ticker or politician
curl -X POST https://congressinfor-production.up.railway.app/webhooks/subscribe \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"webhook_url": "https://your-server.com/hook", "ticker": "NVDA", "events": ["any"]}'
2. Handle the payload on your server
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/hook", methods=["POST"])
def hook():
trade = request.get_json()
print(f"🔔 {trade['politician']} {trade['trade_type']} {trade['ticker']} — {trade['amount']}")
return jsonify({"ok": True})
Payload delivered to your URL
{
"event": "new_trade",
"ticker": "NVDA",
"politician": "Nancy Pelosi",
"trade_type": "Purchase",
"amount": "$1,000,001 - $5,000,000",
"filing_date": "2026-05-30",
"transaction_date": "2026-05-15",
"source": "House",
"api_url": "https://congressinfor-production.up.railway.app/trades/NVDA"
}More examples in the congressinvests-api SDK repo ↗ · Full webhook API docs ↗