legiscan.com APIlegiscan.com ↗
Search US state and federal bills, retrieve structured bill metadata, and fetch full bill text across all 50 states via the LegiScan API.
curl -X GET 'https://api.parse.bot/scraper/c4d58c4e-fbfb-4514-9812-71912e9a0c3d/search_bills?query=minimum+wage&state=ALL' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for bills by keyword and state. Returns paginated results with bill metadata including state, bill number, status, title, last action, and URLs for detail and text pages.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (0-based) |
| year | string | Filter by session year (e.g., 2025). Omitting returns current session results. |
| query | string | Search keyword for full text search of bills |
| state | string | Two-letter state code (e.g., CA, NY, TX) or ALL for national search |
{
"type": "object",
"fields": {
"bills": "array of bill objects with state, bill_number, status, title, last_action, detail_url, text_url"
},
"sample": {
"data": {
"bills": [
{
"state": "CA",
"title": "Residential tenancies: return of security.",
"status": "Pass",
"text_url": "https://legiscan.com/CA/text/AB414/2025",
"detail_url": "https://legiscan.com/CA/bill/AB414/2025",
"bill_number": "AB414",
"last_action": "2025-10-06Chaptered by Secretary of State - Chapter 340, Statutes of 2025."
}
]
},
"status": "success"
}
}About the legiscan.com API
The LegiScan API exposes 3 endpoints covering US legislative data across all 50 states — search bills by keyword and state with search_bills, pull structured metadata with get_bill_details, and retrieve full legal text with get_bill_text. Each bill result includes state, bill number, status, last action, and direct URLs for detail and text pages, giving developers a direct path from keyword search to the full text of any bill.
Bill Search
The search_bills endpoint accepts a query keyword, a two-letter state code (or ALL for a national search), an optional year to pin results to a specific legislative session, and a 0-based page integer for pagination. Each result in the returned bills array includes state, bill_number, status, title, last_action, detail_url, and text_url. Omitting year returns results from the current session.
Bill Details and Text
get_bill_details requires state, bill_number, and year to identify a bill uniquely. It returns the bill's page url, a title string that encodes the state, bill number, and session, and a summary describing the bill's purpose. This is useful for quickly understanding what a bill does before pulling its full text.
get_bill_text retrieves the complete legal text of a bill as a content string. You can either pass a url directly from search_bills results or supply state, bill_number, and year as individual parameters — both input patterns resolve to the same output.
Coverage and Scope
LegiScan tracks legislation across all US states. The state parameter across all endpoints accepts standard two-letter US state codes, and the year parameter maps to legislative session years. Session scope varies by state since legislative calendars differ; omitting year defaults to the current active session for the selected state.
- Monitor bills mentioning a specific topic (e.g., 'climate' or 'housing') across all states using
search_billswithstate=ALL - Build a bill-tracking dashboard that shows
statusandlast_actionfields for a curated list of bills - Extract and index full bill text via
get_bill_textfor legal research or compliance analysis - Compare how different states are legislating the same issue by searching the same keyword across multiple
statevalues - Automate alerts when new bills matching a keyword appear by periodically querying
search_billsand checkinglast_action - Populate a legislative news feed with bill
titleandsummaryfields fromget_bill_details - Retrieve historical session bills by passing a specific
yearto narrow results to a past legislative session
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does LegiScan have an official developer API?+
What does `search_bills` return and how do I scope it to a single state?+
bills array includes state, bill_number, status, title, last_action, detail_url, and text_url. Pass a two-letter state code like CA or TX to the state parameter to restrict results. Use state=ALL to search nationally. The year parameter narrows results to a specific legislative session; omitting it returns the current session.Does the API expose sponsor information or voting records?+
How does pagination work in `search_bills`?+
page parameter is 0-based, so the first page of results is page=0. If you omit it, you get the first page by default. There is no explicit total-count field in the response, so you determine if additional pages exist by checking whether the returned bills array is non-empty.Can I retrieve bill amendment history or previous versions through `get_bill_text`?+
get_bill_text endpoint returns the text content found at the provided URL, which typically corresponds to the version linked from search results. Versioned amendment history and prior drafts are not surfaced as discrete response fields. You can fork this API on Parse and revise it to target specific version URLs if LegiScan exposes them on the bill detail page.