Search bills
search_billsSearch or list legislation with structured filters (GET /v1/bills). Use this when you know the jurisdiction, sponsor, topic, or status you want. Every filter is optional and they combine with AND. A bill number typed into q (e.g. 'HB 1', 'SB0002') matches that bill directly. Returns bill summaries plus pagination; call get_bill for the full record. Corpus is 2026-forward only. status_id values: 1=Introduced, 2=In Committee, 3=Passed One Chamber, 4=Passed Both Chambers, 5=Signed into Law, 6=Vetoed, 7=Failed/Dead, 8=Chaptered. Aggregate buckets: passed={4,5,8}, failed={6,7}, alive={1,2,3}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across title, description, and subject names. | |
| limit | No | Max rows to return (default 25). | |
| state | No | 2-letter postal code (e.g. FL), DC, or US for Congress. | |
| topic | No | Canonical topic slug, e.g. 'healthcare'. See list_topics. | |
| offset | No | Pagination offset. | |
| subject | No | Raw subject name (ILIKE match). | |
| status_id | No | Filter by status. status_id values: 1=Introduced, 2=In Committee, 3=Passed One Chamber, 4=Passed Both Chambers, 5=Signed into Law, 6=Vetoed, 7=Failed/Dead, 8=Chaptered. Aggregate buckets: passed={4,5,8}, failed={6,7}, alive={1,2,3}. | |
| session_id | No | Narrow to one session. | |
| bill_number | No | Bill number, compact (HB1) or padded (HB0001). | |
| updated_since | No | ISO-8601 date or timestamp; only bills changed since then. | |
| title_contains | No | Substring match against the bill title only. | |
| include_sponsors | No | Attach a sponsors array (people_id, name, party, district, sponsor_type) to every bill. Use this whenever the answer needs to name who sponsored the bills. | |
| sponsor_last_name | No | Last name of a bill sponsor. |