Returns one US Senate disclosure report from the `filing_url` found by the stock-disclosures search, passed as `url`. Supports annual reports, periodic transaction reports and due date extension notices. Output has filer, filing date, `parts` with their rows, and a `transactions` list. House PDFs and paper filings return a validation error.
Response behavior
- `chamber` — always `senate` for this endpoint today (House disclosures aren't parseable HTML). The field's type is shared with `congress-stock-disclosures` and formally allows `house`, `senate`.
- `parts` is a list of the report's content sections in document order. Annual reports have several numbered sections ("Part 1. Honoraria", "Part 3. Assets", ..., plus an unnumbered "Attachments & Comments"); PTR reports have exactly one, titled "Transactions". Each part carries:
- `answer` — the section's yes/no lead question answer, when present (e.g. `"Yes"`). PTR's "Transactions" section has no such question and omits this field.
- `rows` — the section's data table, when it has one, as a list of objects keyed by the table's own column headers (e.g. `Asset`, `Asset Type`, `Owner`, `Value`, `Income Type`, `Income` for an Annual report's Part 3 Assets table, or `Transaction Date`, `Owner`, `Ticker`, `Asset Name`, `Asset Type`, `Type`, `Amount`, `Comment` for a PTR's Transactions table). This is intentionally schema-agnostic across report types rather than hardcoded to one report type's columns.
- `transactions` is the stable transaction list for both Annual reports (Part 4a and Part 4b) and PTR reports. It preserves document order and the source's displayed strings, including amount ranges and `--` placeholders. Each item includes `source_part`, optional `source_row_number`, `transaction_date`, `owner`, optional `ticker`, `asset_name`, optional `asset_type`, `transaction_type`, `amount`, and optional `comment`. The original table remains available in `parts[].rows` for backward compatibility and source-specific columns.
- `body` is populated only for Due Date Extension notices -- a short prose notice (who requested the extension and the new due date), not a Parts-table form like Annual/PTR. `filer`/`filed_at`/`parts` stay blank for this type since the page has no structurally distinct fields for them; the filer's name appears inline in the `body` prose instead.
- A URL that doesn't match a supported report returns HTTP 400 with a typed error.
- A report id that doesn't exist returns HTTP 404.
- A blocked, empty, or unexpectedly-shaped upstream response returns HTTP 503 and may be retried.
Example response (Annual):
```json
{"code":200,"msg":"OK","data":{"chamber":"senate","report_type":"annual","report_id":"cc198326-0f50-4f47-8b03-a5c6440f400f","source_url":"https://efdsearch.senate.gov/search/view/annual/cc198326-0f50-4f47-8b03-a5c6440f400f/","title":"Annual Report for Calendar 2018","filer":"The Honorable John A Barrasso (Barrasso, John)","filed_at":"05/15/2019 @ 8:11 AM","parts":[{"title":"Part 4b. Transactions","answer":"Yes","rows":[{"#":"1","Owner":"Self","Ticker":"VTSAX","Asset Name":"Vanguard Total Stock Market Index Fund","Transaction Type":"Sale (Partial)","Transaction Date":"01/02/2018","Amount":"$250,001 - $500,000","Comments":"n/a"}]}],"transactions":[{"source_part":"Part 4b. Transactions","source_row_number":"1","transaction_date":"01/02/2018","owner":"Self","ticker":"VTSAX","asset_name":"Vanguard Total Stock Market Index Fund","transaction_type":"Sale (Partial)","amount":"$250,001 - $500,000","comment":"n/a"}],"fetched_at":"2026-08-08T00:00:00Z"}}
```
Example response (PTR):
```json
{"code":200,"msg":"OK","data":{"chamber":"senate","report_type":"ptr","report_id":"deb8df2a-b8ef-4f02-ae44-1f3b7168ccc2","source_url":"https://efdsearch.senate.gov/search/view/ptr/deb8df2a-b8ef-4f02-ae44-1f3b7168ccc2/","title":"Periodic Transaction Report for 01/03/2019","filer":"The Honorable Thomas R Carper (Former Senator)","filed_at":"01/03/2019 @ 1:10 PM","parts":[{"title":"Transactions","rows":[{"#":"5","Transaction Date":"12/19/2018","Owner":"Spouse","Ticker":"--","Asset Name":"Bank of America","Asset Type":"Corporate Bond","Type":"Purchase","Amount":"$15,001 - $50,000","Comment":"--"}]}],"transactions":[{"source_part":"Transactions","source_row_number":"5","transaction_date":"12/19/2018","owner":"Spouse","ticker":"--","asset_name":"Bank of America","asset_type":"Corporate Bond","transaction_type":"Purchase","amount":"$15,001 - $50,000","comment":"--"}],"fetched_at":"2026-08-08T00:00:00Z"}}
```
Example response (Due Date Extension):
```json
{"code":200,"msg":"OK","data":{"chamber":"senate","report_type":"due_date_extension","report_id":"13373873-428a-423f-8d0f-be3e1e36a1a2","source_url":"https://efdsearch.senate.gov/search/view/extension-notice/regular/13373873-428a-423f-8d0f-be3e1e36a1a2/","title":"Candidate Report for 2026 Due Date Extension 1","filer":"","filed_at":"","parts":[],"body":"Theodore (Todd) B Achilles timely requested an extension of time for filing the annual Public Financial Disclosure Report.\n\nPursuant to section 101(g) of the Ethics in Government Act of 1978, as amended, a 90-day extension was granted and the new due date for the report is no later than August 13, 2026.","fetched_at":"2026-08-08T00:00:00Z"}}
```
API key required. Paste a full key or rotate one from the API Keys page.
Set up API key