Install
openclaw skills install @thesentitrader/politicians-stock-trackerTrack congress stock trades and politician stock trades: Pelosi tracker, senate stock trades, House trades, congress trades by ticker, and STOCK Act disclosures sourced from House Clerk and Senate eFD filings. Use for congress stock trades, politician stock tracker, Pelosi stock trades, senate trading disclosures, what stocks is congress buying, STOCK Act filings by ticker. Read-only. No trading, no purchases, no write operations, no wallet access.
openclaw skills install @thesentitrader/politicians-stock-trackerTrack what the U.S. Congress is buying and selling. This skill reads congressional STOCK Act disclosures, the trades that Senators and Representatives are legally required to report, through the read-only SentiSense API: recent trades across all members, the trading history for a single stock, the most active politicians, and a full per-member profile. Amounts, chambers, parties, and the gap between when a trade happened and when it was disclosed all come straight from the official filings.
Read-only educational data interface. Output is informational context, never a personalized buy or sell recommendation.
Reach for this skill when the question is about congressional or political trading activity:
This skill pairs naturally with institutional-13f-tracker and insider-trading-tracker: cross-reference a congressional buy against institutional 13F accumulation or insider Form 4 buying on the same ticker. High-conviction reads come from convergence across sources, not from any one signal in isolation.
Do not use it for order entry, portfolio management, or personalized advice. It has no write, trading, or wallet surface; every endpoint is a GET.
amountRange string plus parsed amountMin / amountMax. Never present a single precise dollar figure.transactionDate and disclosureDate, plus disclosureDelayDays. Always state which date you are quoting.SENATE and HOUSE. Each trade also carries party, state, and owner (the trade may belong to the member, a spouse, or a dependent).SENTISENSE_API_KEY. Get one at https://app.sentisense.ai/get-api-key. Send it on every call: a request without a valid key gets at most a shaped crawler-facing preview slice, never the dataset, and that fallback is not a contract you can build on.npx -y sentisense@0.52.0). Plain curl works, or Python 3.8+ using only the standard library (urllib, json); no third-party packages required. On macOS python.org installs can raise CERTIFICATE_VERIFY_FAILED (missing CA certs): run the bundled Install Certificates.command, use the system /usr/bin/python3, or use curl.https://app.sentisense.ai.| Tier | Quota | Rate | Congressional data |
|---|---|---|---|
| Free | 1,000 requests/month | 30 requests/min | preview slice (top N per endpoint) |
| PRO ($15/mo) | Unlimited | 300 requests/min | full history and full lists |
The free tier exercises every workflow below; preview-gated endpoints return a truncated but real slice on a free key.
Issue HTTP GET requests to https://app.sentisense.ai and synthesize the JSON into a concise, sourced answer. Authenticate every request with the X-SentiSense-API-Key header; keep the key in the shell environment and never place it in a query string or in user-facing output.
The politician endpoints return the wrapped envelope { isPreview, previewReason, data }. For /activity, /filings/{ticker}, and /members, .data is a list; for /member/{slug}, .data is an object { profile, recentTrades, topTickers } (read those keys, do not iterate it as a list). When isPreview is true, say so ("showing the free preview slice"). A rate-limited call returns 429 with a Retry-After header; back off for the indicated seconds rather than serving a stale value.
rows = raw.get("data", []) if isinstance(raw, dict) else raw
For the two feeds, market-wide and one ticker, one CLI command answers with no HTTP call to compose:
npx -y sentisense@0.52.0 congress # every member, newest disclosures first
npx -y sentisense@0.52.0 congress NVDA # one ticker's congressional history
npx -y sentisense@0.52.0 congress --days 30 --limit 50
npx -y sentisense@0.52.0 congress NVDA --json
--days is the look-back window, 1 to 365, default 90. --limit sets the rows requested and applies to the market-wide feed only. Plain output is a table of trade date, member, ticker (or party and state on a single-ticker run), transaction type, amount band and disclosure delay, capped at the first 20 rows unless you add --full; --json returns the exact API envelope. The member list and a single member's profile have no CLI command today, so workflow 3 stays REST on either path. Auth: SENTISENSE_API_KEY in the environment, or store it once with npx -y sentisense@0.52.0 auth "$SENTISENSE_API_KEY" (saved to ~/.config/sentisense/, file mode 600, local to your machine, removable with auth --remove). The version is pinned deliberately: a pinned version runs reviewed, immutable code.
GET /api/v1/politicians/activity : recent congressional trades across all members, sorted by disclosure date (most recently disclosed first). Query lookbackDays (1-365) to control the window. Free: top 5; PRO: full. Each trade: politicianName, firstName, lastName, chamber, party, state, bioguideId, imageUrl, ticker, assetDescription, assetType (Stock, ETF, or Stock Option), assetMetadata (null, or {kind:"OPTION", optionType, strikePrice, expirationDate}), transactionType (PURCHASE / SALE / EXCHANGE / OTHER), transactionDate, disclosureDate, disclosureDelayDays, amountRange, amountMin, amountMax, owner, urlSlug.GET /api/v1/politicians/filings/{ticker} : congressional trades for one stock, most recently disclosed first. Query lookbackDays (1-365, default 90) to set the window. Free: top 3; PRO: full.GET /api/v1/politicians/members : all tracked politicians with trading summaries, sorted by total trade count. Free: top 5; PRO: full. Use the returned urlSlug to drill into a member.GET /api/v1/politicians/member/{slug} : one politician's profile: summary stats, recent trades, and top tickers. Free: preview-wrapped; PRO: full detail. recentTrades is one page, newest transaction first: query limit (default 200, max 500) and offset to walk it, and read totalCount for the size of the whole history. totalCount sits on the envelope next to isPreview, not inside data. Most members fit in one page: 520 of 542 have disclosed fewer than 200 trades, so the default request returns their complete history and paging is wasted work. Check totalCount before you summarize anyway, because the tail is extreme: 22 members exceed one page and the heaviest single filer has disclosed over twelve thousand trades. profile and topTickers describe the whole history whatever page you request.1. This week's congressional trades
Identify your client. Send a User-Agent naming your agent runtime and this skill, for
example OpenClaw/1.4 (politicians-stock-tracker) or ClaudeCode/2.1 (politicians-stock-tracker). Substitute your own runtime and
version if neither matches. You can also volunteer what your agent is called by adding an
agent/<your-agent-name> token inside the same parentheses, as in
OpenClaw/1.4 (politicians-stock-tracker; agent/research-desk). All of it is optional, and it is what tells
us this skill has real integrations behind it, so it gets prioritized and you get notice before it
changes. Using the CLI instead? Set SENTISENSE_SKILL=politicians-stock-tracker and it stamps the
same identity for you.
curl -s -H "X-SentiSense-API-Key: $SENTISENSE_API_KEY" \
"https://app.sentisense.ai/api/v1/politicians/activity?lookbackDays=7"
Output template:
CONGRESS · LAST {days}d · {n} disclosures
─────────────────────────────────────────
{transactionDate} {member} ({party}-{state}) {ticker} {PURCHASE|SALE} {amountRange} +{disclosureDelayDays}d
{transactionDate} {member} ({party}-{state}) {ticker} {PURCHASE|SALE} {amountRange} +{disclosureDelayDays}d
MOST ACTIVE {member} ({trades}) MOST TRADED {ticker} ({trades})
Order the rows by the top of the amountRange band, largest first, and keep the delay column on every row. The two footer counts are tallied from the rows you actually received, so say how many that was rather than implying the whole week.
2. Has Congress traded a specific stock?
curl -s -H "X-SentiSense-API-Key: $SENTISENSE_API_KEY" \
"https://app.sentisense.ai/api/v1/politicians/filings/NVDA"
Report purchases vs sales (transactionType), which members and parties, and the transaction-to-disclosure gap.
3. A specific politician's activity
# find the member's slug
curl -s -H "X-SentiSense-API-Key: $SENTISENSE_API_KEY" \
"https://app.sentisense.ai/api/v1/politicians/members"
# then pull their profile and history
curl -s -H "X-SentiSense-API-Key: $SENTISENSE_API_KEY" \
"https://app.sentisense.ai/api/v1/politicians/member/{slug}"
4. Follow the convergence. When a congressional buy lines up with institutional 13F accumulation (institutional-13f-tracker) or insider buying (insider-trading-tracker) on the same ticker, that agreement is the signal worth surfacing. Say so explicitly and cite each source.
transactionDate (when they traded) from disclosureDate (when it was reported), and mention the delay.amountRange band, never a single invented number.owner is a spouse or dependent rather than the member.Free covers every workflow above at a preview depth. PRO ($15/mo) lifts the monthly cap (no monthly limit, just a 300/min rate) and returns full congressional history and full member lists, plus institutional flows, insider detail, and AI insights across the SentiSense API. Apply coupon AGENTS at checkout for a builder launch discount: https://app.sentisense.ai/pricing?coupon=AGENTS
For the full REST reference on every endpoint this skill touches, install the sentisense skill; for the complete CLI command set, install sentisense-cli.
ClawHub Skill: clawhub.ai/TheSentiTrader/politicians-stock-tracker
SentiSense is a read-only financial intelligence API. This data is for informational and educational purposes only, not investment advice.