Guide

The vacancy feed

Seats are vacated explicitly, with a reason and a date — poll one endpoint to know.

When a member departs, the seat is vacated explicitly: the record names the former member, the reason, and the date. Poll /vacancies and your product never has to infer a departure from a member disappearing between syncs.

curl
curl "https://civiclens.io/api/v1/vacancies?state=tx"
one vacancy
{
  "stateCode": "tx",
  "level": "state",
  "branch": "legislative",
  "chamber": "lower",
  "district": "30",
  "formerMember": "Jane Doe",
  "vacatedAt": "2026-07-02T00:00:00.000Z",
  "reason": "resigned"
}

reason is one of lost_election, resigned, deceased, term_ended or other, with an optional free-text notes.

The feed covers legislative seats: they are keyed by state, chamber and district, which is what makes occupancy checkable. Executive and judicial transitions appear in the data changelog.