# 2s.io Congress Stock Trades API

> 2s.io Congress Stock Trades API is a paid API for AI agents from 2s.io, paid per call via x402, $0.0012/call, status unknown (last checked 2026-09-13).

Search and filter US Congress member stock trades parsed from STOCK Act Periodic Transaction Reports, returning structured trade details including member, ticker, transaction type, dollar range, and filing PDF link.

## Facts

- Endpoint: GET https://2s.io/api/gov/congress-trades
- Price: $0.0012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-congress-stock-trades-api-b43b3867
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Rl5vNHyqr6baPKbCkKA36

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-congress-stock-trades-api-b43b3867
```

Example prompt: Show me all NVIDIA stock purchases by Senate members from California between January 1 2024 and June 30 2024 — up to 50 results, with the disclosure lag and the source filing links.

## When to prefer this

Use this endpoint when you need structured, filterable access to US congressional stock trade disclosures sourced directly from STOCK Act PTR filings. Prefer this over manual PDF searches or scraping the House Clerk/Senate eFD websites directly. Best suited for agents tracking political trading activity, researching specific tickers for congressional activity, monitoring compliance lag, or building political transparency dashboards.

## Known failure modes

- No results returned when filter combination matches zero trades (empty array, total=0)
- Invalid transaction type value returns an error or empty result
- Date format not in YYYY-MM-DD causes a parsing error
- Ticker symbol not found in PTR filings returns empty results
- Handwritten/scanned reports may not be included in results if not yet parsed
- Offset beyond total count returns empty results

## How this service works

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), 2-letter state, chamber, or transaction-date range (dateFrom/dateTo). Each trade returns the member + 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.

## Output

A paginated JSON envelope with total match count and an array of trade records, each containing: member name, state/district, owner type (self/spouse/joint/dependent), ticker symbol, asset description, transaction type (purchase/sale/exchange/partial_sale), disclosed dollar range (amountMin/amountMax), transaction date, disclosure date, days-to-disclose compliance lag, and a URL to the original source filing PDF.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "properties": {
      "q": {
       "type": "string",
       "description": "Member name substring (e.g. \"Pelosi\")."
      },
      "type": {
       "type": "string",
       "description": "purchase | sale | exchange | partial_sale."
      },
      "limit": {
       "type": "integer",
       "maximum": 100,
       "minimum": 1,
       "description": "Max rows (default 25)."
      },
      "party": {
       "type": "string",
       "description": "D | R | I (or Democrat/Republican/Independent)."
      },
      "state": {
       "type": "string",
       "description": "2-letter state."
      },
      "dateTo": {
       "type": "string",
       "description": "Transaction date <= YYYY-MM-DD."
      },
      "offset": {
       "type": "integer",
       "minimum": 0
      },
      "ticker": {
       "type": "string",
       "description": "Stock symbol (e.g. NVDA)."
      },
      "chamber": {
       "type": "string",
       "description": "house | senate (both covered)."
      },
      "dateFrom": {
       "type": "string",
       "description": "Transaction date >= YYYY-MM-DD."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-congress-stock-trades-api-b43b3867/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
