The President of the United States—the leader of the free world—just chastised a staunch U.S. ally and democratically-elected foreign leader for defending his country against a brutal dictator. And he did it in the Oval Office.
Embarrassing and dangerous.

Congress Member Profile|U.S. Senator|Democrat|New Mexico
Martin Heinrich
SoupScoreanalysis-first civic rating · view full breakdown
Loading…
Voting Record — 890
Yes34%
No62%
Present0%
Not Voting4%
Party align93%
Cross-party6%
SoupScore
District Map
Senate District (Statewide)
U.S. Census Bureau boundary data.
Social & Web
External Resources

Martin Heinrich
U.S. SenatorDemocratNew Mexico
SoupScore
Martin's ATmosphere Activity
20 recent posts · 55 sponsored · 281 cosponsored
Recent ATmosphere posts, sponsorships, and cosponsorships.
You know the people who make sure you get severe weather warnings when there’s a flood or a big storm coming? Trump-Elon just fired hundreds of them. Making us all less safe, to skim more $ for tax handouts to their billionaire donors. apnews.com/article/nati...
In New Mexico, Trump-Musk’s illegal firings will limit access to Carlsbad Caverns National Park, make the park less safe, threaten local economies driven by outdoor recreation, and cut off services like ranger-led tours and school field trips. www.usatoday.com/story/news/n...
30% of the federal workforce is made up of veterans. If you run the numbers, this President has fired tens of thousands of vets. This isn’t how to make America great.
This is happening all over the country. The people who take care of your public lands are being laid off–including the ones who help us fight fires–just when we’re going to need them most. www.kuer.org/politics-gov...
Glad to see USDA is listening to my calls to bring Avian flu under control by starting to vaccinate laying hens.
Wish RFK wasn’t simultaneously disbanding the effort to vaccinate people from the seasonal flu…. 🐓💉🤧
Republicans’ Plan:
Step One: Fire thousands of workers who manage our public lands
Step Two: Say these lands aren’t being managed and need to be transferred to states
Step Three: Sell the lands off to the highest bidder
www.outdoorlife.com/conservation...
Reposted bySenator Martin Heinrich
“Clearly, we need to put an end to this stunt that will fuel a REAL energy emergency, kill thousands of jobs, and raise electricity costs on American families.”
@senatorheinrich.bsky.social and @kaine.senate.gov are working to protect working families and stop Trump’s sham “energy emergency” 👏
Reposted bySenator Martin Heinrich
Trump is the energy emergency—and he’s killing jobs and raising costs. My joint statement with @senatorheinrich.bsky.social regarding Republicans’ rubber-stamping of Trump’s war on affordable, American-made energy:
Reposted bySenator Martin Heinrich
Secretary of Defense Hegseth says he doesn’t know if Russia invaded Ukraine.
This you?
Trump is about to stick New Mexicans with higher costs on…
just about everything.
www.cnbc.com/2025/02/25/h...
Ben Archer Health Center is turning away KIDS & patients without birth certificates to prove citizenship, at school clinics and other clinics.
This is NOT okay.
We have a measles outbreak and skyrocketing grocery prices, and Donald Trump is focusing on THIS?!
"Steal from the poor, give to the rich." – House GOP
Fact: 94% of electricity added to the grid last year was clean
Fact: Electricity demand is surging
Fact: Trump is stalling clean energy projects
Get ready for your ⚡️ bill to go ⬆️
Trump’s war on the West is jeopardizing New Mexico’s $3.2B outdoor recreation economy. www.bizjournals.com/albuquerque/...
Can you name one thing that Trump has done to bring down soaring costs…? Me neither. www.cnn.com/2025/02/21/e...
Trump's border patrol agents should focus on solving real problems like going after the cartels responsible for driving the fentanyl crisis that's killing our children and ripping apart families.
Not harassing our kids on their way to a swim meet. www.kob.com/new-mexico/s...
Want to resist Trump? Get vaccinated!
✅ Flu
✅ COVID
✅ Measles
SoupScore Breakdown
Loading analysis metrics…
Voting History890 total votesExpandCollapse
Voting History
890 total votes
Recent roll calls with party-majority context so it is easier to scan how this member tends to vote.
| Date | Bill | Question | Position | Party Maj | Align? | Result |
|---|---|---|---|---|---|---|
| 2025-08-02 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (52-44) |
| 2025-08-02 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (49-45) |
| 2025-08-02 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (49-44) |
| 2025-08-02 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (51-45) |
| 2025-08-02 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (53-44) |
| 2025-08-02 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (52-41) |
| 2025-08-01 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (50-45) |
| 2025-08-01 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (51-43) |
| 2025-08-01 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (51-44) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | YES | YES | ✓ | Amendment Agreed to (81-15) |
| 2025-08-01 | H.R. 3944 (119th) | Final passage | YES | YES | ✓ | Bill Passed (87-9, 3/5 majority required) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | YES | YES | ✓ | Amendment Agreed to (87-9, 3/5 majority required) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | NO | NO | ✓ | Amendment Rejected (21-75) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | NO | NO | ✓ | Amendment Rejected (15-81) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | NO | NO | ✓ | Amendment Rejected (14-81) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | YES | YES | ✓ | Amendment Rejected (45-50) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | YES | YES | ✓ | Amendment Rejected (42-53) |
| 2025-08-01 | H.R. 3944 (119th) | Vote on amendment | YES | YES | ✓ | Amendment Rejected (44-51) |
| 2025-08-01 | — | Motion (Motion to Waive All Applicable Budgetary Points of Order Re: Merkley Amdt. No. 3114) | YES | YES | ✓ | Motion Rejected (44-51, 3/5 majority required) |
| 2025-08-01 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (52-45) |
| 2025-08-01 | — | Confirm nominee | YES | NO | ✕↔ | Nomination Confirmed (54-43) |
| 2025-08-01 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (52-44) |
| 2025-08-01 | — | End debate | YES | NO | ✕↔ | Cloture Motion Agreed to (55-41) |
| 2025-07-31 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (52-45) |
| 2025-07-31 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (52-45) |
| 2025-07-31 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (52-44) |
| 2025-07-31 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (52-45) |
| 2025-07-31 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (53-44) |
| 2025-07-31 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-44) |
| 2025-07-31 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (53-45) |
| 2025-07-31 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (59-39) |
| 2025-07-31 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (52-45) |
| 2025-07-31 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-41) |
| 2025-07-30 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-44) |
| 2025-07-30 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (59-38) |
| 2025-07-30 | S.J. Res. 34 (119th) | Motion to Discharge S.J.Res. 34 | YES | YES | ✓ | Motion to Discharge Rejected (24-73) |
| 2025-07-30 | S.J. Res. 41 (119th) | Motion to Discharge S.J.Res. 41 | YES | YES | ✓ | Motion to Discharge Rejected (27-70) |
| 2025-07-30 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-44) |
| 2025-07-30 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (52-44) |
| 2025-07-30 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-44) |
| 2025-07-30 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (53-45) |
| 2025-07-30 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-47) |
| 2025-07-29 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (50-49) |
| 2025-07-29 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (54-44) |
| 2025-07-29 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (53-45) |
| 2025-07-29 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (51-47) |
| 2025-07-29 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (52-47) |
| 2025-07-29 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (51-47) |
| 2025-07-29 | — | End debate | NO | NO | ✓ | Cloture Motion Agreed to (51-47) |
| 2025-07-29 | — | Confirm nominee | NO | NO | ✓ | Nomination Confirmed (50-47) |
Alignment stats consider only votes where a clear yes/no majority existed for the legislator's party. Cross-party marks divergence where the vote matched the opposite party majority. ↔ indicates cross-party divergence.