Congress API endpoint
Searches congressional stock-disclosure filings for the House (default) or the Senate via `chamber`. House needs `member`; Senate takes `first_name`, `last_name`, `filer_type`, state and `report_type` filters, and `from`/`to` dates. Each result has member, office, filing year, filing type and `filing_url`. Paged by `page` and `limit` (default 50, max 500).
/congress/stock-disclosuresMCP tool: congress_stock_disclosures
Searches public congressional stock-disclosure filings from both House and Senate sources and returns rows.
Query parameters:
chamber (optional) — chamber filter. Allowed values: house, senate. Default: house.member (optional) — member name. Required for House. For Senate, this is a backward-compatible shorthand that maps a one-word value to last_name; for multiple words, the first word becomes first_name and the complete remainder becomes last_name (for example, Chris Van Hollen becomes Chris / Van Hollen). Do not combine it with first_name or last_name.first_name (optional) — Senate filer first-name prefix, matching the Senate form's “First name (starts with)” field. Senate only; cannot be combined with member.last_name (optional) — Senate filer last-name prefix, matching the Senate form's “Last name (starts with)” field. Senate only; cannot be combined with member.ticker (optional, deprecated) — unsupported compatibility parameter. Any non-empty value returns a validation error; this parameter is planned for removal.state (optional) — validated two-letter state or territory code. For Senate, this backward-compatible shorthand applies the same value to both state fields; do not combine it with senator_state or candidate_state.senator_state (optional) — Senate Senator-state filter as a validated two-letter code.candidate_state (optional) — Senate Candidate-state filter as a validated two-letter code.Allowed state and territory codes for all three state parameters: AK, AL, AR, AS, AZ, CA, CO, CT, DC, DE, FL, FM, GA, GU, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MH, MI, MN, MO, MP, MS, MT, NC, ND, NE, NH, NJ, NM, NV, NY, OH, OK, OR, PA, PR, PW, RI, SC, SD, TN, TX, UT, VA, VI, VT, WA, WI, WV, WY.
district (optional) — House district number (House only).filer_type (optional) — meaning differs by chamber:
member (default), candidate. candidate mode uses election_year instead of the from/to filing-year range.senator, candidate, former_senator; the standalone value all sends the live form's unfiltered filer selection and cannot be combined with another value. Defaults to senator when omitted.election_year (optional) — House candidate-search election year in YYYY. Requires filer_type=candidate. Returns a validation error if set with chamber=senate or without filer_type=candidate.report_type (optional) — comma-separated Senate report-type filter (Senate only). Allowed values: annual, periodic_transaction, due_date_extension, blind_trust, other. Defaults to all types when omitted. Returns a validation error if set with chamber=house.from (optional) — minimum filing date. House accepts YYYY; Senate accepts YYYY or MM/DD/YYYY and defaults to 2012 when omitted. For House candidate search (filer_type=candidate), results[].filing_year holds the election year (there is no separate filing-year column on that form), so from/to filter on election year for those results.to (optional) — maximum filing date. House accepts YYYY; Senate accepts YYYY or MM/DD/YYYY.sort (optional) — allowed values: name_asc, name_desc, office_asc, office_desc, filing_year_asc, filing_year_desc. Default: filing_year_desc.page (optional) — 1-based result page, allowed range 1-1000. Default: 1.limit (optional) — results per page, allowed range 1-500. Default: 50.Response behavior:
source_url points to the upstream endpoint used for the search:
https://disclosures-clerk.house.gov/FinancialDisclosure/ViewMemberSearchResulthttps://efdsearch.senate.gov/search/report/data/count: 0, total: 0, and results: [] (HTTP 200).first_name, last_name, filer_type, senator_state, candidate_state, report_type, from, and to.count is the number of rows on the current page; total is the number of rows across all pages after upstream filters.year_kind: filing means filing_year is a filing year; election means it is the House candidate election year.filed_at in canonical YYYY-MM-DD format. House list sources do not expose an exact filing date, so House results omit filed_at.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| member | 40 | |
| office | 40 | CA11 (21), CA12 (19) |
| filing_year | 40 | 2,021 to 2,026, median 2,023 |
| year_kind | 40 | filing in all 40 |
| filing_type | 40 | PTR Original (35), FD Original (5) |
| filing_url | 40 | disclosures-clerk.house.gov |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| chamber | string | No | Chamber filter. Allowed values: house, senate. Allowed values: house, senate. | house | |
| member | string | No | Member name. Required for House. For Senate, this backward-compatible shorthand maps one word to last_name and maps the first word plus the complete remaining surname to first_name/last_name; it cannot be combined with either exact name field. | ||
| first_name | string | No | Senate filer first-name prefix (Senate only; cannot be combined with member). | Elizabeth | |
| last_name | string | No | Senate filer last-name prefix (Senate only; cannot be combined with member). | Warren | |
| ticker | string | No | Deprecated unsupported parameter; any non-empty value returns a validation error and the parameter is planned for removal. | ||
| state | string | No | State or territory filter (2-letter code). For Senate this backward-compatible shorthand applies to both Senator and Candidate states and cannot be combined with senator_state or candidate_state. Allowed values: AK, AL, AR, AS, AZ, CA, CO, CT, DC, DE, FL, FM, GA, GU, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MH, MI, MN, MO, MP, MS, MT, NC, ND, NE, NH, NJ, NM, NV, NY, OH, OK, OR, PA, PR, PW, RI, SC, SD, TN, TX, UT, VA, VI, VT, WA, WI, WV, WY. | CA | |
| senator_state | string | No | Senator state filter (Senate only, 2-letter code). Allowed values: AK, AL, AR, AS, AZ, CA, CO, CT, DC, DE, FL, FM, GA, GU, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MH, MI, MN, MO, MP, MS, MT, NC, ND, NE, NH, NJ, NM, NV, NY, OH, OK, OR, PA, PR, PW, RI, SC, SD, TN, TX, UT, VA, VI, VT, WA, WI, WV, WY. | MA | |
| candidate_state | string | No | Candidate state filter (Senate only, 2-letter code). Allowed values: AK, AL, AR, AS, AZ, CA, CO, CT, DC, DE, FL, FM, GA, GU, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MH, MI, MN, MO, MP, MS, MT, NC, ND, NE, NH, NJ, NM, NV, NY, OH, OK, OR, PA, PR, PW, RI, SC, SD, TN, TX, UT, VA, VI, VT, WA, WI, WV, WY. | TX | |
| district | string | No | House district filter (House only). | ||
| filer_type | string | No | senator when omitted | Filer-type filter, meaning differs by chamber. House: member (default) or candidate. Senate: comma-separated senator, candidate, former_senator, or the standalone all value. Defaults to senator when omitted. Allowed values: member, candidate, all, senator, former_senator. | candidate |
| election_year | string | No | House candidate-search election year filter (requires filer_type=candidate). | 2024 | |
| report_type | string | No | all types when omitted | Comma-separated Senate report-type filter (Senate only). Allowed values: annual, periodic_transaction, due_date_extension, blind_trust, other. Defaults to all types when omitted. Allowed values: annual, periodic_transaction, due_date_extension, blind_trust, other. | annual,periodic_transaction |
| from | string | No | 2012 when omitted | Minimum filing date. House accepts YYYY. Senate accepts YYYY or MM/DD/YYYY and defaults to 2012 when omitted. | 01/01/2024 |
| to | string | No | Maximum filing date. House accepts YYYY. Senate accepts YYYY or MM/DD/YYYY. | 12/31/2024 | |
| sort | string | No | Sort key. Allowed values: name_asc, name_desc, office_asc, office_desc, filing_year_asc, filing_year_desc. Allowed values: name_asc, name_desc, office_asc, office_desc, filing_year_asc, filing_year_desc. | filing_year_desc | |
| page | integer | No | 1-based result page (1-1000). Minimum: 1. Maximum: 1000. | ||
| limit | integer | No | Max results (1-500). | 50 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/congress/stock-disclosures?chamber=house&state=AK&senator_state=AK&candidate_state=AK&filer_type=member&report_type=annual&sort=name_asc&page=1&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"chamber": "senate",
"count": 1,
"total": 26,
"query": "Elizabeth Warren",
"sort": "filing_year_desc",
"page": 1,
"limit": 25,
"from": "2012",
"to": "2026",
"source_url": "https://efdsearch.senate.gov/search/report/data/",
"results": [
{
"member": "Elizabeth Warren",
"office": "Warren, Elizabeth (Senator)",
"filing_year": 2025,
"year_kind": "filing",
"filed_at": "2025-05-15",
"filing_type": "Annual Report",
"filing_url": "https://efdsearch.senate.gov/search/view/annual/example-id/"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/congress.stockDisclosuresResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | congress.StockDisclosureResponse | No | ||||
| data.chamber | string | No | house, senate | house | ||
| data.count | integer | No | 10 | |||
| data.fetched_at | string | No | 2026-08-07T10:00:00Z | |||
| data.from | string | No | 2018 | |||
| data.limit | integer | No | 50 | |||
| data.page | integer | No | 1 | |||
| data.query | string | No | Pelosi | |||
| data.results | array | No | ||||
| data.results[].filed_at | string | No | 2025-05-16 | |||
| data.results[].filing_type | string | No | FD Original | |||
| data.results[].filing_url | string | No | https://disclosures-clerk.house.gov/public_disc/financial-pdfs/2025/10075701.pdf | |||
| data.results[].filing_year | integer | No | 2025 | |||
| data.results[].member | string | No | Pelosi, Nancy | |||
| data.results[].office | string | No | CA12 | |||
| data.results[].year_kind | string | No | filing, election | filing | ||
| data.sort | string | No | filing_year_desc | |||
| data.source_url | string | No | https://disclosures-clerk.house.gov/FinancialDisclosure/ViewMemberSearchResult | |||
| data.to | string | No | 2025 | |||
| data.total | integer | No | 20 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/congress/stock-disclosures?chamber=house&state=AK&senator_state=AK&candidate_state=AK&filer_type=member&report_type=annual&sort=name_asc&page=1&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"