Open data

Everything on this site is published as open data in the AT Protocolrepository of @contributions.fyi(did:plc:ylmdlijvrvgbe4md6v4dyce6). There's no API key to request and no terms to agree to. Download it with any atproto tool.

Everything at once

The fyi.contributions.dataset record links the complete data files as gzipped JSON, the same files this site is built from. This downloads all of them (needs curl and jq):

DID=did:plc:ylmdlijvrvgbe4md6v4dyce6
curl -s "https://bsky.social/xrpc/com.atproto.repo.getRecord?repo=$DID&collection=fyi.contributions.dataset&rkey=self" |
  jq -r '.value.files[] | "\(.name) \(.blob.ref["$link"])"' |
  while read -r name cid; do
    curl -sL "https://bsky.social/xrpc/com.atproto.sync.getBlob?did=$DID&cid=$cid" | gunzip > "${name%.gz}"
  done

With goat

goat fetches single records, lists them, or exports the whole repository as a CAR file:

goat get at://contributions.fyi/fyi.contributions.member/C000127
goat record ls contributions.fyi --collection fyi.contributions.member
goat repo export contributions.fyi -o contributions.car
goat repo unpack contributions.car -o contributions   # one JSON file per record

Over HTTP

Each entity is also its own record, readable with the standard XRPC endpoints. listRecords pages through a collection, 100 at a time:

https://bsky.social/xrpc/com.atproto.repo.getRecord?repo=did:plc:ylmdlijvrvgbe4md6v4dyce6&collection=fyi.contributions.member&rkey=C000127
https://bsky.social/xrpc/com.atproto.repo.listRecords?repo=did:plc:ylmdlijvrvgbe4md6v4dyce6&collection=fyi.contributions.committee&limit=100&cursor=…
https://bsky.social/xrpc/com.atproto.sync.getBlob?did=did:plc:ylmdlijvrvgbe4md6v4dyce6&cid=…

Collections

NSIDRecord keyContents
fyi.contributions.datasetselfGeneration time, election cycles, sources, methodology, license, and the complete data files as gzipped JSON blobs
fyi.contributions.memberbioguide id, e.g. C000127Members of Congress: campaign totals, sectors, top contributors, outside spending, committee seats, individual donations
fyi.contributions.committeeFEC committee id, e.g. C00030718PACs and other FEC committees: who they gave to, outside spending, big donors
fyi.contributions.organizationslug, e.g. lockheed-martinThe companies, unions and groups behind PACs: sector, SEC and lobbying records, recipients
fyi.contributions.donorslug, e.g. elon-musk-txDonors of $50,000 or more to super PACs and other outside spenders
fyi.contributions.congressCommitteeThomas id, e.g. HSAGCommittees of Congress and their members

The lexicons are in the project's sourceand published as com.atproto.lexicon.schema records in the same repository. In records, amounts are whole US dollars, because the atproto data model has no fractions; the files keep exact cents.

License

The FEC, SEC and lobbying disclosure records this is built from are US government works in the public domain. Our additions (sector and industry classifications, organization matching, Bluesky account matching and the compiled totals) are dedicated to the public domain underCC0 1.0. Use them for anything. Credit to contributions.fyi is appreciated but not required. See About for how the data is classified, and check FEC filings before relying on any single number.

Data last updated November 15, 2026.