GET /api/v1/search
Search candidates, committees, contributors, employers and more by name.
- q (required, 2+ characters)
- cycle (optional)
- limit (1–25, default 20)
Example: /api/v1/search?q=jeff+hurd
For developers
The same federal campaign finance records and figures as the site, as JSON. Free and read-only, with no key or sign-up. Please credit GovMoneyGraph.
Find a record with search, then follow its api_url:
curl "https://www.govmoneygraph.com/api/v1/search?q=jeff+hurd"
curl "https://www.govmoneygraph.com/api/v1/candidates/H4CO03357?cycle=2026"{
"data": {
"id": "H4CO03357",
"name": "HURD, JEFFREY",
"party": { "code": "REP", "label": "Republican" },
"office": { "code": "H", "label": "U.S. House" },
"state": "CO", "district": "03", "cycle": 2026,
"totals": { "receipts": 4168636.04, "cash_on_hand": 237767.58, "coverage_end": "2026-10-14", … },
"top": { "contributors": [{ "name": "GROW THE MAJORITY", "amount": 605459.29, … }], … },
"race": { "id": "2026_HOUSE_CO-3", "forecast": { "republican_win_probability": 0.6976, "rating": "Lean R", … } }
},
"meta": { "api_version": "v1", "attribution": "Data: GovMoneyGraph, based on FEC records.", "notes": […] }
}The full description is at /api/v1/openapi.json (OpenAPI 3.1), for code generators and AI agents.
Search candidates, committees, contributors, employers and more by name.
Example: /api/v1/search?q=jeff+hurd
A candidate's registration, totals, top contributors, employers, industries and states, and race forecast.
A committee's registration, totals, and top contributors, employers, industries and states.
An individual contributor's giving and every recipient committee.
An organization's own contributions and every recipient committee.
Every candidate in a House or Senate race with their totals, and VotePredictor's forecast.
Example: /api/v1/races/2026_HOUSE_CO-3
{ data, meta }. meta.notes says how to read the figures; keep them with any number you publish. Every record carries url, its page on GovMoneyGraph, and candidates and committees carry fec_url.{ error: { code, message } } with status 400 (invalid_id, invalid_cycle, invalid_query, invalid_race), 404 (not_found), 429 (too many requests), 403 (a rapid burst stopped by DDoS protection) or 503 (unavailable).cycle=2026 means the 2025–2026 election cycle. Without it you get the latest loaded cycle; a cycle that is not loaded is an error, never silently replaced.YYYY-MM-DD. null means not reported or not available, never zero. FEC codes come with labels: { "code": "REP", "label": "Republican" }.Each IP address may make 60 requests a minute; past that, requests get status 429 until the minute is up. Space them out: automatic DDoS protection answers a rapid burst with 403 before the per-minute limit is reached. Responses are cached for up to an hour, and the data updates daily from the FEC. Cross-origin requests are allowed, so the API works from a browser.
For bulk research, the FEC's bulk files are the better source than paging through this API.
Credit Data: GovMoneyGraph, based on FEC records. and link the record's url where you can.
Race forecasts come from VotePredictor and need its credit too. Its probabilities stay between 1% and 99%, basis says whether polls or fundamentals set them, and a race it withholds comes back as withheld, never estimated.