ParseForge Scrapers

Congress.gov Bills Scraper

parseforge/congress-gov-bills-scraper

OtherNews & media

Scrapes US federal bills and resolutions from Congress.gov by congress number and bill type. Returns each bill as a flat row with title, sponsor, latest action, and full legislative metadata.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
95
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Congress.gov Bills Scraper

Scrape US federal bills and resolutions from Congress.gov by congress number, bill type, or sort order, up to a million per run. Every bill comes with its title, sponsor, latest action, and full legislative metadata. No complex API setup. Export to CSV, JSON, Excel, or XML.

The official Congress.gov API requires registration, key management, and careful pagination handling. This Actor reads the public bill feeds directly, filtering by congress number and bill type, and returns each match in one consistent, flat schema. It is built for policy analysts, lobbyists, and researchers who need structured legislative data without writing API code.

Who uses it What they scrape Congress.gov for
Government affairs professionals Monitoring introduced legislation that affects their industry or client.
Policy researchers Building datasets of bill introductions and actions for quantitative analysis.
Journalists Tracking the progress of specific bill types through a given Congress.
Lobbyists Getting early alerts on new resolutions and bills in their issue area.

What it does

This Actor collects US federal bills and resolutions from Congress.gov and returns each one as a flat row with its metadata.

  • ๐Ÿ“‹ Bill type filter: restrict results to House bills, Senate bills, joint resolutions, concurrent resolutions, or simple resolutions.
  • ๐Ÿ”ข Congress number filter: target a specific Congress, such as the 118th or 119th, or pull from all available sessions.
  • ๐Ÿ”„ Sort control: order results by the most recently updated bills first, or by the oldest updates first.
  • ๐Ÿ”‘ API key support: use the free DEMO_KEY for testing, or bring your own congress.gov API key for higher rate limits.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Congress.gov data

๐Ÿ“ˆ Monitor new legislation.

A government affairs team runs the Actor weekly for the current Congress, filtering for House and Senate bills, to update their internal tracking sheet with the latest introductions.

๐Ÿ“Š Build a policy research dataset.

A think tank researcher collects all House and Senate joint resolutions from the last three Congresses to analyze trends in constitutional amendment proposals.

๐Ÿ“ฐ Power legislative news coverage.

A newsroom developer pulls the newest bills each morning to populate a public-facing bill tracker on their website.

๐Ÿ›๏ธ Support lobbying workflows.

A lobbying firm scrapes all bills from the current Congress, then filters the resulting CSV for keywords relevant to their clients' industries.

Why choose this scraper

What you get
No API coding The Actor handles authentication, pagination, and rate limits for you.
Fixed flat schema Every bill returns the same fields, ready for spreadsheets or databases.
Official source Data comes directly from Congress.gov, the authoritative site for US legislation.

How it compares

This Actor focuses on fast, high-volume bill collection with a simple filter set. The competitors below offer broader data types like members and votes, or different filtering approaches.

Feature ParseForge Congress.gov Intelligence Congress.gov Legislation Tracker Congress.gov Scraper
Filter by bill type Yes, all 8 types Not listed Not listed Not listed
Filter by congress number Yes Yes Not listed Not listed
Up to 1,000,000 bills per run Yes Not listed Not listed Not listed
Member profiles Not listed Yes Not listed Yes
Committee data Not listed Yes Not listed Yes
AI relevance scoring Not listed Yes Not listed Not listed

Configure the run

Drive the Actor by congress number and bill type, alone or together, and sorting runs as each bill is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Congress.gov Bills Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Congress.gov through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/congress-gov-bills-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that the congress number you entered exists and that bills of the selected type were introduced in that session. Also, if you left the API key empty, the DEMO_KEY may be throttled; wait a few minutes and try again, or add your own key.

The run is very slow or times out.

The DEMO_KEY has strict rate limits. Request a free personal API key at https://api.congress.gov and enter it in the optional field. This will significantly increase the allowed request rate.

I got a 403 or authentication error.

Verify that your API key is entered correctly with no extra spaces. If you are using the DEMO_KEY by leaving the field blank, the service may be temporarily restricting anonymous access. Try again later or register for a free key.

The output has fewer bills than I expected.

The maxItems setting caps the total collected. Increase it if you hit the limit. Also, confirm that your congress number and bill type combination covers the bills you want; a single bill type in one congress typically yields a few hundred to a few thousand results.

Some fields are empty in the output.

Not every bill has every metadata field populated. For example, a newly introduced bill may not yet have committee referrals or a latest action beyond its introduction. Empty fields reflect the current state of the official record.

FAQ

Question Answer
What is the difference between a bill and a resolution? Bills (HR and S) propose new laws and require passage by both chambers and the President's signature. Joint resolutions (HJRes, SJRes) follow a similar path and can propose constitutional amendments. Concurrent resolutions (HConRes, SConRes) express the sentiment of both chambers without the force of law. Simple resolutions (HRes, SRes) address matters of a single chamber.
Do I need a congress.gov API key? No. The Actor works out of the box with the public DEMO_KEY. However, that key is heavily rate-limited. For production use or large runs, get a free personal key at https://api.congress.gov and enter it in the optional field.
Can I scrape bills by subject or keyword? The current version filters by congress number and bill type. For keyword or subject searches, you can download the full dataset and filter it locally, or use one of the related Actors that offer search-based collection.
What data fields does each bill record include? Each record includes the bill number, title, sponsor, cosponsors, introduced date, latest action, committee referrals, and policy area, among other metadata. The exact field list is shown in the sample output on the Actor's page.
How many bills can I scrape in one run? You can set the maximum up to 1,000,000 bills. A typical two-year Congress introduces around 10,000 to 15,000 bills and resolutions, so a single run can easily cover an entire session.
Does this Actor get bill text or metadata? This Actor collects the legislative metadata: titles, sponsors, actions, and status. It does not fetch the full text of the bill. For full text, you would need a separate download step from Congress.gov.
Can I filter by sponsor or cosponsor? The input filters are congress number and bill type. To find bills by a specific member, collect the full set for a congress and filter the output by the sponsor or cosponsor fields in your spreadsheet or database.
What export formats are supported? You can export your results to CSV, JSON, Excel, or XML directly from the Apify dataset, or push them to a cloud storage integration like Google Drive or S3.
How often is the data updated? The Actor reads live data from Congress.gov on each run. Bills are updated as they move through the legislative process, so running the Actor daily gives you the latest actions and status changes.
Can I schedule this Actor to run automatically? Yes. Apify's scheduler lets you set the Actor to run hourly, daily, or weekly. Combined with the sort order set to newest first, you can maintain a continuously updated dataset of recent legislative activity.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Library of Congress. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Maximum number of bills to collect per run. 10
congress integer e.g. 118, 119. Leave empty for all. not set
billType string (8 options) Bill type slug not set
sort string (2 options) Sort order updateDate+desc
apiKey string Get a free key at https://api.congress.gov. Leave empty to use DEMO_KEY (rate-limited). not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~congress-gov-bills-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Congress.gov Bills Scraper on Apify All scrapers