OpenStates Legislation Crawler - 50-State Bill Tracker avatar

OpenStates Legislation Crawler - 50-State Bill Tracker

Pricing

Pay per event

Go to Apify Store
OpenStates Legislation Crawler - 50-State Bill Tracker

OpenStates Legislation Crawler - 50-State Bill Tracker

Track state legislation across all 50 US states via the Open States API. Filter by state, session, subject, keyword, or date. Outputs bill metadata, sponsor details, vote records, and legislative actions -- ideal for AI policy monitoring, compliance tracking, and government intelligence.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Extract state legislation records from the Open States API v3 covering all 50 US states, Washington DC, and Puerto Rico. Filter bills by jurisdiction, session, subject, keyword, or date range. Outputs bill metadata, primary sponsors, legislative action history, vote records, and bill text version links -- ideal for AI policy monitoring, regulatory compliance tracking, and government intelligence workflows.

Features

  • Track legislation across all 50 US states + DC + PR via the Open States API v3
  • Filter by state, legislative session, subject tag, bill type, full-text keyword, or last-updated date
  • Extract sponsor names and classifications (primary/co-sponsor), with primary sponsor highlighted
  • Get full legislative action history per bill: date, chamber, and description of each action
  • Include vote records with yes/no/absent counts per chamber vote
  • Include bill text version links (introduced, amended, enrolled) as formatted URL strings
  • Delta mode: updatedSince field enables daily polling workflows (only new/changed bills)
  • Pay-per-event pricing at roughly $0.001 per record

Authentication

This actor requires a free Open States API key. Register at https://openstates.org/accounts/signup/ using a GitHub, Google, Twitter, or Facebook account. After registration, visit your profile page to copy your API key.

Provide the key via the apiKey input field, or store it as the OPENSTATES_API_KEY actor environment variable for scheduled runs.

Who Uses Open States Data and Why

  • Policy monitoring teams -- track AI, healthcare, climate, or other subject-tagged bills across all states in real time
  • Lobbying and government affairs teams -- monitor bills by session, sponsor, or subject that affect your industry
  • Compliance and legal teams -- receive alerts when bills in your regulatory space advance through committee or pass
  • Political researchers and journalists -- analyze legislative trends, sponsor patterns, and voting records across jurisdictions
  • Civic tech developers -- power constituent alert systems, legislative calendars, and policy comparison tools

How It Works

  1. You provide your Open States API key plus at least one filter: a state name, a keyword, or a subject tag.
  2. The crawler queries v3.openstates.org/bills with page-based pagination (20 bills per page, max ~30 requests/minute on the free tier).
  3. Each bill is transformed into a clean output record: flat strings for classification/subjects, pipe-delimited strings for actions/votes/versions.

Input Parameters

FieldDescriptionDefault
apiKeyYour Open States API key (required)--
jurisdictionState name or abbreviation (e.g. California, ca)California
sessionLegislative session (e.g. 2025-2026)all
subjectSubject tag filter, comma-separated (e.g. artificial intelligence)--
queryFull-text keyword search--
classificationBill type: bill, resolution, etc.all
updatedSinceDelta mode: only bills updated on/after this date (YYYY-MM-DD)--
sortOrderSort order for resultsupdated_desc
includeVotesInclude legislator vote records per billfalse
includeVersionsInclude bill text version linkstrue
maxItemsMaximum number of bills to return (0 = unlimited)15

Output Fields

Each output record contains:

FieldDescription
bill_idOpen States internal OCD bill identifier
jurisdictionState or territory name
state_abbrTwo-letter state abbreviation (CA, TX, etc.)
sessionLegislative session identifier
chamberChamber of origination (upper/lower)
bill_numberOfficial bill ID (e.g. SB 205, HB 123)
titleFull official bill title
classificationBill type(s) as comma-separated string
subjectsSubject tags as comma-separated string
primary_sponsorName of the primary bill sponsor
sponsorsAll sponsors as name:classification strings
actionsLegislative actions as date|chamber|description strings
votes_summaryVote records as date|chamber|result|yes:N|no:N|absent:N strings
versionsBill text links as note|date|url strings
source_urlsSource URLs for the bill record
openstates_urlDirect link to the bill on OpenStates.org
first_action_dateDate of first legislative action
latest_action_dateDate of most recent action
latest_action_descriptionDescription of most recent action
latest_passage_dateDate the bill last passed
created_atRecord creation timestamp in Open States
updated_atRecord last-modified timestamp in Open States

Rate Limits and Performance

The Open States free tier allows approximately 30 requests per minute. This actor uses a conservative 2.2-second delay between API calls. At 20 bills per page, this yields roughly 540 bills per minute. For large state-wide pulls (thousands of bills), consider using updatedSince for delta polling rather than pulling full history repeatedly.

Example Use Cases

Monitor AI-related bills across all states: Set subject to artificial intelligence and leave jurisdiction empty.

Track California bills updated this week: Set jurisdiction to California and updatedSince to the start of the current week.

Pull all bills from the current Texas session: Set jurisdiction to Texas and session to 2025.

Set up daily polling for a specific subject: Schedule daily runs with updatedSince set to yesterday's date using a dynamic date expression.