# Changelog This page lists every change that affects how a client uses the API: the GraphQL schema, query limits, endpoints, visibility rules, and MCP tools. When a client-visible field is renamed or removed, the old field is kept for a while with the GraphQL `@deprecated` directive wherever possible, and its removal appears as a later entry on this page. Relationship fields are the exception: they cannot coexist with their replacement, so renaming one is listed under `Breaking` right away. ## 2026-09-29 **Added** - `timestamps` query, returning UTC timestamps of data freshness: - `lastNodeUpdatedAt`, the most recent data change - `lastVoteEventScrapedAt`, the last successful automated scrape of votes (`VoteEvent` and `Vote`) - `lastBillScrapedAt`, the last successful automated scrape of bills and their events - MCP server instructions point agents to the `timestamps` query to check how current the data is **Deprecated** - `lastUpdatedAt`, use `timestamps { lastNodeUpdatedAt }` instead ## 2026-09-24 **Breaking** - `Organization.motions` renamed to `Organization.considered_motions`. Its description wrongly said "proposed in the name of the organization", while the field has always meant "considered in the organization" — use `Organization.created_motions` for the former - `/graphql` now responds with HTTP `400` instead of `200` when a variable does not match its declared type. The `errors` body is unchanged **Added** - `Organization.created_motions`, motions proposed in the name of the organization (the `CREATED_BY` back-reference, matching `Person.created_motions`) - `Organization.considered_motions`, motions considered in the organization - `/graphql` accepts the optional `apollographql-client-name` and `apollographql-client-version` headers, so server-side clients can identify their application. - `get-docs` MCP tool, returning the documentation index (`/llms.txt`) or a single documentation page as markdown, so agents can read how the data is modeled and example queries **Deprecated** - `VoteEvent.bills`, use `VoteEvent.bill_vote_events.bills` instead - `Bill.requirement` and `Motion.requirement`, never populated. Will be removed - `BillVoteEvent.pass_condition`, never populated. Use `BillVoteEvent.vote_events.pass_condition` instead. Will be removed ## 2026-09-04 **Added** - `/mcp` endpoint with tools to run a query, read the schema, and list types - `/llms.txt`, `/llms-full.txt`, and a `.md` version of every documentation page ## 2026-08-05 **Added** - `lastUpdatedAt` query, returning the UTC timestamp of the most recent data change ## 2026-03-11 **Breaking** - `Person` and `Vote` queries now return at most 1,000 nodes per request. Use `limit` and `offset` to page through larger result sets ## 2026-02-24 **Breaking** - `Bill.bill_events` renamed to `Bill.events` - `Vote.voter_name` renamed to `Vote.voter_name_raw` - Union `MotionProposer` renamed to `MotionCreator` - `Bill.proposers` and `Bill.co_proposers` renamed to `Bill.creators` and `Bill.co_creators` - `Person.proposed_motions` renamed to `Person.created_motions`, with `Person.co_created_motions` added alongside it **Added** - `Bill.creator_type` and the `BillCreatorType` enum ## 2025-12-16 **Breaking** - `Bill.bill_events` narrowed from `Event` to the new `BillEvent` union. `DraftVoteEvent` became `BillVoteEvent` and `BillEnforceEvent` became `BillEnactEvent` - `BillStatus.ENFORCED` removed, it duplicated `BillStatus.ENACTED` **Added** - `Person.death_date`