Search individual US Congress member stock trades, parsed from STOCK Act Periodi
Search individual US Congress member stock trades, parsed from STOCK Act Periodic Transaction Reports into clean rows. Filter by member name (q, e.g. "Pelosi"), ticker (e.g. NVDA), transaction type (purchase | sale | exchange | partial_sale), party (D | R | I), 2-letter state, chamber, or transaction-date range (dateFrom/dateTo). Each trade returns the member + party + state/district, owner (self/spouse/joint/dependent), ticker + asset description, buy/sell, the disclosed dollar RANGE (amountMin/amountMax — disclosures are ranges, not exact), the transaction date, the disclosure date, days-to-disclose (compliance lag), and a link to the source filing PDF. The envelope total is the full count matching your filter — so ticker=NVDA&type=purchase counts who bought NVIDIA. Amounts are ranges by law; trades are disclosed up to 45 days after they happen (current-to-the-filing). Coverage: US House + Senate e-filed PTRs; scanned/handwritten reports are parsed separately. Data: US House Clerk / US Senate eFD (public domain). Cross-ref /api/gov/congress-filings for the raw filing index.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://2s.io/api/gov/congress-trades
| Category | Company and compliance |
|---|---|
| Provider host | 2s.io |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"limit": 3,
"q": "Pelosi"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"properties": {
"chamber": {
"description": "house | senate (both covered).",
"type": "string"
},
"dateFrom": {
"description": "Transaction date >= YYYY-MM-DD.",
"type": "string"
},
"dateTo": {
"description": "Transaction date <= YYYY-MM-DD.",
"type": "string"
},
"limit": {
"description": "Max rows (default 25).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"minimum": 0,
"type": "integer"
},
"party": {
"description": "D | R | I (or Democrat/Republican/Independent).",
"type": "string"
},
"q": {
"description": "Member name substring (e.g. \"Pelosi\").",
"type": "string"
},
"state": {
"description": "2-letter state.",
"type": "string"
},
"ticker": {
"description": "Stock symbol (e.g. NVDA).",
"type": "string"
},
"type": {
"description": "purchase | sale | exchange | partial_sale.",
"type": "string"
}
}
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}