House APIdisclosures-clerk.house.gov ↗
Extract structured transaction data from Congressional Periodic Transaction Report PDFs filed with the House of Representatives. Tickers, amounts, dates, and more.
What is the House API?
The House Disclosures PTR API provides 2 endpoints that convert Congressional Periodic Transaction Report (PTR) PDF filings into structured JSON. The get_transactions endpoint returns filer metadata and a full transaction array — including asset name, ticker symbol, transaction type, date, and dollar amount range — for any filing identified by year and filing ID. The get_pie_chart_data endpoint aggregates those same transactions into labeled slices for visualization.
curl -X GET 'https://api.parse.bot/scraper/e5422bf1-5120-4283-b715-3992bedee252/get_transactions?year=2026&filing_id=20033725' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace disclosures-clerk-house-gov-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.congressional_financial_disclosure_api import CongressionalDisclosures, Filing, PieChart, Transaction, GroupBy, FilingNotFound
client = CongressionalDisclosures()
# Fetch a filing's transactions
filing = client.filings.get(filing_id="20033725", year="2026")
print(filing.filer.name, filing.filer.state_district)
print(f"Transaction count: {filing.transaction_count}")
for tx in filing.transactions:
print(tx.asset, tx.transaction_type, tx.date, tx.amount_midpoint)
# Get pie chart data grouped by transaction type
chart = client.piecharts.get(filing_id="20033725", year="2026", group_by=GroupBy.TRANSACTION_TYPE)
print(f"Total value: {chart.total_value}")
for s in chart.slices:
print(s.label, s.value, s.percentage)
Extract all transactions from a Congressional financial disclosure filing (PTR). Parses the PDF and returns structured data including filer information and each transaction's asset name, ticker, transaction type, date, amount range, and description. A single filing typically contains 1-50 transactions. The PDF is fetched from the House disclosure system by filing_id and year.
| Param | Type | Description |
|---|---|---|
| year | string | Year the filing was made (used in PDF URL path). |
| filing_id | string | Filing ID number from the House disclosure system. |
{
"type": "object",
"fields": {
"filer": "object containing name, status, state_district, filing_id, signed",
"filing_id": "string, the filing ID",
"transactions": "array of Transaction objects",
"transaction_count": "integer, number of transactions parsed"
},
"sample": {
"data": {
"filer": {
"name": "Hon. Nancy Pelosi",
"signed": "Hon. Nancy Pelosi , 01/23/2026",
"status": "Member",
"filing_id": "20033725",
"state_district": "CA11"
},
"filing_id": "20033725",
"transactions": [
{
"date": "01/16/2026",
"asset": "AllianceBernstein Holding L.P. Units",
"owner": "SP",
"ticker": null,
"description": "Purchased 25,000 shares.",
"amount_range": "$1,000,001 - $5,000,000",
"amount_midpoint": 3000000,
"asset_type_code": "AB",
"transaction_type": "Purchase",
"notification_date": "01/16/2026",
"transaction_type_code": "P"
}
],
"transaction_count": 18
},
"status": "success"
}
}About the House API
What the API Covers
Both endpoints target the House of Representatives financial disclosure system at disclosures-clerk.house.gov. Every PTR filing is identified by a year and a filing_id, both of which are accepted as optional query parameters. The filer object returned on every response includes the member's name, status, state_district, filing_id, and the date the filing was signed.
get_transactions
This endpoint returns the full transaction list from a single PTR filing. Each item in the transactions array carries the asset name, ticker (when disclosed), transaction type (purchase, sale, exchange, etc.), transaction date, an amount range expressed as a string, and any additional description text from the filing. The transaction_count field gives the total number of parsed rows, which varies considerably between filings — a single report can contain dozens of trades.
get_pie_chart_data
This endpoint aggregates transaction data for charting. The group_by parameter controls how slices are formed: grouping by asset uses the ticker when available and falls back to the full asset name; grouping by transaction type separates purchases from sales. Each slice in the slices array includes a label, a value computed from the midpoint of each transaction's amount range, and a percentage of the total_value. This makes it straightforward to see concentration by holding or by trade direction across a single filing.
Coverage Notes
The API resolves one filing at a time using a direct year + filing_id pair. It covers PTR filings submitted to the House Clerk's office; Senate filings and annual Financial Disclosure Statements (FD) are outside the current scope. Amount values reflect the midpoint of the reported range (e.g., $1,001–$15,000 becomes ~$8,000), consistent with how these disclosures present monetary figures.
The House API is a managed, monitored endpoint for disclosures-clerk.house.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when disclosures-clerk.house.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official disclosures-clerk.house.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track which stocks a specific House member traded within a reporting period using the
transactionsarray tickers and dates. - Aggregate transaction value by asset to identify the largest disclosed positions in a single PTR filing via
get_pie_chart_data. - Compare buy vs. sell activity for a member by grouping
get_pie_chart_dataresults by transaction type. - Build a filing monitor that ingests multiple PTR filing IDs and surfaces newly disclosed trades with amount ranges.
- Research investment overlap between members by comparing transaction arrays across multiple filings.
- Populate a dashboard with pie chart slice data showing portfolio concentration derived from disclosed midpoint values.
- Audit the asset names and descriptions in PTR filings to flag undisclosed tickers or non-standard asset entries.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the House Clerk's office provide an official developer API for PTR filings?+
What does the `filer` object contain and does it include the member's party affiliation?+
filer object returns name, status, state_district, filing_id, and signed date — fields drawn directly from the disclosure form. Party affiliation is not included in PTR filings themselves and is not returned by either endpoint.How are dollar amounts represented given that PTR filings report ranges rather than exact figures?+
get_transactions returns the raw amount range string as disclosed (e.g., '$1,001 - $15,000'). get_pie_chart_data converts each range to its midpoint for the value and total_value fields, so aggregations are estimates rather than precise figures.Does the API cover Senate financial disclosures or annual House FD statements?+
Can I retrieve a list of all recent PTR filings without knowing a specific filing ID in advance?+
year and filing_id to resolve a specific document. Bulk discovery of filing IDs across members or date ranges is not exposed. You can fork this API on Parse and revise it to add an endpoint that searches the House disclosure index and returns available filing IDs.