Office term
One person’s term in one seat: when it began and ended, how they got it and how it ended.
Show samples asThe sample at the end of the page as JSON, or as CSV (format=csv).
- Returned by
GET /v1/office-terms,GET /v1/offices/{slug}- Found in
- Office (
current_holders,terms) - Shapes
- The full record is in GET /v1/office-terms. The shorter forms in an office’s current holders leave some fields out; a field that isn’t in every form says where it is.
How it connects
officeis the seat’s slug (GET /v1/offices/{slug}).person_keyis the same for one person across all their terms and seats.contest_idis the election that gave the term;candidate_idlinks to the candidate when they were on one of our ballots. Appointees and holders elected before 2018 have neither.
Good to know
- Each re-election is a new term.
- Dates come from the source (
dates_basissourced) or from the law that sets when terms start (statutory). Anend_datetaken from the next holder’s start saysnext_holder. end_dateis null while the holder is serving, or until we know when they left.
Fields
| Field | Type | Meaning | Example |
|---|---|---|---|
id | integer | Term id.Only in GET /v1/office-terms. | 1 |
office | stringMatches ^[a-z0-9]+(-[a-z0-9]+)*$ | The seat’s slug.Only in GET /v1/office-terms. | us-house-ca-1 |
office_name | string | The seat’s name.Only in GET /v1/office-terms. | U.S. Representative, California Congressional District 1 |
state | stringor nullTwo capital letters (USPS code) | USPS state code.Only in GET /v1/office-terms. | CA |
name | string | The holder’s name as the source gives it. | Doug LaMalfa |
person_key | string | Stable id for the person across terms: bioguide:<id>, ocd-person/<uuid>, or name:<state>:<family>-<given>. Pass as person= to list someone’s terms. | name:ca:lamalfa-doug |
candidate_id | integeror null | Their candidate id (GET /v1/candidates/{id}) when they were on one of our ballots.Only in GET /v1/office-terms. | 73171 |
bioguide_id | stringor null | Congressional Biographical Directory id, for members of Congress.Only in GET /v1/office-terms. | H001068 |
openstates_person_id | stringor null | Open States person id (as in GET /v1/officeholders).Only in GET /v1/office-terms. | — |
party | stringor null | Party when the term began. | Republican |
party_changes | array of object | Party switches during the term.Only in GET /v1/office-terms. | — |
party_changes[].on | stringYYYY-MM-DD | Date of the switch.Only in GET /v1/office-terms. | — |
party_changes[].party_slug | string | The new party.Only in GET /v1/office-terms. | — |
how | string | How the term began.elected, special_election, appointed, succeeded, retained, holdover, other meanings | elected |
start_date | stringor nullYYYY-MM-DD | When they took office. | 2021-01-03 |
end_date | stringor nullYYYY-MM-DD | When they left office; null while serving or not known.Only in GET /v1/office-terms. | 2023-01-03 |
scheduled_end_date | stringor nullYYYY-MM-DD | When the term was due to end. | 2023-01-03 |
end_reason | stringor null | How the term ended.10 values: meaningsOnly in GET /v1/office-terms. | term_ended |
dates_basis | stringor null | Where the dates come from.sourced, statutory, next_holder meaningsOnly in GET /v1/office-terms. | statutory |
election_date | stringor nullYYYY-MM-DD | The election that gave the term, if any.Only in GET /v1/office-terms. | 2020-11-03 |
contest_id | integeror null | That election’s contest (GET /v1/contests/{id}).Only in GET /v1/office-terms. | 109060 |
district_ocd_id | stringor null | The district version they served from.Only in GET /v1/office-terms. | ocd-division/country:us/state:ca/cd:1/plan:2020 |
district_id | integeror null | Its contest district id.Only in GET /v1/office-terms. | 89089 |
source | object | Where the term comes from.Only in GET /v1/office-terms. | — |
source.kind | string | What kind of source the term comes from: results, official or dataset.results, official, dataset meaningsOnly in GET /v1/office-terms. | results |
source.name | string | Who published the term’s facts: an election office, a legislature, a dataset.Only in GET /v1/office-terms. | Federal Election Commission, Federal Elections 2020 (official results) |
source.url | stringURL | Where the term’s facts were published.Only in GET /v1/office-terms. | https://www.fec.gov/resources/cms-content/documents/federalelections2020.xlsx |
source.license | stringor null | For a dataset, its license (CC0-1.0, public domain).Only in GET /v1/office-terms. | — |
source.retrieved_on | stringor nullYYYY-MM-DD | When we read a dataset.Only in GET /v1/office-terms. | — |
updated_at | stringISO 8601 date and time with time zone | When we last changed this term.Only in GET /v1/office-terms. | 2026-11-14T03:18:48.42618+00:00 |
Download every dictionary as CSV or JSON.
CSV: GET /v1/office-terms?format=csv
One row per term: one person in one seat for one term. An empty cell is a null or a value that doesn’t apply. The next page’s cursor comes in the X-Next-Cursor header.
| Column | Type | Meaning | Example |
|---|---|---|---|
term_id | integer | Term id.From id in the JSON. | 1 |
office | stringMatches ^[a-z0-9]+(-[a-z0-9]+)*$ | The seat’s slug.From office in the JSON. | us-house-ca-1 |
office_name | string | The seat’s name.From office_name in the JSON. | U.S. Representative, California Congressional District 1 |
state | stringcan be emptyTwo capital letters (USPS code) | USPS state code.From state in the JSON. | CA |
name | string | The holder’s name as the source gives it.From name in the JSON. | Doug LaMalfa |
person_key | string | Stable id for the person across terms: bioguide:<id>, ocd-person/<uuid>, or name:<state>:<family>-<given>. Pass as person= to list someone’s terms.From person_key in the JSON. | name:ca:lamalfa-doug |
candidate_id | integercan be empty | Their candidate id (GET /v1/candidates/{id}) when they were on one of our ballots.From candidate_id in the JSON. | 73171 |
bioguide_id | stringcan be empty | Congressional Biographical Directory id, for members of Congress.From bioguide_id in the JSON. | H001068 |
openstates_person_id | stringcan be empty | Open States person id (as in GET /v1/officeholders).From openstates_person_id in the JSON. | — |
party | stringcan be empty | Party when the term began.From party in the JSON. | Republican |
how | string | How the term began.elected, special_election, appointed, succeeded, retained, holdover, other meaningsFrom how in the JSON. | elected |
start_date | stringcan be emptyYYYY-MM-DD | When they took office.From start_date in the JSON. | 2021-01-03 |
end_date | stringcan be emptyYYYY-MM-DD | When they left office; null while serving or not known.From end_date in the JSON. | 2023-01-03 |
scheduled_end_date | stringcan be emptyYYYY-MM-DD | When the term was due to end.From scheduled_end_date in the JSON. | 2023-01-03 |
end_reason | stringcan be empty | How the term ended.10 values: meaningsFrom end_reason in the JSON. | term_ended |
dates_basis | stringcan be empty | Where the dates come from.sourced, statutory, next_holder meaningsFrom dates_basis in the JSON. | statutory |
election_date | stringcan be emptyYYYY-MM-DD | The election that gave the term, if any.From election_date in the JSON. | 2020-11-03 |
contest_id | integercan be empty | That election’s contest (GET /v1/contests/{id}).From contest_id in the JSON. | 109060 |
district_ocd_id | stringcan be empty | The district version they served from.From district_ocd_id in the JSON. | ocd-division/country:us/state:ca/cd:1/plan:2020 |
district_id | integercan be empty | Its contest district id.From district_id in the JSON. | 89089 |
source_kind | string | What kind of source the term comes from: results, official or dataset.results, official, dataset meaningsFrom source.kind in the JSON. | results |
source_name | string | Who published the term’s facts: an election office, a legislature, a dataset.From source.name in the JSON. | Federal Election Commission, Federal Elections 2020 (official results) |
source_url | stringURL | Where the term’s facts were published.From source.url in the JSON. | https://www.fec.gov/resources/cms-content/documents/federalelections2020.xlsx |
license | stringcan be empty | For a dataset, its license (CC0-1.0, public domain).From source.license in the JSON. | — |
updated_at | stringISO 8601 date and time with time zone | When we last changed this term.From updated_at in the JSON. | 2026-11-14T03:18:48.42618+00:00 |
Sample (JSON)
One office term as the API returns it, in GET /v1/office-terms. More in the sample data.
{
"id": 1,
"office": "us-house-ca-1",
"office_name": "U.S. Representative, California Congressional District 1",
"state": "CA",
"name": "Doug LaMalfa",
"person_key": "name:ca:lamalfa-doug",
"candidate_id": 73171,
"bioguide_id": null,
"openstates_person_id": null,
"party": "Republican",
"party_changes": [],
"how": "elected",
"start_date": "2021-01-03",
"end_date": "2023-01-03",
"scheduled_end_date": "2023-01-03",
"end_reason": "term_ended",
"dates_basis": "statutory",
"election_date": "2020-11-03",
"contest_id": 109060,
"district_ocd_id": "ocd-division/country:us/state:ca/cd:1/plan:2020",
"district_id": 89089,
"source": {
"kind": "results",
"name": "Federal Election Commission, Federal Elections 2020 (official results)",
"url": "https://www.fec.gov/resources/cms-content/documents/federalelections2020.xlsx",
"license": null,
"retrieved_on": null
},
"updated_at": "2026-11-14T03:18:48.42618+00:00"
}Sample (CSV)
The same records as the JSON sample, as GET /v1/office-terms?format=csv returns them. Download: CSV, JSON.
term_id,office,office_name,state,name,person_key,candidate_id,bioguide_id,openstates_person_id,party,how,start_date,end_date,scheduled_end_date,end_reason,dates_basis,election_date,contest_id,district_ocd_id,district_id,source_kind,source_name,source_url,license,updated_at 1,us-house-ca-1,"U.S. Representative, California Congressional District 1",CA,Doug LaMalfa,name:ca:lamalfa-doug,73171,,,Republican,elected,2021-01-03,2023-01-03,2023-01-03,term_ended,statutory,2020-11-03,109060,ocd-division/country:us/state:ca/cd:1/plan:2020,89089,results,"Federal Election Commission, Federal Elections 2020 (official results)",https://www.fec.gov/resources/cms-content/documents/federalelections2020.xlsx,,2026-11-14T03:18:48.42618+00:00 3,us-house-ca-2,"U.S. Representative, California Congressional District 2",CA,Jared Huffman,bioguide:H001068,72,H001068,,Democratic,elected,2021-01-03,2023-01-03,2023-01-03,term_ended,statutory,2020-11-03,109036,ocd-division/country:us/state:ca/cd:2/plan:2020,89090,results,"Federal Election Commission, Federal Elections 2020 (official results)",https://www.fec.gov/resources/cms-content/documents/federalelections2020.xlsx,,2026-11-14T03:18:48.42618+00:00