Returns congressional roll-call vote metadata (House + Senate) from api.congress.gov
Returns congressional roll-call vote metadata (House + Senate) from api.congress.gov. Use this when the user asks about: recent votes in either chamber, votes on a specific bill, votes by date range, or to chain to per-member positions via the source_data_url. Sources: api.congress.gov v3 for House votes; senate.gov XML (legislative/LIS/roll_call_lists/) for Senate votes — joined into one collection. Captures roll-call (recorded) votes only — voice votes and unanimous-consent passages aren't roll calls and don't appear here. v1A returns vote-level metadata: chamber, roll call number, vote type, result, the legislation being voted on (linked via bill_id), and links to the Clerk's authoritative XML data. Per-member positions (yea/nay/present/not voting per bioguide_id) live in the XML at source_data_url; agents fetch that directly when they need member detail. v1.1 will add a separate roll_call_member_votes tool/ collection for queryable per-member positions. Vote identifiers are stable composite keys: '{chamber}-{congress}- {session}-{rcNumber}', e.g., 'house-119-1-240' or 'senate-119-1-15'. Common vote_type values: 'Yea-And-Nay' (regular recorded vote), '2/3 Yea-And-Nay' (suspension of rules, requires 2/3 majority), 'Recorded Vote', 'Quorum'. Common result values: 'Passed', 'Failed', 'Agreed to', 'Rejected', 'Motion Agreed To', 'Motion Failed'. When a vote is on a bill, legislation_type + legislation_number are populated and bill_id is set to the composite key — use that to join to get_bills. For procedural votes (motion to recommit, motion to adjourn, etc.), those fields may be empty. Amendment + Senate detail: House votes ON AN AMENDMENT carry amendment_number, amendment_author (sponsor + label), and amendment_type (e.g. 'HAMDT'). Senate votes carry vote_title (descriptive title — e.g. a confirmation or motion), measure (the specific measure a question references, e.g. 'S.Amdt. 5740'), and en_bloc_matters[] (one {issue, question, result} per matter when a batch of nominations is decided en bloc). All are empty / [] where not applicable.
Request
- Base URL: https://api.keyvex.com
- URL: https://api.keyvex.com/v1/roll-call-votes
- Auth: API key in header x-api-key
Query parameters
Composite vote identifier ('{chamber}-{congress}-{session}-{rcNumber}', e.g., 'house-119-1-240'). Direct doc lookup, fastest path.
Congress number (e.g., 119).
Session within the Congress. Session 1 = first calendar year of the Congress; Session 2 = second year.
Filter to House or Senate roll calls.
Filter to votes on a specific bill (composite key like '119-HR-134'). Use to chain a bill lookup → votes on that bill.
Filter to votes on a specific legislation type.
Substring match against result text (e.g., 'passed', 'failed', 'agreed').
Vote-start date lower bound (ISO YYYY-MM-DD inclusive).
Vote-start date upper bound (ISO YYYY-MM-DD inclusive).
Default: start_date (most recent votes first).
Default: desc.
Maximum votes to return. Default 50, max 500.
Response
JSON envelope: { results: [...], count, has_more }.
Changes
No recorded changes to this operation across all 1 revision of this API.