Public Beta

Civibus

Universal public-records intelligence

Public API

Developers and journalists migrating from OpenSecrets or ProPublica APIs can use this static reference to find Civibus's nonpartisan, source-linked federal public-record endpoints.

FastAPI router owner: /public/v1; Caddy public URL prefix: /api/public/v1.

Endpoint reference

GET /api/public/v1/federal/officials

Parameters: chamber, state, party.

Curl
: "${CIVIBUS_PUBLIC_API_BASE:?Set CIVIBUS_PUBLIC_API_BASE to a Civibus origin that serves /api}" && curl "${CIVIBUS_PUBLIC_API_BASE}/api/public/v1/federal/officials?state=NC&chamber=House"
Sample JSON
[
  {
    "person_id": "11111111-1111-1111-1111-111111111111",
    "person_name": "Sample Official",
    "officeholding_id": "22222222-2222-2222-2222-222222222222",
    "office_id": "33333333-3333-3333-3333-333333333333",
    "office_name": "U.S. House NC-01",
    "chamber": "House",
    "state": "NC",
    "district": "01",
    "district_or_class": "01",
    "party": "Independent",
    "portrait_source_image_url": "https://www.congress.gov/img/member/sample.jpg",
    "person_detail_path": "/person/11111111-1111-1111-1111-111111111111"
  }
]

GET /api/public/v1/federal/officials/{person_id}/money

Parameters: none beyond person_id in the path.

Curl
: "${CIVIBUS_PUBLIC_API_BASE:?Set CIVIBUS_PUBLIC_API_BASE to a Civibus origin that serves /api}" && curl "${CIVIBUS_PUBLIC_API_BASE}/api/public/v1/federal/officials/11111111-1111-1111-1111-111111111111/money"
Sample JSON
{
  "person_id": "11111111-1111-1111-1111-111111111111",
  "person_name": "Sample Official",
  "has_fec_money": true,
  "candidate_id": "44444444-4444-4444-4444-444444444444",
  "total_raised": "125000.00",
  "total_spent": "100000.00",
  "net": "25000.00",
  "cash_on_hand": "45000.00",
  "summary_source": "fec_weball",
  "ie_support_total": "5000.00",
  "ie_oppose_total": "0.00",
  "ie_support_count": 2,
  "ie_oppose_count": 0,
  "sources": [
    {
      "domain": "campaign_finance",
      "jurisdiction": "federal",
      "data_source_name": "FEC candidate master",
      "data_source_url": "https://www.fec.gov/data/browse-data/?tab=candidates",
      "source_record_key": "H4NC00000",
      "record_url": "https://www.fec.gov/data/candidate/H4NC00000/",
      "pull_date": "2026-07-10T00:00:00Z"
    }
  ]
}

GET /api/public/v1/federal/export.json

Parameters: none.

Curl
: "${CIVIBUS_PUBLIC_API_BASE:?Set CIVIBUS_PUBLIC_API_BASE to a Civibus origin that serves /api}" && curl "${CIVIBUS_PUBLIC_API_BASE}/api/public/v1/federal/export.json"
Sample JSON
[
  {
    "person_id": "11111111-1111-1111-1111-111111111111",
    "person_name": "Sample Official",
    "has_fec_money": true,
    "candidate_id": "44444444-4444-4444-4444-444444444444",
    "total_raised": "125000.00",
    "total_spent": "100000.00",
    "net": "25000.00",
    "cash_on_hand": "45000.00",
    "summary_source": "fec_weball",
    "ie_support_total": "5000.00",
    "ie_oppose_total": "0.00",
    "ie_support_count": 2,
    "ie_oppose_count": 0,
    "sources": [
      {
        "domain": "campaign_finance",
        "jurisdiction": "federal",
        "data_source_name": "FEC candidate master",
        "data_source_url": "https://www.fec.gov/data/browse-data/?tab=candidates",
        "source_record_key": "H4NC00000",
        "record_url": "https://www.fec.gov/data/candidate/H4NC00000/",
        "pull_date": "2026-07-10T00:00:00Z"
      }
    ]
  }
]

GET /api/public/v1/federal/export.csv

Parameters: none.

Curl
: "${CIVIBUS_PUBLIC_API_BASE:?Set CIVIBUS_PUBLIC_API_BASE to a Civibus origin that serves /api}" && curl -L "${CIVIBUS_PUBLIC_API_BASE}/api/public/v1/federal/export.csv" -o civibus_federal_money.csv
Sample CSV
person_id,person_name,has_fec_money,candidate_id,total_raised,total_spent,net,cash_on_hand,summary_source,ie_support_total,ie_oppose_total,ie_support_count,ie_oppose_count,source_urls
11111111-1111-1111-1111-111111111111,Sample Official,true,44444444-4444-4444-4444-444444444444,125000.00,100000.00,25000.00,45000.00,fec_weball,5000.00,0.00,2,0,https://www.fec.gov/data/candidate/H4NC00000/

CSV columns

  • person_id
  • person_name
  • has_fec_money
  • candidate_id
  • total_raised
  • total_spent
  • net
  • cash_on_hand
  • summary_source
  • ie_support_total
  • ie_oppose_total
  • ie_support_count
  • ie_oppose_count
  • source_urls

OpenSecrets and ProPublica migration mapping

NeedCivibus endpoint
Federal official directoryGET /api/public/v1/federal/officials
Current federal member money summaryGET /api/public/v1/federal/officials/{person_id}/money
Bulk federal money exportGET /api/public/v1/federal/export.json
Spreadsheet-friendly federal money exportGET /api/public/v1/federal/export.csv

Reference links

Rate limits and cache

Public API requests are rate limited. Public responses use Cache-Control: public, max-age=900.

Report a data issue