Browse the bulk data directory structure: GET https://www.govinfo.gov/bulkdata/json/BILLSTATUS/{congress} (e.g., /119) to list the available sessions and bill-type subdirectories
Navigate to a specific bill type: GET https://www.govinfo.gov/bulkdata/json/BILLSTATUS/{congress}/{session}/{type} (e.g., /119/1/hr) to list individual bill XML file entries
Download a specific bill status XML: GET https://www.govinfo.gov/bulkdata/BILLSTATUS/119/1/hr/BILLSTATUS-119hr1.xml
Parse the XML to extract: billType, billNumber, latestAction, actions (with actionDate and actionCode), committees, sponsors, cosponsors, and subjects
For bulk monitoring, use the RSS feed at https://www.govinfo.gov/rss/billstatus.xml which publishes new entries as bills are updated throughout the legislative day
Cross-reference with the GovInfo packages API: GET https://api.govinfo.gov/collections/BILLS?pageSize=100&api_key={key} to retrieve the full bill text PDFs and XML linked from each BILLSTATUS record
Known gotchas
Bulk XML files are updated within 24 hours of congressional action but are not real-time — do not rely on them for same-day legislative monitoring; use the govinfo.gov RSS feeds for faster notification
BILLSTATUS XML structure changed between the 116th and 117th Congresses; parsers written for older congresses may break on newer files due to added or restructured XML elements
The GovInfo packages API requires a free api.data.gov API key while the bulkdata URLs are keyless — mixing both approaches in the same pipeline requires handling two different auth schemes
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp