Dashboard

Senate recent filings

GET/api/congress/senate/trades/recent

Pro

Market-wide feed of periodic transaction reports filed by Senators, newest filing first, each with the transactions it disclosed. Ordered by filing date, so a late-filed report about older trades surfaces here when it is filed; most trades are disclosed well after the 45-day deadline, so a window on transactionDate must reach back a year or more to be representative. The archive starts with the first STOCK Act reports (Senate 2012, House 2014); since=2012-01-01 pages through all of it and is the bulk-backfill path. Paper-filed reports are included with parseStatus unparsed_paper and no transactions; parse_failed marks a report that could not be read. notificationDate and capGainsOver200 are always null for the Senate. Defaults to the last 30 days.

Get API key Try it live in the API explorer

Query parameters

Example request

curl 'https://api.stockfit.io/v1/api/congress/senate/trades/recent?since=2025-08-01&page=1&pageSize=50' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

Responses

200 OK

Paginated reports, newest filing first. An unknown Bioguide ID yields an empty page.

Response schema

  • page integer

    Current page number (1-indexed).

  • pageSize integer

    Reports per page.

  • totalPages integer

    Total number of pages.

  • totalResults integer

    Total matching reports.

  • data array of object
    array of:
    • filingId string

      Source filing identifier (House Clerk DocID or Senate eFD report id).

    • filingDate string

      Date the report was filed (YYYY-MM-DD).

    • filingUrl string

      URL of the original report on the chamber's disclosure site.

    • parseStatus string | null

      | Value | Meaning | |---|---| | `parsed` | Transactions extracted | | `no_transactions` | The report disclosed no transactions | | `unparsed_paper` | Filed on paper (scanned image); follow `filingUrl` | | `parse_failed` | The report could not be read; follow `filingUrl` |

    • isAmendment boolean

      Whether the report amends an earlier one.

    • member object
      • bioguideId string | null

        Bioguide ID (null when the filer could not be matched to the roster).

      • name string

        Member name.

      • party string | null
      • state string | null
      • district string | null

        Congressional district (House only; null for senators).

    • transactionCount integer

      Number of transactions disclosed in the report.

    • transactions array of object
      array of:
      • owner string

        Who holds the asset (`self`, `spouse`, `joint`, `child`, `unknown`).

      • assetName string
      • assetTypeCode string | null

        House asset-type code (ST, OP, PS, CS, GS, MF, EF, CT, OT, ...).

      • ticker string | null

        Ticker exactly as the filer disclosed it, uppercased; not validated (may be OTC, foreign, preferred such as EFC$D, or a typo). Join on `resolvedTicker`.

      • transactionType string

        One of `purchase`, `sale`, `sale_partial`, `exchange`, `other`.

      • transactionDate string | null
      • notificationDate string | null

        House only; null for Senate.

      • amountRange string | null
      • amountMin number | null
      • amountMax number | null

        Null for open-ended bands.

      • capGainsOver200 boolean | null

        House only when readable; null otherwise.

      • description string | null
      • resolvedTicker string | null

        The listing ticker this API resolved the asset to, the join key for every other endpoint; null when matched by name only or unmatched (see `linkConfidence`).

      • linkConfidence string

        One of `high`, `medium`, `low`, `none`.

Example response

{
  "page": 1,
  "pageSize": 50,
  "totalPages": 1,
  "totalResults": 2,
  "data": [
    {
      "filingId": "20024615",
      "filingDate": "2025-01-16",
      "filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2025/20024615.pdf",
      "parseStatus": "parsed",
      "isAmendment": false,
      "member": {
        "bioguideId": "P000197",
        "name": "Nancy Pelosi",
        "party": "Democrat",
        "state": "CA",
        "district": "11"
      },
      "transactionCount": 1,
      "transactions": [
        {
          "owner": "spouse",
          "assetName": "NVIDIA Corporation - Common Stock",
          "assetTypeCode": "OP",
          "ticker": "NVDA",
          "transactionType": "purchase",
          "transactionDate": "2024-12-31",
          "notificationDate": "2024-12-31",
          "amountRange": "$250,001 - $500,000",
          "amountMin": 250001,
          "amountMax": 500000,
          "capGainsOver200": null,
          "description": "Purchased 50 call options with a strike price of $80 and an expiration date of 1/16/26.",
          "resolvedTicker": "NVDA",
          "linkConfidence": "high"
        }
      ]
    },
    {
      "filingId": "9111234",
      "filingDate": "2024-11-04",
      "filingUrl": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2024/9111234.pdf",
      "parseStatus": "unparsed_paper",
      "isAmendment": false,
      "member": {
        "bioguideId": "P000197",
        "name": "Nancy Pelosi",
        "party": "Democrat",
        "state": "CA",
        "district": "11"
      },
      "transactionCount": 0,
      "transactions": []
    }
  ]
}

400 Bad Request

Invalid parameters

Response schema

  • error string

    Human-readable error message

Example response

{}

403 Forbidden

Feature not available on current plan

Response schema

  • error string

    Human-readable error message

Example response

{}