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}"
doneWith 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 recordOver 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
| NSID | Record key | Contents |
|---|---|---|
fyi.contributions.dataset | self | Generation time, election cycles, sources, methodology, license, and the complete data files as gzipped JSON blobs |
fyi.contributions.member | bioguide id, e.g. C000127 | Members of Congress: campaign totals, sectors, top contributors, outside spending, committee seats, individual donations |
fyi.contributions.committee | FEC committee id, e.g. C00030718 | PACs and other FEC committees: who they gave to, outside spending, big donors |
fyi.contributions.organization | slug, e.g. lockheed-martin | The companies, unions and groups behind PACs: sector, SEC and lobbying records, recipients |
fyi.contributions.donor | slug, e.g. elon-musk-tx | Donors of $50,000 or more to super PACs and other outside spenders |
fyi.contributions.congressCommittee | Thomas id, e.g. HSAG | Committees 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.