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.