GovXRay Scraper — City Government Fiscal Data avatar

GovXRay Scraper — City Government Fiscal Data

Pricing

from $7.00 / 1,000 result scrapeds

Go to Apify Store
GovXRay Scraper — City Government Fiscal Data

GovXRay Scraper — City Government Fiscal Data

Scrape consolidated government finance profiles for 240+ world cities from GovXRay.com: spending & revenue per capita, deficit, public debt & assets by government tier, credit ratings, fiscal health scores, and 20 module previews (economy, housing, healthcare, education). No login, no cookies.

Pricing

from $7.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

GovXRay Scraper

Scrape city government fiscal-transparency data from GovXRay.com — a "Government Financial X-Ray" covering 240+ major cities across 60+ countries. For each city you get consolidated per-capita public finances stacked across every level of government that applies to it (federal/ national, state/region/province, municipal, and sometimes school boards): spending, revenue, deficit, public debt and assets by tier with credit ratings, a fiscal health score, inter-government transfer flows, and headline metrics from 20 deep-dive modules (economy, housing, healthcare, education, defence, energy, demographics and more). No login, no cookies.

Why use this actor?

GovXRay does the hard work of normalizing public finance data that otherwise lives scattered across national statistics offices, IMF/OECD tables and municipal budget PDFs into one consistent per-capita view per city. This actor turns that into structured records you can drop into a spreadsheet, a BI tool, or a research database.

Typical users: policy researchers and think tanks, journalists covering municipal finance or debt, urban economists, relocation and site-selection analysts comparing tax burden and public-service quality across cities, and public-finance consultants who need a quick fiscal-health snapshot for many cities at once.

What you get

  • Consolidated fiscal picture — total government spending and revenue per capita (USD), the resulting deficit or surplus, broken down by category (Social, Admin, Infrastructure, Education, Healthcare, Income Tax, Property Tax, VAT/Sales, Corporate Tax, and more).
  • Public balance sheet — assets, debt and net position per capita, both consolidated and per government tier, each tier's credit rating (e.g. AA-, A+) and accounting standard.
  • Fiscal health score — GovXRay's own letter grade (A+ to F), numeric score, and the four sub-scores (Budget, Debt, Balance Sheet, Economy) that make it up, plus the site's own "what stands out" narrative insights.
  • Inter-government transfer flows — how much each tier of government sends to the tier below it, per capita.
  • 20 module previews — headline metrics from GovXRay's economy, housing, healthcare, education, defence, energy, sustainability, demographics, transit and other deep-dive sections, in one flat record.
  • City vitals — population, area, density, GDP and GDP per capita, both city-proper and metro figures.
  • No login, no cookies — nothing to configure beyond a list of cities.

How to scrape GovXRay data

  1. Add the actor to your Apify account.
  2. Enter a list of Cities (names or GovXRay slugs, e.g. Antwerp, new_york, Austin) — or leave it empty for a default set of major world cities, or pass ["all"] to scrape every city GovXRay covers.
  3. Set Max Cities to how many you want in this run.
  4. Provide a Bright Data API key (see below) or set the BRIGHT_DATA_API_KEY environment variable.
  5. Run it. Download the results as JSON, CSV, Excel, or feed them to an API.

GovXRay is proxied through Cloudflare, so the actor routes its requests through the Bright Data Web Unlocker to fetch pages reliably. You need a Bright Data account with a Web Unlocker zone; the key goes in the brightDataApiKey input (kept secret) or the BRIGHT_DATA_API_KEY environment variable. The pages themselves are plain server-rendered HTML (no browser rendering needed), so this is a cheap, fast fetch per city.

Input

FieldTypeRequiredDescription
citiesArray of stringsNoCity names or GovXRay slugs to scrape (default: 10 major world cities). Pass ["all"] to scrape every city GovXRay covers.
maxResultsIntegerNoMaximum number of cities to scrape in this run (default: 20).
brightDataApiKeyStringYesBright Data Web Unlocker API key. Falls back to the BRIGHT_DATA_API_KEY environment variable.
proxyConfigurationObjectNoApify proxy settings for auxiliary requests.

Leave everything empty and the actor scrapes a default set of major cities (New York, London, Paris, Berlin, Brussels, Antwerp, Tokyo, Sydney, Toronto, Madrid), so an empty input {} still returns data.

Output

Each result is one city's fiscal profile. Key fields:

FieldTypeExample
cityString"Antwerp"
regionString"Flanders"
countryString"Belgium"
populationCityNumber530000
gdpPerCapitaCityNumber113208
govHierarchyArray["Belgium", "Flanders (Region)", "Antwerp", "EU"]
fiscalHealthGradeString"D"
fiscalHealthScoreNumber39
totalSpendingPerCapitaNumber22906
totalRevenuePerCapitaNumber20463
deficitPerCapitaNumber2443
spendingByCategoryObject{"Social": 5672, "Admin": 4461, ...}
revenueByCategoryObject{"Income Tax": 5452, "Property Tax": 3948, ...}
balanceSheetAssetsPerCapitaNumber25104
balanceSheetDebtPerCapitaNumber60102
balanceSheetTiersArrayPer-tier assets/debt/net/rating
transferFlowsArrayPer-tier inter-government transfers
modulesObjectHeadline metrics for 20 deep-dive modules
financialSnapshotNarrativeStringGovXRay's plain-text summary
urlStringSource page URL
scrapedAtStringISO 8601 timestamp

Example output (abridged — real run, Antwerp)

{
"city": "Antwerp",
"citySlug": "antwerp",
"region": "Flanders",
"country": "Belgium",
"url": "https://govxray.com/city/antwerp",
"scrapedAt": "2026-07-22T14:22:19.202Z",
"currency": "USD",
"populationCity": 530000,
"populationMetro": 1070000,
"gdpCityUsd": 60000000000,
"gdpPerCapitaCity": 113208,
"govHierarchy": ["Belgium", "Flanders (Region)", "Antwerp", "EU"],
"fiscalHealthGrade": "D",
"fiscalHealthScore": 39,
"fiscalHealthScoreMax": 100,
"fiscalHealthLabel": "Structural concerns",
"fiscalHealthSubscores": { "budget": 2, "debt": 15, "balance_sheet": 2, "economy": 20 },
"totalSpendingPerCapita": 22906,
"spendingByCategory": {
"Social": 5672,
"Admin": 4461,
"Infrastructure": 3286,
"Education": 2612,
"Healthcare": 2521
},
"totalRevenuePerCapita": 20463,
"revenueByCategory": {
"Income Tax": 5452,
"Property Tax": 3948,
"VAT / Sales": 3895,
"Corporate Tax": 1069
},
"deficitPerCapita": 2443,
"balanceSheetAssetsPerCapita": 25104,
"balanceSheetDebtPerCapita": 60102,
"balanceSheetTiers": [
{ "tier": "Municipal", "assetsPerCapita": 2727, "debtPerCapita": 3636, "rating": "A+" },
{ "tier": "Region", "assetsPerCapita": 4545, "debtPerCapita": 11364, "rating": "AA-" },
{ "tier": "Federal", "assetsPerCapita": 15000, "debtPerCapita": 43182, "rating": "AA" }
],
"financialSnapshotNarrative": "Antwerp produces $60B of GDP, representing 20.7% of Belgium's economy. Government spending equals USD 25,604 per resident, while tax revenue is USD 20,463, resulting in a USD 2,443 per-capita deficit."
}

How it works

GovXRay's city pages are fully server-rendered — every figure, including the 20 module previews, is present in the raw HTML of a plain page load. There is no hidden JSON API to call. The actor:

  1. Reads the live sitemap.xml to build the current city index (so newly added cities are picked up automatically, without a code change).
  2. Fetches each requested city's page through the Bright Data Web Unlocker.
  3. Converts the HTML into an ordered list of text blocks that mirrors the page's visual structure, then walks it with a small parser anchored on known section labels (Population, Fiscal Health, Spending, Revenue, Balance Sheet, Transfer Flows, Deep Dive Modules, Data Quality) to pull out structured fields.

This was verified against cities with different government structures (3-tier Belgium, 4-tier US including school boards, and non-Western examples) to make sure the parser doesn't assume a fixed tier count.

Cost estimate

One Bright Data Web Unlocker request per city page (plus one for the sitemap per run). A run of 50 cities is roughly 51 requests. Actual cost depends on your Apify plan and your Bright Data Web Unlocker usage.

Limitations

  • Covers the city root/scorecard page only — GovXRay also has 26 deeper per-module pages per city (e.g. a full economy or housing breakdown with many more metrics); this actor surfaces each module's 2-3 headline metrics rather than crawling all 26 sub-pages.
  • GovXRay's own data coverage varies by city — some cities have fewer fiscal-audit metrics or a shorter government hierarchy than others; the actor reflects whatever GovXRay currently publishes and doesn't fill gaps.
  • Figures are GovXRay's own estimates/aggregations from public sources (OECD, IMF, national accounts, curated municipal audits) — treat this as a research and comparison tool, not an official audited financial statement.

Studio AMBA also publishes scrapers for other European/global regulatory and public-data sources: belgian-procurement-scraper, ted-eu-procurement-scraper, eurlex-scraper, handelsregister-scraper, and kbo-enrichment for company/registry data alongside government data.