PROPAGANDA FACTORY

Your app broke when OpenSecrets killed their API.
Here's the fix.

OpenSecrets discontinued their public API in April 2025. If your app, dashboard, or research pipeline depended on it, you're looking for a replacement. This is it — live, free to start, and covering more data than OpenSecrets ever exposed via API.

What happened: OpenSecrets (opensecrets.org) shut down their public API in April 2025 following staff layoffs and funding cuts. Existing API keys stopped working. There is no official migration path. This page is the unofficial one.

Get a Free API Key View All Endpoints

Migrate in 4 steps

1 Get a free API key

No credit card. 1,000 calls/month on the free tier.

curl -X POST https://pf-api.mtcstw.workers.dev/v1/keys/signup

2 Map your endpoints

Use the mapping table below to swap OpenSecrets method calls for our REST equivalents.

3 Update authentication

Replace your OpenSecrets API key parameter with an X-API-Key header (or ?api_key= query param).

curl -H "X-API-Key: YOUR_KEY" \
  "https://pf-api.mtcstw.workers.dev/v1/donations/summary?candidate_id=H8CA12345&cycle=2024"

4 Adjust donor-data logic

One important difference: we return organization-level, geographic, and candidate-level aggregates — not individual donor records. Federal law (52 U.S.C. § 30111(a)(4)) prohibits commercial use of individual contributor identities. If your app displayed per-donor rows, refactor to aggregate views.

Endpoint mapping

OpenSecrets (dead)Our replacementNotes
getLegislatorsGET /v1/politician/:id/fundingFunding overview per candidate
candSummaryGET /v1/donations/summaryTotals, donor counts, averages per candidate
candContribGET /v1/donations/by-employerAggregated by employer org — not individual donors
candIndustryGET /v1/donations/summaryIndustry aggregates included in summary
congCmteIndusGET /v1/bills/:id/moneyMoney behind legislation (Politics Pack)
orgSummaryGET /v1/donations/by-employerOrganization-level giving totals
(no equivalent)GET /v1/entity/:id/profileNew: violations, fines, contracts, jets per entity
(no equivalent)GET /v1/entity/:id/connectionsNew: AI-detected money-politics connections
(no equivalent)GET /v1/pe/firmNew: private equity firm profiles
(no equivalent)GET /v1/lobbyingNew: lobbying disclosure search

What you gain (not just replace)

OpenSecrets never exposed these via API. We do:

FAQ

Is this really free?

Yes — 1,000 API calls/month across all data packs, no credit card. Paid packs start at $69/month for 50K calls (Politics, Corporate, Health, Patent), or $703/yr annual. The Private Equity Pack is $99/month ($1,010/yr). Bundles: Pick 2 at $123/month ($153 with Private Equity), Pick 3 at $192/month ($222 with Private Equity) — $15 off either way. All Access (everything + webhooks) is $349/month.

Where does the data come from?

Public sources: FEC filings, Senate lobbying disclosures (LDA), SEC EDGAR, USPTO, OSHA, EPA, and 40+ more. All aggregated, all sourced.

Why can't I get individual donor names?

Federal law prohibits it for commercial use. We enforce this at the data layer — the API physically cannot return individual contributor identities.

How reliable is the uptime?

Built on Cloudflare's edge network. Enterprise tier includes an SLA.

Start Migrating — Free Compare All Alternatives