Search People
openstates_search_peopleSearch state legislators and officials by name, jurisdiction, chamber, or district, or fetch specific people by OCD person ID. Party is reported on every result but cannot be filtered on — narrow by party after the call. Either jurisdiction or id is required — a search spanning all 56 jurisdictions exceeds the upstream timeout, including a name-only one, so scope every call to a single state or to specific person IDs. Use openstates_list_jurisdictions to pick a jurisdiction, or openstates_get_legislators_by_location when you have coordinates but no state. id takes the person IDs that openstates_get_bill sponsorships and openstates_get_committee memberships hand back, and resolves any number of them in one call. Supports name substring matching (case-insensitive). org_classification targets a role type: "upper" for Senate, "lower" for House/Assembly, "executive" for governors and executive officials, and "legislature" for every legislator — both chambers merged into one paginated set (all upper members, then all lower), which excludes executive-branch officials. Omitting org_classification is not the same as "legislature": it returns every officeholder, executive officials included. include=offices adds phone, fax, and address. include=links adds website and social links.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | OCD person IDs (e.g., "ocd-person/9eddb3cd-868e-42ba-831a-b415fd7ed445"). Required unless jurisdiction is provided — it returns exactly these people, so it scopes the call on its own and needs no jurisdiction alongside it. Resolves the IDs that openstates_search_people results, openstates_get_bill sponsorships[].person.id, and openstates_get_committee memberships[].person_id hand back — any number of them in one call, subject to per_page. An ID Open States does not know matches nothing rather than failing, as does an ID paired with a jurisdiction that person does not belong to. | |
| name | No | Name or partial name to match (case-insensitive substring). Narrows within the jurisdiction; it does not substitute for one. | |
| page | No | Page number (1-indexed). | |
| include | No | Related data to inline. "offices" includes phone, fax, and address. "links" includes website and social links. "other_names" includes alternate/former names, "other_identifiers" cross-system IDs, and "sources" the provenance URLs behind the record. | |
| district | No | District label (e.g., "1", "37", "At-Large"). Formats vary by state. | |
| per_page | No | Results per page. Maximum 20. | |
| jurisdiction | No | State name, abbreviation, or OCD-ID. Required unless id is provided — an all-states search exceeds the upstream timeout, so every call must be scoped to a single jurisdiction or to specific person IDs. | |
| org_classification | No | Filter by role type. "upper" = Senate, "lower" = House/Assembly, "executive" = governors and executive officials, "legislature" = every legislator (both chambers merged into one paginated set, all upper members then all lower, excluding executive officials). Omitting this filter returns every officeholder including executive ones — it is not equivalent to "legislature". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Current page returned. | |
| error | No | Present when the call failed. Absent on success. | |
| notice | No | Recovery hint when results are empty. Absent when results are returned. | |
| maxPage | No | Total pages available. | |
| results | No | Legislators matching the search criteria. | |
| pagination | No | Pagination metadata. | |
| totalCount | No | Total legislators matching the query across all pages. | |
| appliedFilters | No | Filters applied to this query as the server received them, for agent self-verification of zero or unexpected results. |