Reference · Committees/docs/committees
Committees
Names normalized so a hearing matches its committee record.
GEThttps://api.archivist.dev/committees{id}
Request
The list endpoint at /committees accepts the following query parameters. A specific record can be fetched by appending its id segment.
Request parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| {id} | path | string | optional | Committee id, e.g. hsju00 (House Judiciary) or ssfi00 (Senate Finance). |
| chamber | query | string | optional | house, senate, or joint. |
| congress | query | integer | optional | Filter to a single Congress. |
| parent_id | query | string | optional | Restrict to subcommittees of a parent committee. |
| cursor | query | string | optional | Opaque pagination cursor. |
| limit | query | integer | optional | Page size, 1–100. Defaults to 25. |
Run it — curl
curl···
# All House committees for the 118th Congress
curl 'https://api.archivist.dev/committees?chamber=house&congress=118' \
-H "Authorization: Bearer $ARCHIVIST_KEY"
# A single committee
curl https://api.archivist.dev/committees/hsju00 \
-H "Authorization: Bearer $ARCHIVIST_KEY"Run it — JavaScript
Plain fetch — no SDK, no runtime dependency. The key reads from env at server startup.
committees.js···
const res = await fetch(
'https://api.archivist.dev/committees?chamber=house&congress=118',
{ headers: { Authorization: `Bearer ${process.env.ARCHIVIST_KEY}` } },
);
const { items } = await res.json();
const judiciary = items.find((c) => c.name.includes('Judiciary'));Response
Successful responses are 200 OK with the shape below. Errors come back as { "error": "..." } — see the error reference for the full status table.
Response schema
| Field | Type | Required | Description |
|---|---|---|---|
| items | CommitteeItem[] | required | Page of committees, ordered by chamber then name. |
| items[].committee_id | string | required | Stable id — chamber-key code. |
| items[].chamber | string | required | house, senate, or joint. |
| items[].name | string | required | Display name (e.g. House Committee on the Judiciary). |
| items[].parent_id | string | null | optional | Parent committee id for subcommittees, null for top-level. |
| items[].members | CommitteeMember[] | optional | Members on the committee for the most recent Congress. |
| nextCursor | string | null | required | Pass into the next page; null on the last page. |
response···
{
"items": [
{
"committee_id": "hsju00",
"chamber": "house",
"name": "House Committee on the Judiciary",
"parent_id": null,
"members": [
{ "member_id": "M000197", "role": "member" }
]
}
],
"nextCursor": null
}Related endpoints
Notes
- committee_id is stable across renamings and reorgs — the same entity returns whether it’s the 117th or 118th Congress.
- parent_id is set on subcommittees; pass it into /committees/{parent_id} for the parent.