Capitol GainsCongressional Trading Intelligence

Developer docs

Programmatic access to Capitol Gains' scoring data. Connect tier gets webhooks. API tier gets full REST access.

Authentication

Every request needs a bearer token with your API key.

curl https://capitol-gains-web-navy.vercel.app/api/v1/politicians \
  -H "Authorization: Bearer cg_live_xxxxxxxxxxxxxxxxxxxx"

Endpoints

GET /api/v1/politicians

All scored politicians with luck scores and Interest Points. Params: limit, offset.

GET /api/v1/trades

Individual disclosed trades. Params: limit, offset, politician, ticker.

GET /api/v1/scores

Conviction Scores per trade, with the full feature vector. Params: limit, offset, min_score.

GET /api/v1/proof

Backtest summary stats by Conviction Score bucket (avg return, win rate). For chart-ready equity curve data, use the web page at /proof.

{
  "data": [ { "name": "...", "market_luck": 87, "capitol_luck": 92, ... } ],
  "pagination": { "limit": 100, "offset": 0, "count": 100 },
  "rate_limit": { "remaining_today": 947 }
}

Rate limit: 1000 requests/day per key. Every response includes your remaining quota.

Webhooks (Connect tier)

Set a webhook URL on any alert at /alerts and we'll POST matching filings to it once a day, alongside (or instead of) the email digest. We emit data — what you connect it to is your business. We never integrate directly with any brokerage.

Using Zapier or Make: create a “Catch Hook” trigger (Zapier) or a webhook module (Make), copy the URL it gives you, and paste it as your webhook URL in the alert config. No code needed — from there you can route the event anywhere either platform supports.

Event payload
{
  "alert_label": "High signal tech",
  "matched_at": "2026-08-17T13:00:00Z",
  "filings": [
    {
      "politician_name": "Jane Example",
      "ticker": "NVDA",
      "transaction_type": "purchase",
      "transaction_date": "2026-08-15",
      "conviction_score": 12.4,
      "tier": "Convicted"
    }
  ]
}

If you set a webhook secret, we sign the payload with it as an X-CG-Signature header (HMAC-SHA256 of the raw body) so you can verify requests actually came from us.