By Varun Patel, Founder & CEO of Crawlify | Aug 12, 2026 | 13 min read
The Civic Data Gap: 15 Months After Google Turned Off the Civic Information API
Google shut down the Civic Information API on April 30, 2025. The replacement landscape is fragmented and uncorrelated. Here's the full map.

TL;DR — On April 30, 2025, Google turned off
representativeInfoByAddress. One API call used to return every elected official for any US address, from President down to school board. That call now returns nothing. Fifteen months later the replacement landscape is six vendors deep, and not one of them correlates officeholders with their votes, their committee seats, or the public-comment windows they control. ProPublica's Congress API was archived in February 2025. OpenSecrets paywalled in April. CTCL declined to build a replacement at all. A directory is data. A directory joined with legislative actions, district boundaries and electoral calendars is intelligence. The civic-tech sector rebuilt the first. Nobody built the second.
What actually shut down
Most of the coverage of the shutdown was vague, and the vagueness matters, because the precise shape of what was removed is what determines how hard it is to replace.
Google formally turned down two endpoints of the Civic Information API on April 30, 2025: representativeInfoByAddress and representativeInfoByDivision. The Elections API and the Divisions API — the OCD-ID lookup — were preserved, and a transitional OCD-ID method launched around September 2024 to soften the landing. The notice went out through the Civic Information API Google Group in April 2024, giving developers roughly twelve months.
So the API did not disappear. What disappeared was the join.
Before the turndown, one call took an address and returned the people who represent it. After the turndown, you can still take an address and get back a set of Open Civic Data identifiers — stable, canonical strings naming the districts that address falls into. What you cannot do is ask Google who holds those offices. The OCD-ID is now a foreign key into a database Google no longer keeps. You have to bring your own.
That is a small change on paper and a large one in architecture. One API call became two, split across two vendors, with a new integration surface and a new point of failure between them. It also became a commercial problem: the second call is almost never free. Soapbox Engage, which builds the Actions app for Salesforce nonprofits, migrated to an alternative matching approach before February 2025 rather than wait for the deadline. Independent developers on r/webdev spent the transition period discovering that the commercial replacements were priced for organisations with procurement departments.
The people who felt it hardest were the ones the API existed to serve: small advocacy shops, civic-tech volunteers, and local election-information sites running on a few hundred dollars a year.
The replacement landscape
Fifteen months on, the gap has been filled — partially, by six vendors with six different coverage scopes, six freshness models and six pricing structures. This is the current map.
| Platform | Coverage | Freshness | API | Pricing | Correlation |
|---|---|---|---|---|---|
| Cicero (Melissa) | US and international, local to federal | Fast redistricting updates | REST | $298 / 5K calls | None |
| Ballotpedia | US federal, state, top 100 cities | ~30-day lag on local | Yes | From $500/mo | Manual, via subscriptions |
| Geocodio | US and Canada, federal and state | High boundary accuracy | Yes | 2,500 free/day, then PAYG | None |
| Plural | 50 states, Congress, Puerto Rico | Real-time bill tracking | JSON | $59/mo–$5K/yr | Intra-platform only |
| CTCL | US, local to federal | Post-election batch | No (XML/TXT) | Sliding scale, NPOs only | None |
| Crawlify | US and international, custom scope | Continuous, verified | API / S3 / CRM | $2,500 pilot | Yes, multi-pipeline |
Sources: Cicero, Ballotpedia, Geocodio, Plural and CTCL public documentation and pricing pages, August 2026.
Read the last column down. Every one of these products is competent at what it does. Cicero's redistricting turnaround is genuinely fast. Geocodio's boundary accuracy is excellent and its free tier is generous enough to run a small civic app on. Plural tracks bills in real time across all fifty states. Ballotpedia's editorial depth is unmatched.
And each of them hands you one layer. The officeholder directory sits in one product, the legislative record in another, the district boundary in a third, and the electoral calendar in a fourth. Joining them is left as an exercise for the reader — which in practice means a spreadsheet, maintained by a person, going stale from the moment it is exported.
The accuracy problem in civic data
Every data vertical has an accuracy problem. Civic data has a specific one, and the difference is worth naming precisely, because it changes what "good enough" means.
In pricing data, a wrong field costs margin. We wrote about that at length in the phantom-competitor post: a repricing engine discounts against a competitor who sold out three days ago, and the error shows up as a number on a P&L. It is painful and it is recoverable. In civic data, a wrong field costs a person their one scheduled opportunity to be heard. The public-comment window closes. The primary is held. The committee votes the bill out. There is no reprice.
Four structural forces keep civic datasets decaying faster than the organisations using them expect.
Turnover is high and accelerating. State legislative workloads have risen to somewhere between 74 and 95 percent of full-time capacity, on bodies that are still formally part-time and paid accordingly. The National Conference of State Legislatures links that squeeze to turnover reaching as high as 57 percent in term-limited chambers. A static officeholder database does not decay gracefully over years. It decays in weeks, in bursts, around predictable dates that a batch-refresh schedule tends to miss.
Local candidate data arrives too late to plan with. Ballotpedia does not populate local candidate information until roughly 30 days before an election. That is a defensible editorial policy and a serious operational problem, because campaign data preparation happens in August and the data lands in October. For down-ballot races — county commissions, school boards, municipal offices — an August planning cycle is working with an empty table.
Boundaries move off-cycle now. Redistricting used to be a decennial event you could plan a data refresh around. Litigation-driven, mid-cycle map changes have made it continuous. The 2025 congressional map alterations rendered annual shapefiles obsolete partway through the cycle. The failure mode is quiet and complete: a perfectly valid address returns a confidently wrong representative, and nothing in the response indicates a problem.
Coverage stops well above the local level. Ballotpedia's Ultralocal expansion reaches 32 states. For the other 18, structured local-candidate data does not exist in any major API, and the practical alternatives are manual collection or unverified scraping of municipal PDFs — many of them scanned, most of them behind ASP.NET forms that fight automated access.
Stack those four together and you get the characteristic civic-data failure: a dataset that passes every technical check, returns HTTP 200 on every call, contains no null values, and is wrong about a third of the down-ballot offices in a state you are actively organising in.
Midterms are November 3. Your data-prep window is closing now, not in October. Name your priority jurisdictions and we will deliver a verified officeholder feed — names, offices, districts, terms, with a source URL, timestamp and verifier ID on every record. crawlify.ai/pilot · hello@crawlify.ai.
The API graveyard
The Google shutdown reads differently once you see it as one of three, not as an isolated corporate decision. Within fourteen months, the three pillars of free, programmatic, open civic data in the United States came down in sequence.
ProPublica's Congress API was permanently archived in February 2025. It was the closest thing the ecosystem had to the correlation layer this post is about: members of Congress joined to their voting records, their bill sponsorships and their committee memberships, in one place, free, well-documented and widely trusted. Its archival is the single most consequential loss on this list, and it got a fraction of the attention the Google shutdown did.
Google Civic's representativeInfoByAddress was turned down on April 30, 2025. The address-to-officeholder resolver, gone.
OpenSecrets' API was paywalled or shuttered by April 2025. The money layer — who funds whom — moved behind a commercial gate.
The fourth event is the one that says most about where this is heading. The Center for Tech and Civic Life, the organisation best positioned to build a public replacement, explicitly declined to. Its response in the Civic Information API group in April 2024 set out the model it would run instead: flat XML and TXT files, distributed to vetted, mission-aligned organisations on a sliding scale. No API. Commercial vendors, partisan campaigns and organisations that do not fit the alignment criteria were directed to procure their data elsewhere.
That is a defensible position for a mission-driven nonprofit with finite capacity. It is also, in effect, ideological enclosure of a public dataset. The information itself is public record — it is generated by governments, about governments, at public expense. What has been enclosed is the machine-readable, continuously-updated, joinable form of it, which is the only form at which it becomes usable infrastructure. Access to that form is now allocated either by ability to pay or by alignment with a gatekeeper's mission.
The open civic data era is over. What replaced it is a market, and markets have gaps.
The correlation gap
Here is the gap.
Every vendor in the replacement landscape sells a directory. Not one sells intelligence. The distinction is not marketing — it is architectural, and it is the difference between knowing a fact and being able to act on it.
| Vendor | Officials | Legislation | Boundaries | Correlation | Accuracy SLA | Gap |
|---|---|---|---|---|---|---|
| Cicero | Yes | Limited | Yes | None | No | No legislative join |
| Ballotpedia | Yes | Yes | Top 100 cities | Manual | No | ~30-day local lag |
| Plural | Yes | Yes (AI-assisted) | No | Intra-platform | No | No boundaries |
| LegiScan | No | Yes | No | None | No | Bills only, no officials |
| Geocodio | Basic | No | Yes | None | No | Geocoding only |
| Crawlify | Yes | Yes | Yes | Multi-feed | 99.5% field-level | None by design |
Sources: vendor documentation, August 2026. Accuracy SLA means a published, contractual field-level guarantee, not an uptime commitment.
No product on the market today joins an officeholder directory to that officeholder's voting record and bill sponsorship in a single, continuously refreshed feed backed by a field-level accuracy guarantee. The closest historical analogue was the ProPublica Congress API, and it was archived eighteen months ago.
What that costs shows up first in field operations. A campaign walk list requires three vectors to be simultaneously correct: post-redistricting boundaries, current officeholders, and upcoming electoral dates. Get the boundary wrong and volunteers knock in the wrong district. Get the officeholder wrong and the script names someone who left office. Get the date wrong and the whole effort lands after the registration deadline. Failure in any one vector invalidates the operation — and because the three come from three vendors, nothing in the stack is positioned to notice that they disagree.
It shows up second in advocacy operations. Practitioners running public affairs and advocacy programmes on NationBuilder or Quorum are structurally forced into the same workaround: export supporter geography to a spreadsheet, export committee schedules from somewhere else, and join them by hand. This is the civic equivalent of the channel desync problem — two feeds that are each individually correct, never reconciled, producing a conclusion that is wrong in a way neither feed can detect.
The architecture that fixes it is not exotic. It is the one we described in the accuracy post: verify each field against its source, attach a verifier ID and a timestamp to every record, then correlate across pipelines before delivery rather than after. Verification catches wrong values. Correlation catches wrong conclusions. The ScholarMeet pipeline Crawlify was first built to run is the same shape — verified records, correlated across sources, delivered into the system the customer already works in. An academic conference with the wrong date on four aggregator sites fails exactly the way a redistricted school-board seat does, and for exactly the same reason.
The international gap
The correlation gap is not an American artefact. It is worse almost everywhere else, and it is worse in a more interesting way, because in several countries the raw data is excellent and the join still does not exist.
The United Kingdom publishes a live parliamentary REST API at data.parliament.uk, and it is genuinely good — well-structured, documented, free. It still requires correlation against constituency boundary changes and committee assignments to answer the questions organisations actually ask, and that correlation is left to the consumer.
France is the clearest illustration of the whole argument. The Assemblée Nationale publishes deeply structured JSON and XML: deputies' civil status, their voting records, their legislative files. The data is rich, open and machine-readable. And it exists in total isolation. Resolving a given representative's votes against their current committee assignments requires an ETL pipeline that nobody runs as a service. The raw material for world-class civic intelligence is sitting in public, unjoined. We built that join for the 577 députés and 348 sénateurs precisely because the alternative was asking a client to build it themselves.
Canada is where the gap becomes a compliance exposure. Effective January 19, 2026, the in-house lobbying registration threshold dropped from 28 hours for a single employee to 8 hours aggregated across an entire organisation. That is not an incremental tightening — it is a change in kind. Tracking an 8-hour aggregate across every employee who might contact a public office holder is not something a quarterly spreadsheet review can do. It requires correlated, continuous intelligence about who in your organisation contacted which officeholder, when, and about what. Most organisations subject to the new threshold are currently tracking it manually, which means most of them do not actually know whether they are compliant.
What to ask your data vendor
The civic-tech sector's response to April 30, 2025 was to rebuild the directory. That was the right first move and it is now essentially done — six vendors, reasonable coverage, working APIs.
The second move has not been made. Nobody joined the directory to the legislative record, the boundary file and the electoral calendar, and nobody put a field-level accuracy guarantee behind the result. Which means the sector rebuilt the layer that was easiest to rebuild and left the layer that carried the actual intelligence to spreadsheets.
Speed will not close this. A real-time API that returns an officeholder who lost their primary six weeks ago is worse than a weekly feed a human checked, because the real-time one looks authoritative and nobody questions it. Recency without a verifier is just a faster route to the wrong conclusion.
So the question worth putting to any civic data vendor is not how fresh the feed is or how many records it holds. It is two questions: which feeds do you correlate, and who verifies them? If the answer to the first is "none" and the answer to the second is "our pipeline," you have bought a directory. That is a useful thing to own. It is not the thing that decides whether a volunteer knocks on the right door.
Name the jurisdictions. We will deliver a verified, correlated feed — officeholders, legislation, boundaries and deadlines, joined, with a source URL, timestamp and verifier ID on every record — in 5 to 7 business days. $2,500 pilot, on your jurisdictions, no engineering hours on your side. crawlify.ai/pilot · hello@crawlify.ai.
Frequently Asked Questions

