# Open States state bill search

Search bills in the 50 US state legislatures, DC and Puerto Rico by text, jurisdiction, session, subject, sponsor and action or update dates. Takes q, jurisdiction, session and more, all optional.

Search bills in the 50 US state legislatures, DC and Puerto Rico by text, jurisdiction, session, subject, sponsor and action or update dates (give at least a jurisdiction or a query). Returns bill id, identifier, title, session, latest action and passage dates, with optional sponsorships, actions, versions and votes.

- Tool ID: `openstates/bill-search`
- Provider: [Open States](/providers/openstates.md)
- Capability: [Knowledge & research](/tools/knowledge.md)
- Price: no charge per call
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

No charge per call. A workspace is still needed so your agent can call it.


```json
{
  "model": "per_call",
  "amountUsd": 0
}
```

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Full-text search, e.g. 'data privacy'"
    },
    "jurisdiction": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "State name or OCD jurisdiction id, e.g. 'California'"
    },
    "session": {
      "type": "string",
      "minLength": 2,
      "maxLength": 40,
      "description": "Session identifier, e.g. '20232024'"
    },
    "subject": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "Subject tag, e.g. 'Health'"
    },
    "sponsor": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "Sponsor name or person id, e.g. 'Wiener'"
    },
    "updated_since": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
      "description": "Updated since (YYYY-MM-DD), e.g. '2025-01-01'"
    },
    "action_since": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
      "description": "With an action since (YYYY-MM-DD), e.g. '2025-01-01'"
    },
    "sort": {
      "type": "string",
      "enum": [
        "updated_desc",
        "updated_asc",
        "first_action_desc",
        "first_action_asc",
        "latest_action_desc",
        "latest_action_asc"
      ],
      "default": "updated_desc",
      "description": "Sort, e.g. 'latest_action_desc'"
    },
    "include": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "sponsorships",
          "abstracts",
          "other_titles",
          "other_identifiers",
          "actions",
          "sources",
          "documents",
          "versions",
          "votes",
          "related_bills"
        ]
      },
      "maxItems": 10,
      "description": "Extra blocks per bill, e.g. ['sponsorships', 'abstracts']"
    },
    "per_page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 10,
      "description": "Bills per page (1-20), e.g. 10"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "default": 1,
      "description": "Page number, e.g. 1"
    }
  },
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "openstates/bill-search",
  "input": {
    "jurisdiction": "California",
    "session": "20232024",
    "q": "data broker",
    "per_page": 2
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

Licence: Public domain dedication (Open States).

Attribution: Data from Open States (Plural Policy).

[Provider documentation](https://docs.openstates.org/api-v3/)

[REST inspection](https://api.agentik.cc/v1/tools/openstates/bill-search) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/openstates/bill-search) · [Agent index](/llms.txt)
