CA Cal-Access Campaign Finance Scraper
Pricing
from $3.00 / 1,000 results
CA Cal-Access Campaign Finance Scraper
Search California campaign-finance filers on Cal-Access - committees, candidates, major donors, lobbyists, lobbying firms & employers. Browse by name, entity type, and election cycle; pull registration and financial-activity summaries.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Search California's official campaign-finance and lobbying disclosure system, Cal-Access, run by the Secretary of State. Search any filer by name across every registry, browse filers alphabetically (or ballot measures by election), or look up a filer's full registration and financial-activity summary by filer ID. Covers committees, political parties, major donors, slate mailers, candidates & elected officials, individual lobbyists, lobbying firms, lobbyist employers, propositions & ballot measures, and persons/entities spending $5,000+ to influence legislation. No login required.
What this actor does
- Three modes:
search(by name, across all entity types),browse(by entity type + letter + election cycle),detail(by filer ID) - Seven entity types: committees, candidates, individual lobbyists, lobbying firms, lobbyist employers, propositions & ballot measures, and $5,000+ payments-to-influence filers
- Committee sub-type filter — narrow committees to major donors, political parties, small contributor committees, or slate mailers
- Election cycle — browse or look up any two-year legislative session back to 1999–2000, for every entity type
- Financial-activity summaries — reporting period, contributions/expenditures for the period, cumulative totals, and ending cash for committees and candidates' linked committees
- Ballot-measure campaign tracking — every committee formed to support or oppose a proposition, with its SUPPORT/OPPOSE position, grouped by election date
- $5,000+ payments-to-influence activity — quarterly lobbying-payment totals, P.U.C. lobbying totals, and the specific bills/agencies lobbied for persons who spend $5,000+ without employing a lobbyist or firm
- Discipline-relevant status — current registration status (active / terminated / in suspense) for every filer
- Lobbyist relationships — each lobbyist's registered employer(s)/firm(s), with effective and termination dates
- Lobbyist headshot photos — rehosted to a permanent, publicly accessible URL (the source image sits behind the same bot-protection as the rest of the site, so raw upstream links aren't directly reachable)
- Empty fields are omitted
Output per filer record
name— registered filer name (or ballot-measure title)filerId— Cal-Access filer IDentityType—committees/candidates/lobbyists/lobbyingFirms/lobbyistEmployers/measures/paymentsToInfluencestatus— current registration status, e.g.ACTIVE,TERMINATED 12/31/2025,IN SUSPENSEcommitteeType— raw committee sub-type as listed by the source (browse mode, committees only)electionCycle— two-year session the record reflects (browse/detail modes)electionDate— specific election the ballot measure appeared on, e.g.NOVEMBER 5, 2024, GENERAL(browse mode, measures only)filerContact— registered phone/address (committees & candidates, detail mode)lastReportDate,reportingPeriod,contributionsThisPeriod,totalContributions,expendituresThisPeriod,totalExpenditures,endingCash— financial summary (committees, detail mode)committees[]— linked campaign committees with their own financial summaries (candidates, detail mode); for ballot measures, the committees formed to support/oppose it, each withfilerId,name, andposition(SUPPORT/OPPOSE)address,mailingAddress,registrationDate,ethicsCourseCompletionDate,responsibleOfficer— lobbying-entity registration details (lobbyists/firms/employers/paymentsToInfluence, detail mode)relationships[]— registered employer/firm relationships with effective/termination dates (lobbyists, detail mode)paymentsByQuarter[]— quarterlysession,quarter,totalPaymentsToInfluence, andpucLobbyingtotals (paymentsToInfluence, detail mode)billsAndAgenciesLobbied[]—session,quarter, andbillOrAgencylobbied that quarter (paymentsToInfluence, detail mode)photoUrl— permanent, publicly reachable headshot photo URL (lobbyists, detail mode, when the filer has one on file);photoUrlOriginal— the source Cal-Access URL for traceabilitysourceUrl— link to the filer's page on cal-access.sos.ca.govrecordType: "filer",scrapedAt
Invalid input (malformed filer ID, no matching filer) produces a recordType: "error" record instead, with error, message, and input fields.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (by name) / browse (by entity type + letter) / detail (by filer ID) |
searchQuery | string | Newsom | Filer name or fragment (mode=search) |
entityType | string | committees | Registry to browse/look up (mode=browse / mode=detail) |
committeeType | string | all | Narrow committees to a sub-type (mode=browse, entityType=committees) |
letter | string | A | Starting letter, or Numeric (mode=browse) |
electionCycle | string | 2025 | Two-year session, e.g. 2025 = 2025 through 2026 (mode=browse / mode=detail) |
filerId | string | – | Exact Cal-Access filer ID (mode=detail) |
proxyConfiguration | object | off | Optional Apify proxy; not required for normal use |
maxItems | int | 20 | Hard cap on emitted records (1–500) |
Example: search for a filer by name across all registries
{"mode": "search","searchQuery": "Newsom","maxItems": 20}
Example: browse major-donor committees starting with "B"
{"mode": "browse","entityType": "committees","committeeType": "majorDonors","letter": "B","electionCycle": "2025","maxItems": 30}
Example: browse candidates & elected officials starting with "B"
{"mode": "browse","entityType": "candidates","letter": "B","maxItems": 20}
Example: look up one committee's financial summary
{"mode": "detail","entityType": "committees","filerId": "1475408","electionCycle": "2025"}
Example: look up a lobbyist's registration and employer relationships
{"mode": "detail","entityType": "lobbyists","filerId": "1359080"}
Use cases
- Political journalism — track who's funding committees and ballot-measure campaigns
- Compliance & opposition research — verify a committee, candidate, or lobbyist's current registration status
- Government transparency tools — feed a searchable public-records dashboard
- Academic research — bulk-collect California lobbying-registry entities by sector
- Due diligence — confirm a lobbying firm or employer's standing before engagement
- Campaign finance tracking — pull a candidate's linked committees and their contribution/expenditure totals
FAQ
What is Cal-Access? The California Secretary of State's public disclosure system for campaign-finance and lobbying activity, covering candidates, committees, political parties, major donors, slate mailers, lobbyists, lobbying firms, and lobbyist employers.
Do I need a login? No — Cal-Access is fully public. The actor uses a stealth browser session (no user credentials) to reach the same pages any visitor can see at cal-access.sos.ca.gov.
Why does search return fewer fields than detail? The name-search listing only carries name, entity type, and status. The richer financial-activity and registration fields live on each filer's own detail page — use mode=detail with the filerId from a search/browse result to pull them.
Why is maxItems capped relatively low? Cal-Access is protected by a bot-management layer that only tolerates genuine in-app browser navigation (not raw HTTP requests), so each record involves a real page load. Keeping runs modest keeps them fast and reliable; raise maxItems if you need more and don't mind a longer run.
Can I browse a specific historical election cycle? Yes — electionCycle supports every two-year session back to 1999–2000 for both browse and detail modes.
What if a run returns fewer records than maxItems? Cal-Access occasionally rate-limits automated traffic; the actor retries with backoff automatically. If a section is temporarily unavailable it reports this via the run's status message rather than failing silently.
Why does a candidate's record have a committees[] list instead of flat financial fields? A candidate can have multiple campaign committees across election cycles (e.g. a committee for each office they've run for), so their financial activity is reported per-committee rather than as one number.