| search_bill_textA | Full-text search of a bill's statutory text (bill text / legislative text), parsed from
GovInfo Bill DTD XML with segment-level FTS5, returning matching sections with the
U.S. Code and Public Law citations they amend.
Use this to answer "what does bill X say about Y" without reading the whole bill.
Queries match as LITERAL PHRASES WITH STEMMING -- not bag-of-words, and not semantically.
A query hits only where the bill contains that phrase verbatim, so a description of a topic
finds nothing: "Space Force end strength" returns zero against a bill containing both "End
strengths for active forces" and "Space Force". Prefer several short phrases you expect to
appear verbatim, plus synonyms, in one call, e.g. ["icebreaker", "polar security cutter"];
matched_queries reports which phrasing produced each hit, so you can drop the dead ones next call.
A query that matches nothing gets an entry in query_diagnostics saying why, so zero hits is
readable rather than ambiguous. verdict "phrasing" means every term IS in the bill but not as
this contiguous phrase -- rephrase, do not conclude the bill is silent. verdict "absent_term"
means absent_terms appear nowhere in the bill, so no rephrasing of them will help. terms shows
the stemmed tokens actually searched ("Force" -> "forc"), which is where a phrase stops
meaning what you typed.
Knowing a provision as codified law does NOT establish where it sits in THIS bill. Division,
title, and section numbers are properties of this document, and these tools are the only
source for them -- answering a bill-location question from prior knowledge produces a
confident, correctly-quoted, wrongly-cited answer. Call the tool instead.
If "quoted" appears in match_contexts, the hit may include language the bill is removing,
even when "operative" also appears; presence of "quoted" governs. Each amends entry is
{kind: "usc"|"public_law", cite}. amends is a convenience, never a complete list of what a
section amends: it resolves no named Acts (including the IRC by bare section number), no
chapter- or title-level amendments, and no non-U.S. Code targets. A NON-EMPTY amends can
still be short -- a populated list is not evidence it is the whole list, and nothing
distinguishes three-of-three from three-of-four. Treat it as citations found, not citations
present; use is_amendatory and match_contexts to identify amendatory text, and read the
section to enumerate its targets. max_hits is clamped to 1-50.
|
| get_bill_sectionA | Retrieve the full statutory text of a single bill section -- or an addressable sub-section
chunk -- parsed from the bill's GovInfo Bill DTD XML.
Call this after search_bill_text or get_bill_toc to read a specific section by its section_id
(e.g. "D:H/T:I/S:3501"). Fully-qualified section ids and chunk ids resolve directly; a bare
section number (e.g. "101") resolves only when it is unique across the bill. Every id
get_bill_toc returns resolves here, including structural containers such as a division,
title, or subtitle ("D:C/T:XXXI/ST:B"), which return their heading plus child descriptors
when the subtree exceeds max_bytes. The returned text
carries operative and quoted (amendatory) language in reading order; when the section is
subdivided, child chunk descriptors are included. Text is capped at max_bytes, measured as
UTF-8 encoded bytes of the returned text field, clamped to 1,000-100,000.
is_amendatory and amends describe the returned text. For a single unit they are the same
values a search_bill_text hit reports for that section_id; when the response assembles
several units (a subdivided section or a container that fit max_bytes), is_amendatory is
true if ANY included unit amends and amends is the union of their targets. When
is_amendatory is true, quoted language in text is matter the section INSERTS INTO or
STRIKES FROM existing law -- an instruction to change another statute, not a freestanding
requirement of this bill -- so present it as an amendment to the cited target, not as the
bill's own rule. Each amends entry is {kind: "usc"|"public_law", cite}. amends is citations
found, never a complete list: it resolves no named Acts, no chapter- or title-level
amendments, and no non-U.S. Code targets, so a non-empty list can still be short. A
heading-plus-children-descriptors response (subtree too large for max_bytes) reports the
addressed unit's own values; each child's text arrives labeled when fetched.
|
| get_bill_tocA | Get a shallow table of contents -- divisions, titles, subtitles, and sections -- for a bill's
statutory text from GovInfo, as a navigation aid for discovering the section_id values to pass
to get_bill_section or search_bill_text.
This is a navigation aid, not the answer path: it returns structure and headers, never the
statutory text itself. depth is clamped to 1-5 (default 2) and total nodes are capped at 500.
Two different things can be incomplete, and they are reported separately. depth_reduced is
true when the node cap served a shallower tree than you asked for -- compare depth against
requested_depth to see by how much. toc_truncated is true when more exists below what you
got, which includes the case where your depth was honored in full; toc_note then gives the
depth needed to reveal the rest, or says so when no depth can.
|
| billsA | Comprehensive Bills Tool - All bill operations in one focused interface.
FLEXIBLE BILL IDENTIFICATION (NEW):
Use bill_id for natural language references like 'HR 1234',
'H.R. 1234, 118th Congress', 'hr1234-118', 'S 456', etc. Always parses
to bill_type/bill_number; parses to congress too only when the
reference embeds one (see REQUIRED PARAMETERS below).
CORE OPERATIONS:
• Search & Discovery: search_bills, get_bills, get_recent_bills
• Details & Metadata: get_bill_details, get_bill_titles, get_bill_subjects
• Text & Content: get_bill_text, get_bill_text_versions
(for FULL bill text search/retrieval use the dedicated search_bill_text,
get_bill_section and get_bill_toc tools)
• Summaries: get_bill_summaries
• Relationships: get_bill_related_bills, get_bill_amendments
• Legislative Process: get_bill_actions, get_bill_committees, get_bill_cosponsors
• Date-Based: get_bills_by_date_range
SEARCH_BILLS (GovInfo full-text corpus search):
search_bills searches the full text of congressional bills -- every
version of every bill in the GovInfo BILLS collection -- ranked by
relevance. Parameters: keywords (required), congress, bill_type, limit,
page_token, fromDateTime, toDateTime. It does NOT take
offset/sort/format.
- Matching semantics: words are ANDed -- every term must appear in
the SAME document, so each added word strictly shrinks the result
set and can never grow it. Start with the distinctive minimum: the
fewest words that name the thing, and add terms only to cut a set
that came back too large. Do NOT add words describing the topic,
category, or what the bill does -- that is the natural way to
phrase a search and the usual cause of a starved result. Worked
example: "Radiation Exposure Compensation Act amendments
downwinders" returns 1 bill; dropping the two description words
returns 26, including the enacted vehicle. A small count means the
terms rarely co-occur, NOT that few such bills exist -- re-query
narrower before concluding anything. Synonyms do NOT broaden here:
unlike search_bill_text, which ORs its queries array and rewards
adding alternate phrasings, an added synonym on this path
intersects and discards.
- Do NOT quote bill names (quoted phrases measured to miss title
text); title:"..." / shorttitle:"..." for exact titles; OR / NOT
available; field operators pass through.
- keywords is required: blank or whitespace-only keywords are rejected
(invalid_parameters), never sent.
- Version discovery: each hit fronts the most authoritative matched
version (package_id, version, date_issued) and carries
matched_versions -- ONLY the versions whose text matched this query,
not the bill's complete version set. For a specific bill's COMPLETE
version set, call search_bills with fielded terms and no text words,
e.g. keywords="congress:119 billtype:s docnumber:1071" -- that
returns exactly the bill's versions. A pinned version that does not
exist still answers version_not_available (bill-text tools).
- Count semantics: total_version_matches counts matching VERSION
PACKAGES upstream and can exceed the number of distinct bills;
results_count counts the bills actually returned in this page.
- Pagination: pass next_page_token back verbatim as page_token; null
means the result set is exhausted. Pages can legally run short of
limit (version-heavy pages dedup below it). A bill whose version
records straddle a page boundary can rarely reappear on the next
page with the same identity -- dedup by congress/bill_type/
bill_number if walking pages.
- Fallback: when search_source is "recency_window_fallback", GovInfo
was unavailable (read fallback_trigger) and results are a
title/policy-area filter over the most recently updated bills, NOT
the corpus -- a zero there is not evidence a bill does not exist;
the window metadata says what was scanned.
- Time-bounding: fromDateTime/toDateTime bound the VERSION'S
PUBLICATION DATE on the corpus path (inclusive both ends; either
side may be given alone; ISO date or datetime, datetimes truncated
to the date) -- NOT congress.gov's update date. In fallback mode
the same bounds filter updateDate over the window instead, and the
response says so.
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress + bill_type + bill_number -- get_bill_details,
get_bill_titles, get_bill_subjects, get_bill_text,
get_bill_text_versions, get_bill_summaries, get_bill_related_bills,
get_bill_amendments, get_bill_actions, get_bill_committees,
get_bill_cosponsors. bill_id can substitute for bill_type +
bill_number, but only supplies congress itself when the reference
embeds one ('hr1234-118', 'HR 1234, 118th Congress') -- a bare
'HR 1234' still needs an explicit congress or the call fails the
same as if bill_id were omitted entirely.
• fromDateTime -- get_bills_by_date_range
• keywords -- search_bills (see SEARCH_BILLS above)
(get_bills, get_recent_bills need none of the above)
Args:
operation: Specific operation to perform (see list above)
bill_id: Flexible bill reference (e.g., 'HR 1234', 'H.R. 1234, 118th Congress', 'hr1234-118')
Parsed to populate bill_type and bill_number always, and
congress only if the reference embeds one -- pass congress
explicitly otherwise
keywords: search_bills: required full-text query (see
SEARCH_BILLS above for matching semantics)
congress: Congress number (118 for current, 119 for next)
bill_type: hr, s, hjres, sjres, hconres, sconres, hres, sres
bill_number: Specific bill number within type and congress
limit: Results limit (max 250 for API compliance)
page_token: search_bills only -- opaque pagination cursor from a
previous response's next_page_token, passed back verbatim
sort: updateDate+desc (newest first) or updateDate+asc (not for
search_bills, which is relevance-ranked)
fromDateTime/toDateTime: Date range (YYYY-MM-DDTHH:MM:SSZ;
search_bills: inclusive bounds on version publication date,
see SEARCH_BILLS above)
Returns:
Formatted results specific to requested operation
Examples:
Using flexible bill_id (congress embedded in the reference itself):
{"operation": "get_bill_details", "bill_id": "H.R. 1234, 118th Congress"}
{"operation": "get_bill_details", "bill_id": "hr1234-118"}
bill_id without an embedded congress still needs one explicitly:
{"operation": "get_bill_details", "bill_id": "HR 1234", "congress": 118}
Traditional parameters still work:
{"operation": "get_bill_details", "congress": 118, "bill_type": "hr", "bill_number": 1234}
|
| amendmentsA | Comprehensive Amendments Tool - All amendment operations in one focused interface.
CORE OPERATIONS:
• Search & Discovery: get_amendments, search_amendments
• Details & Metadata: get_amendment_details, get_amendment_sponsors
• Legislative Process: get_amendment_actions, get_amendment_amendments
• Content: get_amendment_text
SEARCH OPERATIONS:
- get_amendments: Core amendments API access with filtering
- search_amendments: filters the 250 most recently updated amendments
by purpose/description text (client-side; not full-text search)
DETAILS OPERATIONS:
- get_amendment_details: Complete amendment information and status
- get_amendment_sponsors: Sponsor and cosponsor information
PROCESS OPERATIONS:
- get_amendment_actions: Legislative actions and history
- get_amendment_amendments: Amendments to amendments (sub-amendments)
CONTENT OPERATIONS:
- get_amendment_text: Full amendment text and purpose
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress + amendment_type + amendment_number -- get_amendment_details,
get_amendment_sponsors, get_amendment_actions, get_amendment_amendments,
get_amendment_text (get_amendment_text also requires congress >= 117;
text isn't available for earlier Congresses)
(get_amendments, search_amendments need none of the above)
Args:
operation: Specific operation to perform (see list above)
congress: Congress number (118 for current, 119 for next)
amendment_type: hamdt (House) or samdt (Senate)
amendment_number: Specific amendment number within type and congress
keywords: Search keywords for amendment content
limit: Results limit (max 250 for API compliance)
sort: updateDate+desc (newest first) or updateDate+asc
fromDateTime/toDateTime: Date range (YYYY-MM-DDTHH:MM:SSZ)
Returns:
Formatted results specific to requested operation
|
| treaties_and_summariesA | Treaties and Summaries Tool - Focused access to treaties and bill summaries.
TREATIES OPERATIONS:
• Search & Discovery: search_treaties
• Legislative Process: get_treaty_actions, get_treaty_committees
• Content: get_treaty_text
SUMMARIES OPERATIONS:
• Search & Discovery: search_summaries
TREATIES:
- search_treaties: Find treaties by congress and parameters
- get_treaty_actions: Legislative actions on treaties
- get_treaty_committees: Committee assignments for treaties
- get_treaty_text: Full treaty text and resolutions
SUMMARIES:
- search_summaries: Search bill summaries by keywords and congress
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress + treaty_number -- get_treaty_actions, get_treaty_committees,
get_treaty_text
(search_treaties, search_summaries need none of the above)
Args:
operation: Specific operation to perform (see list above)
congress: Congress number (118 for current, 119 for next)
treaty_number: Specific treaty number within congress
treaty_suffix: Treaty suffix identifier
keywords: Search keywords for content
topic: Topic filter for summaries
bill_type: Bill type filter for summaries (e.g., 'hr', 's')
limit: Results limit (max 250 for API compliance)
sort: updateDate+desc (newest first) or updateDate+asc
fromDateTime/toDateTime: Date range (YYYY-MM-DDTHH:MM:SSZ)
Returns:
Formatted results specific to requested operation
|
| search_membersC | Search for members of Congress by various criteria.
Args:
ctx: Context for API requests
name: Member name to search for (partial matches supported)
state: State code (e.g., 'CA', 'NY', 'TX')
party: Political party ('D', 'R', 'I')
chamber: Chamber ('House' or 'Senate')
congress: Congress number (e.g., 117)
current_member: Whether to only show current members (True/False)
limit: Maximum number of results to return
district: District number within the state (e.g., 10)
Returns:
Structured response with member information and metadata
|
| get_member_detailsB | Get detailed information about a specific member of Congress.
Args:
ctx: Context for API requests
bioguide_id: Unique bioguide identifier for the member (e.g., 'B000944')
Returns:
Detailed member information including biographical data, terms served, etc.
|
| get_member_sponsored_legislationA | Get legislation sponsored by a specific member of Congress.
Args:
ctx: Context for API requests
bioguide_id: Unique bioguide identifier for the member
limit: Maximum number of sponsored bills to return
offset: Zero-based offset for pagination
Returns:
List of bills and resolutions sponsored by the member
|
| get_member_cosponsored_legislationA | Get legislation cosponsored by a specific member of Congress.
Args:
ctx: Context for API requests
bioguide_id: Unique bioguide identifier for the member
limit: Maximum number of cosponsored bills to return
offset: Zero-based offset for pagination
Returns:
List of bills and resolutions cosponsored by the member
|
| get_members_by_congressA | Get members who served in a specific Congress.
Args:
ctx: Context for API requests
congress: Congress number (e.g., 118 for 118th Congress)
current_member: Whether to only show current members
limit: Maximum number of members to return
Returns:
List of members who served in the specified Congress
|
| get_members_by_stateA | Get members of Congress from a specific state.
Args:
ctx: Context for API requests
state_code: Two-letter state code (e.g., 'CA', 'TX', 'NY')
current_member: Whether to only show current members (defaults to True)
limit: Maximum number of members to return
Returns:
List of members from the specified state
|
| get_members_by_districtA | Get the member representing a specific congressional district.
Args:
ctx: Context for API requests
state_code: Two-letter state code (e.g., 'CA', 'TX', 'NY')
district: Congressional district number within the state
current_member: Whether to only show current member (defaults to True)
Returns:
Member(s) representing the specified district
|
| get_members_by_congress_state_districtA | Get the member representing a specific congressional district in a specific Congress.
Args:
ctx: Context for API requests
congress: Congress number (e.g., 118 for 118th Congress)
state_code: Two-letter state code (e.g., 'CA', 'TX', 'NY')
district: Congressional district number within the state
current_member: Whether to only include current members (default: True)
Returns:
Member who represented the specified district in the specified Congress
|
| search_committeesA | Search for / browse congressional committees.
Args:
ctx: Context for API requests
keywords: Optional keywords to search committee information. When omitted,
lists committees (optionally filtered by chamber/type).
chamber: Chamber ('House', 'Senate', or 'Joint')
committee_type: Type of committee ('Standing', 'Select', etc.)
congress: Optional Congress number (e.g., 119)
limit: Maximum number of committees to return
Returns:
List of matching committees with basic information
|
| get_committee_billsA | Get bills referred to or reported by a specific committee.
Args:
ctx: Context for API requests
committee_code: Official committee code (e.g., 'hsju', 'ssju')
chamber: Chamber of Congress ("house", "senate", or "joint").
If omitted, inferred automatically from the committee code prefix.
limit: Maximum number of bills to return
offset: Starting record (0-based) for explicit paging.
most_recent: When True (default), return the newest referrals first.
The endpoint is oldest-first, so this fetches the final page.
Returns:
List of bills associated with the committee
|
| get_committee_reportsA | Get reports issued by a specific committee.
Args:
ctx: Context for API requests
committee_code: Official committee code (e.g., 'hsju', 'ssju')
chamber: Chamber of Congress ("house", "senate", or "joint").
If omitted, inferred automatically from the committee code prefix.
limit: Maximum number of reports to return
offset: Starting record (0-based) for explicit paging.
most_recent: When True (default), return the newest reports first.
Returns:
List of reports issued by the committee
|
| get_committee_communicationsA | Get communications (letters, statements) from a specific committee.
Args:
ctx: Context for API requests
committee_code: Official committee code (e.g., 'hsju', 'ssju')
chamber: Chamber of Congress ("house", "senate", or "joint").
If omitted, inferred automatically from the committee code prefix.
limit: Maximum number of communications to return
offset: Starting record (0-based) for explicit paging.
most_recent: When True (default), return the newest communications first.
Returns:
List of communications from the committee
|
| get_committee_nominationsA | Get nominations referred to a specific committee.
Args:
ctx: Context for API requests
committee_code: Official committee code (e.g., 'HSJU', 'SSJU')
limit: Maximum number of nominations to return
offset: Starting record (0-based) for explicit paging.
most_recent: When True (default), return the newest nominations first.
Returns:
List of nominations referred to the committee
|
| voting_and_nominationsA | Congressional Voting and Nominations - Access House votes and presidential nominations.
HOUSE VOTING (6 operations):
• get_house_votes_by_congress/session, get_house_vote_details/enhanced
• get_house_vote_member_votes/xml - Individual member vote records
NOMINATIONS (7 operations):
• search_nominations, get_latest_nominations, get_nomination_details
• get_nomination_actions/committees/hearings/nominees, get_nominations_by_congress
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress -- get_house_votes_by_congress, get_nominations_by_congress
• congress + session -- get_house_votes_by_session
• congress + session + vote_number -- get_house_vote_details(_enhanced),
get_house_vote_member_votes(_xml)
• congress + nomination_number -- get_nomination_details,
get_nomination_actions, get_nomination_committees,
get_nomination_hearings
• congress + nomination_number + ordinal -- get_nomination_nominees
(search_nominations, get_latest_nominations need none of the above)
Key params: operation, congress, session, vote_number, keywords, nomination_number
Returns structured vote/nomination data with member details and legislative actions.
|
| records_and_hearingsA | Congressional Records and Hearings - Access legislative records, communications, and hearings.
CONGRESSIONAL RECORDS (3 operations):
• search_congressional_record/daily/bound - Search legislative records by date/volume
COMMUNICATIONS (8 operations):
• House: search_house_communications/requirements, get_details/matching
• Senate: search_senate_communications, get_senate_communication_details
• Committee: get_committee_communication_details
HEARINGS (5 operations):
• search_hearings, get_hearings_by_congress/chamber, get_hearing_details/content
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress -- get_hearings_by_congress
• congress + chamber -- get_hearings_by_congress_and_chamber
• congress + chamber + jacket_number -- get_hearing_details,
get_hearing_content
• congress + communication_type + communication_number --
get_senate_communication_details, get_house_communication_details
• congress + chamber + communication_type + communication_number --
get_committee_communication_details
• requirement_number -- get_house_requirement_details,
get_house_requirement_matching_communications
(search_congressional_record/daily/bound and every other search_*
operation need none of the above)
Key params: operation, year/month/day, keywords, congress, chamber, jacket_number
Returns structured record/hearing data with full text content and metadata.
|
| committee_intelligenceA | Congressional Committee Intelligence - Professional access to committee documents and activities.
COMMITTEE REPORTS (7 operations):
• get_latest/by_congress/by_type, get_report_details/text_versions/content
• search_committee_reports - Advanced analytics with chunking support
COMMITTEE PRINTS (6 operations):
• get_latest/by_congress/by_chamber, get_print_details/text_versions
• search_committee_prints - Document intelligence with filtering
COMMITTEE MEETINGS (6 operations):
• get_latest/by_congress/by_chamber/by_committee, get_meeting_details
• search_committee_meetings - Process intelligence with scheduling data
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress -- get_committee_reports_by_congress,
get_committee_prints_by_congress, get_committee_meetings_by_congress
• congress + chamber -- get_committee_prints_by_congress_and_chamber,
get_committee_meetings_by_congress_and_chamber
• congress + report_type -- get_committee_reports_by_congress_and_type
• congress + report_type + report_number -- get_committee_report_details,
get_committee_report_text_versions, get_committee_report_content
• congress + chamber + jacket_number -- get_committee_print_details,
get_committee_print_text_versions
• congress + chamber + committee_code --
get_committee_meetings_by_committee
• congress + chamber + event_id -- get_committee_meeting_details
(get_latest_committee_reports/prints/meetings and every search_*
operation need none of the above)
Key params: operation, congress, chamber, committee_code, report_type, event_id
Returns structured committee data with enhanced metadata and content chunking.
|
| research_and_professionalB | Congressional Research and Professional - Access CRS reports and enhanced Congress analytics.
CONGRESS INFORMATION (3 operations):
• get_congress_info - Basic Congress information and metadata
• get_congress_info_enhanced - Advanced analytics with detailed insights
• search_congresses - Historical Congress search with trend analysis
PROFESSIONAL RESEARCH (1 operation):
• search_crs_reports - CRS reports: exact report_number lookup, or a
title filter over the 250 most recently updated reports (not full-text)
REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• keywords -- search_congresses
• keywords or report_number (at least one) -- search_crs_reports
(get_congress_info, get_congress_info_enhanced need none of the above)
Key params: operation, congress, keywords, report_number, start_year, end_year
Returns professional-grade research data with enhanced analytics and historical insights.
|
| lawsA | Congressional Laws - enacted public and private laws (the /law endpoint).
OPERATIONS:
• get_laws: list enacted laws for a congress. Optional law_type ('pub' or
'priv') narrows to public or private laws.
• get_law_details: full detail for one law (needs congress, law_type, law_number).
Args:
operation: 'get_laws' or 'get_law_details'
congress: Congress number (e.g., 119) — required
law_type: 'pub' (public) or 'priv' (private); optional for get_laws,
required for get_law_details
law_number: The law's sequential number (required for get_law_details)
limit: Max results for get_laws (default 20)
offset: Pagination offset for get_laws
Examples:
{"operation": "get_laws", "congress": 119}
{"operation": "get_laws", "congress": 119, "law_type": "pub", "limit": 10}
{"operation": "get_law_details", "congress": 119, "law_type": "pub", "law_number": 1}
|