Congressional trades

Securities transactions that members of the U.S. House and Senate and their spouses and dependents report under the STOCK Act, one row per transaction of each periodic transaction report: from the House Clerk's financial disclosure site and the Senate's Electronic Financial Disclosure system, from 2012 (sparse before 2014). Refreshed every six hours; members have up to 45 days to report, so transaction dates trail by days to weeks. Rows keep the filed value range (amount_min, amount_max in USD; no exact amount is disclosed), the asset description and comment as filed, the owner, and the disclosure date and delay; a trade is public from disclosed_on. instrument and company_id link the US listing a reported ticker named on the transaction date when the listing's name agrees with the asset description (for options, the underlying listing), so symbols and instrument_ids select a security's trades; bonds, private holdings and unresolved tickers have none. Members are identified by Bioguide ID where known (official_id). A transaction date filed in a year after the disclosure (3031 for 2021) is read in the disclosure's year, or the year before when it would otherwise follow the disclosure. The source does not flag amended reports: an amendment that changes a row publishes a new revision of it, and a row it drops is withdrawn (as_of before the change still returns it). Party affiliation is not reported. Default order: transaction_date ascending, id ascending. Omitting entity selectors returns the entitled universe; explicit unauthorized selectors return 403. Data is delivered from validated canonical batches; a connected dataset with nothing published for the key's markets yet returns 503. Access requires the operation capability on the API key.

GET/v1/congressional-trades
Required capability
congressional-trades.read
Data timing
As published by the source
Credits
5 credits per request.
Live endpoint. Request examples query live data with your API key; response examples are illustrative. History and coverage vary by dataset and plan; see dataset coverage.

Parameters

company_idsstringoptional · query
Filter by issuer IDs. May be combined with instrument selectors; filters intersect, except on issuer-level datasets (statements, segments, estimates, earnings, insider transactions), where an instrument selector is read as its company and takes the place of company_ids, so results cover every share class.
instrument_idsstringoptional · query
Filter by stable instrument IDs. IDs and symbols may not be combined.
symbolsstringoptional · query
Convenience lookup for exchange-listed instruments as MIC:TICKER or a bare ticker, which resolves to the exchange listing that ticker; resolves at symbol_at. The MIC and the ticker are case-insensitive, and two spellings of one listing (AAPL and XNAS:AAPL) count as a repeated value. A bare ticker that names no listing as written is also read in the common vendor spellings: with an exchange suffix (RY.TO, SHEL.L, VOD.LSE, BHP.AX), ^GSPC for INDEX:GSPC, and EURUSD=X or EURUSD for FOREX:EUR-USD. A ticker may contain a space (BAC PRL) but not start or end with one. A request in which no symbol resolves returns 404 symbol-not-resolved; otherwise each symbol that does not resolve, or resolves to a listing with no rows for the request (no-data), is an entry of meta.errors. IDs and symbols may not be combined.
symbol_atstringoptional · query
Resolve symbols as they were assigned at the end of this UTC date (YYYY-MM-DD); defaults to as_of. Only listings the security master holds resolve: it was built in September 2026 and records delistings from then on, so most issuers delisted earlier, such as TWTR or SIVB, resolve at no date. Only valid with symbols.
fromstringoptional · query
Inclusive lower bound on transaction_date.
tostringoptional · query
Inclusive upper bound on transaction_date; must be on or after from, so from equal to to selects one day.
chamberstringoptional · query
Congressional chamber.

housesenate

official_idsstringoptional · query
Filter by member: Bioguide IDs or the official_id of the rows.
typestringoptional · query
Reported transaction type.

purchasesaleexchangeother

as_ofstringoptional · query
Knowledge cutoff as a UTC date (YYYY-MM-DD): the response reflects what was known by the end of that day. Defaults to now; cannot be in the future. A date from before the dataset's knowledge history returns 422 point-in-time-unavailable naming the earliest one, which GET /v1/datasets lists as earliest_as_of.
known_fromstringoptional · query
First UTC date (YYYY-MM-DD, inclusive) on which a revision became known.
known_tostringoptional · query
Last UTC date (YYYY-MM-DD, inclusive) on which a revision became known; on or after known_from.
orderstringoptional · query
Direction on transaction_date; ties use ID ascending.

ascdesc

Default: asc
limitintegeroptional · query
Maximum records per page.Default: 100
cursorstringoptional · query
Opaque cursor, expires after one hour; binds filters, order, resolved as_of, account/key and entitlement. Repeat the original query unchanged.
formatstringoptional · query
Response format. csv returns the data rows with a header row, for spreadsheet functions such as IMPORTDATA; nested fields become dotted columns and lists one JSON array cell, the next page cursor is returned in X-Next-Cursor and meta.errors in X-Meta-Errors. A result without rows is the header row alone, listing the documented fields of a row. Default json, or csv when format is omitted and the Accept header ranks text/csv above JSON; a format the Accept header does not admit returns 406 not-acceptable.

jsoncsv

Response fields

Returns data as an array of records. All example values are illustrative.

idstring
Record identifier, stable across revisions.
official_idstring
Stable identifier of the member: the Biographical Directory of the U.S. Congress (Bioguide) ID when one is known, otherwise chamber:surname-forename from the name as filed.
bioguide_idstring · null
Bioguide ID of the member, as the report names it or as another report from the same chamber names a member of the same name; null when none does.
official_namestring
Member name as filed.
chamberstring
US chamber.

housesenate

statestring · null
Two-letter USPS code of the state or territory a representative serves; null when the report does not state it, as Senate reports do not.
districtinteger · null
Congressional district a representative serves; null for senators and when not stated.
ownerstring
Reported owner: the member, the spouse, a dependent child, jointly held, or not stated.

selfspousedependentjointunknown

instrumentobject
instrument
company_idstring · null
Issuer of the linked instrument; null when instrument is null.
asset_descriptionstring
Original asset description as filed.
asset_typestring
Reported asset class. Exchange-traded and mutual funds are reported as stock; other covers private funds, partnerships and assets the report does not classify.

stockstock_optionbondother

transaction_datestring
transaction date
disclosed_onstring
Date the report was filed, when the transaction became public.
disclosure_delay_daysinteger · null
Calendar days from transaction_date to disclosed_on; the STOCK Act allows 45. Null when the filed transaction date follows the disclosure.
typestring
Reported transaction type; partial sales are sale.

purchasesaleexchangeother

amount_minobject
amount min
amount_maxobject
amount max
commentstring · null
Free-text note filed with the transaction.

Response metadata

Responses include meta.timezone. Dataset responses include next_cursor; health and exports have their own metadata. Request tracing uses the X-Request-ID header.

Read the shared data conventions

When something goes wrong

An empty data: [] is a successful query with no matching records. Invalid symbols, permissions and malformed parameters produce an RFC 9457 problem with an actionable detail.

Error codes & retry guidance

Plans

Requires congressional-trades.read. Access, recency and history depth come from the plan definitions the API enforces.

PlanAccessRecencyHistory
FreeNot included——
DeveloperNot included——
ProIncludedAs published15 years
CommercialIncludedAs publishedFull history
ScaleIncludedAs publishedFull history

History is how far back a plan may request. How far records actually go for a symbol is history_from in dataset coverage. Nothing is real-time. Compare plans