For journalists & researchers
This site is built so you can go from a question to a sourced answer in minutes. Here's how to work with it.
1. Browse to find the record
Start in the explorer. Votes lists every council roll-call — open one to see the full tally and how each member voted. Council profiles each member with their complete voting record; Bills covers Oregon Legislature legislation. Every list is searchable.
2. Check the provenance
Every record shows where it came from — the source dataset, the fetch date, and a link back to the origin. Before you publish, follow that link and confirm the underlying document says what the record says. The data is a faithful projection of public sources, but the source is always the citation of record.
3. Pull it programmatically
For a dataset rather than a page, use the public API. Lists and search come over REST; relational questions ("every vote this member cast", "the full roll call for this measure") come over GraphQL in one round trip.
GET /v1/vote-events?limit=25&q=forestry
GET /v1/persons Full endpoint reference and a GraphQL example are on the About page; the REST schema is self-describing at /v1/openapi.json.
Citing pdxcivic
Cite the original source for the fact, and pdxcivic as the dataset you accessed it through (with the date you pulled it). Coverage grows over time — the changelog records what was available when. If you spot a discrepancy between a record and its source, that's a data bug worth reporting.