Skip to content
The Quiet Ledger
Developers

The Quiet Ledger API

A bounded, versioned, read-only research API over the factual bills and members record. Create a token on your API credentials page (Advanced plan).

Authentication

Send your token as a Bearer credential. The secret is shown once at creation and stored only as a hash; there is no session cookie for programmatic access.

curl https://thequietledger.org/api/v1/bills?congress=119&per_page=5 \
  -H "Authorization: Bearer tql_live_…"
Base URL & version

https://thequietledger.org/api/v1

The version is in the path (/api/v1). Responses include a meta.provenance block.

Endpoints
MethodPathDescription
GET/billsList bills. Params: congress, chamber (house|senate), type (hr, s, hres…), q, page, per_page.
GET/bills/{id}A single bill by id (e.g. 119-hr-2102), with counts and the published grade where one exists.
GET/membersList current members. Params: state, party (D|R|I), page, per_page.
GET/members/{bioguide_id}A single member with service terms across Congresses and factual activity totals.
Pagination

List endpoints accept page (default 1) and per_page (default 25, max 100). Responses return meta.page, meta.per_page, meta.total, and meta.has_more.

Rate limits

120 requests per minute per credential (fixed window). Exceeding it returns 429 rate_limited.

Errors

Errors are JSON with an error code and message. Codes: 401 missing/invalid token, 403 api_access_not_entitled, 404 not_found, 429 rate_limited.

{ "error": "invalid_token", "message": "invalid_token", "version": "v1" }
Response shape & provenance
{
  "data": [ { "id": "119-hr-2102", "congress": 119, "type": "HR", "title": "…", "chamber": "house", … } ],
  "meta": {
    "page": 1, "per_page": 5, "total": 1481, "has_more": true,
    "provenance": { "source": "The Quiet Ledger", "api": "v1", "note": "…" }
  }
}
Coverage & limitations
  • Bill grades exist only for the 119th Congress; earlier bills return no grade (historical grades are never fabricated).
  • Historical Senate member-level vote coverage is limited where the authoritative LIS↔Bioguide crosswalk is unavailable.
  • See the data coverage page for full source and completeness detail.
API documentation · The Quiet Ledger