Senate.gov XML services
active Ingestion health: delivering Legislative · Tier 1 · XML index · Secretary of the Senate (LIS)
Official site (opens in a new tab) · All sources
What this source is
The Senate's officially documented directory of XML files: roll-call vote menus and individual votes, the committee hearings/meetings schedule, the floor schedule, and nine nomination-status files (pending, confirmed, withdrawn, failed — civilian and non-civilian). The only machine source for Senate votes.
Identity and registry record
- Registry id
senate-xml- Agency / parent organization
- Secretary of the Senate (LIS)
- Branch
- legislative
- Type
- XML index
- Status
- active
- Tier
- 1
- URL (home)
- https://www.senate.gov/general/common/generic/XML_Availability.htm (opens in a new tab)
- URL (index)
- https://www.senate.gov/legislative/LIS/roll_call_lists/vote_menu_119_2.xml (opens in a new tab)
- Registered
- 2026-07-28
- Registry notes
- Gate 3 (2026-07-31, live through the identified client): the menu answers 200 text/xml, 123,670 bytes, and lists the WHOLE session — 217 <vote> elements from 05-Jan to 30-Jul, so ingestion sees 100% of the Senate's recorded votes but must bound itself (8 fell inside the 7-day lookback that day: 1 index fetch + 8 records = 9 requests). Two coverage limits, both disclosed rather than papered over: (a) vote_date carries NO YEAR ('30-Jul') and vote_tally is present but EMPTY on all 217, so the tally exists only in the per-vote record, which is why wants_article() is True; (b) 2 of 217 rows are en-bloc confirmations carrying no issue/question/result — their title alone identifies them. Per-vote URL pattern vote{congress}{session}/vote_{c}_{s}_{NNNNN}.xml verified by fetching vote_119_2_00217.xml (200, 28,745 bytes, all 100 member positions). The index URL names the current congress/session and must be advanced when session 3 opens. Complements congress-gov-api, whose roll-call endpoint is House-only.
How we ingest it
- Channel
- XML index
- Method
- Conditional GET of the current session's roll-call vote menu; the senate-votes adapter bounds enumeration to config.INDEX_LOOKBACK_DAYS and fetches one per-vote XML record per in-window vote. Stored under the VOTES collection (GUIDE §3 recorded votes), never AGENCYPR.
- Adapter
- senate-votes
- Poll cadence
- about every 60 minutes while the collector runs
- Request budget
- the agency class: at most 1,500 requests per day shared across every agency web source, counted from the fetch log (failed requests count too)
- Politeness
- robots.txt is honored as observed — including each host's crawl-delay, exactly — and every request identifies itself as fapd/0.1 (Free Agentic Publication Digester; +https://fapd.info/bot.html; contact: hustleyourcity@gmail.com); a refusal is recorded, never evaded
- Capture and hash
- captured raw content is hashed (SHA-256) into the day's committed provenance manifest, hash-chained day to day (PROVENANCE.md)
Ingestion health
Ingestion health: delivering 8 item(s) in the last 14 days; most recent 2026-07-31; 0 of 130 request(s) to www.senate.gov returned no content.
This label has held since 2026-08-03T18:46:01Z (UTC) and was last re-checked 2026-08-03T19:51:47Z (UTC).
Counts are of our own requests, retries included. A 4xx or 5xx is the server declining to return content — that may be load, maintenance, on-demand generation, or a limit the publisher sets, and we cannot tell which from outside. Nothing here is a measurement of the publisher.
Ingestion statistics
These figures describe this project's ingestion of this source — items we recorded and requests we made — and nothing else. They are not a measurement of the publisher.
Last 24 hours
Last 24 hours: 25 request(s) (25 answered, 0 returned no content) · no items ingested
Last 14 days
Items ingested: 8 in 14 days (0.57 per day) · most recent 2026-07-31
Content length: 2,043 characters average, 2,026 median (shortest 1,984, longest 2,146)
Delivery mode: full — full article text, fetched from the item's own page
Our requests to www.senate.gov: 130 request(s) · 130 answered · 0 declined (4xx) · 0 server declined (5xx) · 0 no response — 0.0% returned no content
last answered request 2026-08-03T19:43:06.201+00:00 UTC.
8 item(s) in the last 14 days; most recent 2026-07-31; 0 of 130 request(s) to www.senate.gov returned no content.
All time
Our requests to www.senate.gov, all time (since 2026-08-01): 130 request(s) · 130 answered · 0 returned no content
Request counts begin 2026-07-30, the day this service went into production; earlier development-machine traffic is excluded. Counts before 2026-08-03 include unmarked source-probe traffic; probes are labeled and excluded thereafter.
Last 30 days, day by day
| Day | requests |
|---|---|
| 2026-07-30 | 0 |
| 2026-07-31 | 0 |
| 2026-08-01 | 54 |
| 2026-08-02 | 53 |
| 2026-08-03 | 23 |
| Day | items |
|---|---|
| 2026-07-05 | 0 |
| 2026-07-06 | 0 |
| 2026-07-07 | 0 |
| 2026-07-08 | 0 |
| 2026-07-09 | 0 |
| 2026-07-10 | 0 |
| 2026-07-11 | 0 |
| 2026-07-12 | 0 |
| 2026-07-13 | 0 |
| 2026-07-14 | 0 |
| 2026-07-15 | 0 |
| 2026-07-16 | 0 |
| 2026-07-17 | 0 |
| 2026-07-18 | 0 |
| 2026-07-19 | 0 |
| 2026-07-20 | 0 |
| 2026-07-21 | 0 |
| 2026-07-22 | 0 |
| 2026-07-23 | 0 |
| 2026-07-24 | 0 |
| 2026-07-25 | 0 |
| 2026-07-26 | 0 |
| 2026-07-27 | 0 |
| 2026-07-28 | 0 |
| 2026-07-29 | 0 |
| 2026-07-30 | 0 |
| 2026-07-31 | 8 |
| 2026-08-01 | 0 |
| 2026-08-02 | 0 |
| 2026-08-03 | 0 |
| Day | ms |
|---|---|
| 2026-07-30 | — |
| 2026-07-31 | — |
| 2026-08-01 | 245 |
| 2026-08-02 | 190 |
| 2026-08-03 | 202 |