--- name: capitoltrades-cli description: Use cli-web-capitoltrades to query US congressional stock trades, politicians, issuers, and insight articles from capitoltrades.com. Invoke this skill whenever the user asks about congressional trading, senator/representative stock trades, STOCK Act filings, insider trades by politicians, specific tickers (e.g. "what did Pelosi buy"), or US Capitol Trades data. Always prefer cli-web-capitoltrades over manually fetching the website — no auth is required and the CLI returns structured JSON. --- # cli-web-capitoltrades Browse US congressional stock trades tracked on capitoltrades.com (by 2iQ Research). Installed at: `cli-web-capitoltrades`. The site is a fully public data aggregator covering STOCK Act disclosures: ~35,000 trades, ~200 politicians, ~3,000 issuers. No authentication required. ## Quick Start ```bash # Latest trades across Congress cli-web-capitoltrades --json trades list --page-size 20 # Trades by a specific politician (bioguide ID) cli-web-capitoltrades --json trades list --politician P000197 # Trades for a ticker (auto-resolves via BFF) cli-web-capitoltrades --json trades by-ticker NVDA --page-size 20 # Only large-size trades ($1M-$5M) cli-web-capitoltrades --json trades list --size 1M-5M # Top politicians by trade volume cli-web-capitoltrades --json politicians top --by volume --page-size 10 # Aggregate stats (total trades, volume, politicians) cli-web-capitoltrades --json trades stats # Rich issuer data (sector, market cap, 1-year price history, #politicians holding) cli-web-capitoltrades --json issuers search nvidia ``` Always pass `--json` when parsing output programmatically. --- ## Commands ### `trades list` List trades, paginated and filterable. ```bash cli-web-capitoltrades trades list [options] --json ``` **Key options:** - `--page N` / `--page-size N` — pagination (default 1, 12) - `--politician ` — e.g. `P000197` (Pelosi) - `--issuer ` — e.g. `429725` (Amgen) - `--party republican|democrat|independent` - `--chamber house|senate` - `--tx-type buy|sell|exchange` - `--sector ` (e.g. `health-care`, `information-technology`) - `--size ` — one of `<1K`, `1K-15K`, `15K-50K`, `50K-100K`, `100K-250K`, `250K-500K`, `500K-1M`, `1M-5M`, `5M-25M`, `25M-50M` - `--sort traded|pubDate|filedAfter|tradeSize` — sort column - `--sort-direction asc|desc` (default `desc`) **Output fields:** `trade_id`, `politician_id`, `politician_name`, `politician_party`, `politician_chamber`, `politician_state`, `issuer_id`, `issuer_name`, `ticker`, `tx_type`, `size`, `price`, `traded`, `published`, `filed_after_days`, `owner`. ### `trades get ` Get full detail for a single trade (adds `price`, `shares`, `filing_url`, `comment`, `reporting_gap`). ### `trades by-ticker ` Convenience: resolve a ticker (e.g. `NVDA`, `AMGN`) via BFF search, then list trades for that issuer. Accepts `--party`, `--tx-type`, `--page`, `--page-size`. Returned `meta.resolved_issuer` includes name, ticker, sector, issuer_id. ### `trades stats` Overview stats from the `/trades` landing page. Returns `trades`, `filings`, `volume`, `politicians`, `issuers`. ### `politicians list` List politicians with filters. **Key options:** `--party republican|democrat|independent`, `--chamber house|senate`, `--state `. **Output fields:** `politician_id` (bioguide), `name`, `party`, `state`, `trades_count`, `issuers_count`, `volume`, `last_traded`. ### `politicians top` Leaderboard of politicians ranked by recent activity. **Key options:** `--by trades|volume` (default `trades`), `--page-size N`, `--party`, `--chamber`. ### `politicians get ` Politician detail + recent trades table. Example: `cli-web-capitoltrades politicians get Y000067`. ### `issuers list` List issuers (companies, funds, treasuries). Output: `issuer_id`, `name`, `ticker`. ### `issuers get ` Issuer detail + recent trades. Example: `cli-web-capitoltrades issuers get 435544` (US Treasury Bills). ### `issuers search ` **Richest endpoint.** Uses the BFF JSON API — returns sector, market cap, 1-year price history (`performance.eodPrices`), trailing returns, and `stats.countPoliticians` / `countTrades` / `volume` / `dateFirstTraded`. Use `--full` to include the full `eodPrices` array. ### `articles list` / `articles get ` List or view insight articles. Slug format: `kebab-title-YYYY-MM-DD`. ### `buzz list` / `buzz get ` Third-party news snippets curated by Capitol Trades (Twitter, external articles about companies and politicians). Same slug format as articles. ### `press list` / `press get ` Press coverage about Capitol Trades data and congressional trading news (articles published by external publications like CNN, Forbes, Politico). --- ## Agent Patterns ```bash # Find all buys of NVIDIA this year by Republicans cli-web-capitoltrades --json issuers search nvidia | \ python -c "import json, sys; d=json.load(sys.stdin); print(d['data'][0]['_issuerId'])" # → take the issuer_id, then: cli-web-capitoltrades --json trades list --issuer 433382 --party republican --tx-type buy --page-size 50 # Summary of a politician's most active tickers cli-web-capitoltrades --json politicians get P000197 | \ python -c "import json, sys, collections; d=json.load(sys.stdin); \ trades=d['data']['recent_trades']; \ print(collections.Counter(t['ticker'] for t in trades).most_common(5))" # Today's biggest trades cli-web-capitoltrades --json trades list --page-size 50 | \ python -c "import json, sys; d=json.load(sys.stdin); \ for t in d['data'][:10]: print(f\"{t['traded']} {t['tx_type']:<5} {t['politician_name']:<25} {t['ticker']:<10} {t['size']}\")" ``` --- ## Data Model Notes - **Bioguide IDs** (`politician_id`): 7 chars, `[A-Z]\d{6}`, the same ID used by bioguide.congress.gov - **Issuer IDs**: numeric strings assigned by 2iQ Research - **Trade IDs**: 11-digit numeric strings - **Trade sizes** are ranges (`1K–15K`, `15K–50K`, `50K–100K`, `100K–250K`, `250K–500K`, `500K–1M`, `1M–5M`, `5M–25M`, `25M–50M`, `>50M`) — the STOCK Act only requires range disclosure, not exact amounts - **`owner`** = `Self`, `Spouse`, `Child`, `Joint`, `Undisclosed`, `Dependent`, etc. - **`filed_after_days`** = days between trade and disclosure (45 days = late, per STOCK Act) ## Notes - **Auth:** None — fully public site - **Rate limits:** Site is served via AWS CloudFront; the CLI uses `curl_cffi` with Chrome 136 TLS fingerprinting, which is what makes the BFF accessible. No observed rate limits in normal use. - **Freshness:** Data is typically <24h behind actual filings. Politician disclosures may lag up to 45 days (legal requirement) after the trade date. - **Exit codes:** 0 success, 1 user error (not found / invalid arg), 2 system error (network / 5xx). - **BFF quirks:** Only `/issuers?search=...` is exposed publicly. Other endpoints on bff.capitoltrades.com return 503. ## Known limitations - **No full politician search** in the BFF — use `politicians list` with filters, or browse the paginated list. - **No trades search by ticker directly** — search the issuer by ticker first, take its `_issuerId`, then filter trades by `--issuer `. - Reading large result sets (`--page-size 100`) may take a few seconds per page (HTML scraping).