API Reference

Politicians Trading API

Track congressional STOCK Act trading disclosures: purchases, sales, and exercises by U.S. Senators and Representatives. Updated daily from official filings.

Base: /api/v1/politiciansPRO (free preview available)4 endpoints

Overview

The Politicians Trading API provides access to congressional STOCK Act trading disclosures. Under the STOCK Act (2012), members of the U.S. Senate and House of Representatives must publicly disclose securities transactions within 45 days. This data reveals what elected officials are buying and selling in their personal portfolios.

Use cases:

  • Track which stocks members of Congress are buying and selling
  • Filter by chamber (Senate vs House), party, or state
  • Identify stocks with heavy congressional interest
  • Cross-reference politician trades with insider trading (Form 4) and institutional flows (13F)
  • Build quantitative strategies based on congressional trading signals

Chambers: SENATE, HOUSE.

Transaction types: PURCHASE, SALE, EXCHANGE, OTHER.

Asset types: Stock, ETF (additional types planned).

Ownership types: Self, Spouse, Child, Joint.

Amount ranges: STOCK Act disclosures report dollar amounts as ranges (e.g., "$1,001 - $15,000"), not exact values. The API returns the raw range string plus parsed amountMin and amountMax fields.

Access: All endpoints require a PRO subscription for full data. Free/unauthenticated users see a limited preview with isPreview: true in the response.


GET /activity

Returns recent congressional trading activity across all politicians, sorted by transaction date (newest first). Each entry is a single STOCK Act disclosure record.

Authentication: PRO required. Free users receive a preview of the top 5 trades.

Parameters:

Parameter Type Required Default Description
lookbackDays integer No 90 Number of days to look back. Must be between 1 and 365 (inclusive); returns 400 otherwise

Example Request:

curl -H "X-SentiSense-API-Key: ss_live_YOUR_KEY" \
  "https://app.sentisense.ai/api/v1/politicians/activity?lookbackDays=90"
from sentisense import SentiSenseClient

client = SentiSenseClient(api_key="ss_live_YOUR_KEY")
activity = client.get_politician_activity(lookback_days=90)
for trade in activity["data"]:
    print(f"{trade['politicianName']} ({trade['party']}-{trade['state']}): {trade['transactionType']} {trade['ticker']} {trade['amountRange']}")

Response Schema:

Field Type Description
isPreview boolean true when response is limited (Free/unauthenticated)
previewReason string "LOGIN_REQUIRED", "PRO_REQUIRED", or null
data array Array of trade objects (see below)

Trade object:

Field Type Description
politicianName string Full name (e.g., "Nancy Pelosi")
firstName string First name
lastName string Last name
chamber string SENATE or HOUSE
party string Political party (e.g., "Democrat", "Republican")
state string Two-letter state code (e.g., "CA")
bioguideId string Official Bioguide identifier
imageUrl string URL to politician's headshot image
ticker string Stock ticker symbol
assetDescription string Security description from filing
assetType string Stock or ETF
transactionType string PURCHASE, SALE, EXCHANGE, or OTHER
transactionDate string Date of the transaction (ISO format)
disclosureDate string Date the disclosure was filed
disclosureDelayDays int Days between transaction and disclosure
amountRange string Raw STOCK Act range (e.g., "$1,001 - $15,000")
amountMin long Minimum dollar amount of the range
amountMax long Maximum dollar amount of the range
owner string Who made the trade: Self, Spouse, Child, or Joint
urlSlug string Politician's URL slug for /member/{slug} lookup

Example Response:

{
  "isPreview": false,
  "previewReason": null,
  "data": [
    {
      "politicianName": "Nancy Pelosi",
      "firstName": "Nancy",
      "lastName": "Pelosi",
      "chamber": "HOUSE",
      "party": "Democrat",
      "state": "CA",
      "bioguideId": "P000197",
      "imageUrl": "https://cdn.sentisense.ai/politicians/P000197.jpg",
      "ticker": "NVDA",
      "assetDescription": "NVIDIA Corporation",
      "assetType": "Stock",
      "transactionType": "PURCHASE",
      "transactionDate": "2026-03-15",
      "disclosureDate": "2026-03-28",
      "disclosureDelayDays": 13,
      "amountRange": "$500,001 - $1,000,000",
      "amountMin": 500001,
      "amountMax": 1000000,
      "owner": "Spouse",
      "urlSlug": "nancy-pelosi"
    }
  ]
}

Free/unauthenticated: same shape with isPreview: true, previewReason: "PRO_REQUIRED", and data truncated to top 5.


GET /filings/{ticker}

Returns congressional trades for a specific stock, sorted newest-first. Use this to see which politicians have been buying or selling a particular ticker.

Authentication: PRO required. Free users receive a preview of the top 3 trades.

Parameters:

Parameter Type Required Default Description
ticker path Yes - Stock ticker symbol (e.g., AAPL)
lookbackDays integer No 90 Number of days to look back. Must be between 1 and 365 (inclusive); returns 400 otherwise

Example Request:

curl -H "X-SentiSense-API-Key: ss_live_YOUR_KEY" \
  "https://app.sentisense.ai/api/v1/politicians/filings/NVDA?lookbackDays=180"
filings = client.get_politician_filings("NVDA", lookback_days=180)
for f in filings["data"]:
    print(f"{f['politicianName']}: {f['transactionType']} {f['amountRange']} on {f['transactionDate']}")

Response: Same preview wrapper and trade object schema as /activity.


GET /members

Returns all tracked politicians with trading summary statistics, sorted by total trade count (most active first).

Authentication: PRO required. Free users receive a preview of the top 5 members.

Parameters: None.

Example Request:

curl -H "X-SentiSense-API-Key: ss_live_YOUR_KEY" \
  "https://app.sentisense.ai/api/v1/politicians/members"
members = client.get_politician_members()
for m in members["data"]:
    print(f"{m['displayName']} ({m['party']}-{m['state']}): {m['totalTrades']} trades ({m['purchaseCount']} buys, {m['saleCount']} sells)")

Response Schema:

Field Type Description
isPreview boolean true when response is limited
previewReason string "LOGIN_REQUIRED", "PRO_REQUIRED", or null
data array Array of politician summary objects (see below)

Politician summary object:

Field Type Description
urlSlug string URL-friendly identifier (use with /member/{slug})
displayName string Full display name
firstName string First name
lastName string Last name
chamber string SENATE or HOUSE
party string Political party
state string Two-letter state code
bioguideId string Official Bioguide identifier
imageUrl string URL to headshot image
totalTrades int Total number of disclosed trades
purchaseCount int Number of purchase transactions
saleCount int Number of sale transactions
latestTradeDate string Date of most recent trade
kbEntityId string|null Internal knowledge base entity ID
sentimentScore double|null SentiSense sentiment score (null when not yet computed)

GET /member/{slug}

Returns a detailed profile for a single politician, including their summary statistics, recent trades, and most-traded tickers.

Authentication: PRO required. Free users receive a preview-wrapped response.

Parameters:

Parameter Type Required Default Description
slug path Yes - Politician URL slug (e.g., nancy-pelosi). Get slugs from /members

Example Request:

curl -H "X-SentiSense-API-Key: ss_live_YOUR_KEY" \
  "https://app.sentisense.ai/api/v1/politicians/member/nancy-pelosi"
detail = client.get_politician_member("nancy-pelosi")
profile = detail["data"]["profile"]
print(f"{profile['displayName']} - {profile['totalTrades']} trades")
for trade in detail["data"]["recentTrades"]:
    print(f"  {trade['transactionDate']}: {trade['transactionType']} {trade['ticker']} {trade['amountRange']}")

Response Schema:

Field Type Description
isPreview boolean true when response is limited
previewReason string "LOGIN_REQUIRED", "PRO_REQUIRED", or null
data object Politician detail object (see below)

Politician detail object:

Field Type Description
profile object Politician summary (same schema as /members entries)
recentTrades array Recent trade objects (same schema as /activity entries)
topTickers array List of most-traded ticker symbols (strings)

Example Response:

{
  "isPreview": false,
  "previewReason": null,
  "data": {
    "profile": {
      "urlSlug": "nancy-pelosi",
      "displayName": "Nancy Pelosi",
      "chamber": "HOUSE",
      "party": "Democrat",
      "state": "CA",
      "bioguideId": "P000197",
      "imageUrl": "https://cdn.sentisense.ai/politicians/P000197.jpg",
      "totalTrades": 42,
      "purchaseCount": 28,
      "saleCount": 14,
      "latestTradeDate": "2026-03-15"
    },
    "recentTrades": [
      {
        "ticker": "NVDA",
        "transactionType": "PURCHASE",
        "transactionDate": "2026-03-15",
        "amountRange": "$500,001 - $1,000,000",
        "owner": "Spouse"
      }
    ],
    "topTickers": ["NVDA", "AAPL", "MSFT", "GOOG", "AMZN"]
  }
}

Try It

Test endpoints directly from your browser. Paste your API key once — it's saved locally and shared across all widgets. Get a free key

GET/api/v1/politicians/activity

Recent congressional trades across all politicians

Try It
curl -H "X-SentiSense-API-Key: ssk_YOUR_KEY" \ "https://app.sentisense.ai/api/v1/politicians/activity"
Enter your API key to send requests

GET/api/v1/politicians/filings/{ticker}

Congressional trades for a specific stock

Try It
curl -H "X-SentiSense-API-Key: ssk_YOUR_KEY" \ "https://app.sentisense.ai/api/v1/politicians/filings/AAPL"
Enter your API key to send requests

GET/api/v1/politicians/members

All tracked politicians with trading summaries

Try It
curl -H "X-SentiSense-API-Key: ssk_YOUR_KEY" \ "https://app.sentisense.ai/api/v1/politicians/members"
Enter your API key to send requests

GET/api/v1/politicians/member/{slug}

Detailed profile and trades for a specific politician

Try It
curl -H "X-SentiSense-API-Key: ssk_YOUR_KEY" \ "https://app.sentisense.ai/api/v1/politicians/member/{slug}"
Enter your API key to send requests