Skip to content
InfraWorldWide

Data and API

Every figure on this site is compiled from JSON in the repository and served as static files. Those files are public, so the dataset is an API: fetch it, join it, redraw it.

This build

Compiled Sep 7, 2026 from commit 8b6b7c0.

52 projects, 3 countries, 2 cities.

Endpoints

Relative to this site's origin. A path in braces is one file per record; the manifest lists every id.

PathContentsSchema
/data/projects.jsonEvery project with its sections: dates, lengths, costs, funding, contractors and sources. The schema describes one entry of the projects array.project.schema.json
/data/countries.jsonArea and population per country, behind the density figures.countries.schema.json
/data/cities.jsonCities that have their own view: population, GDP per person, map centre.cities.schema.json
/data/contractors.jsonCanonical contractor identities: the aliases that collapse to one firm, and joint-venture membership.none published
/data/deflators.jsonConsumer price indices, used to restate a cost into another price year within its own currency.deflators.schema.json
/data/deflators-construction.jsonThe same shape on construction input costs: a closer fit for civil works, covering fewer currencies and stopping earlier.deflators.schema.json
/data/fx.jsonAnnual average exchange rates against the euro, applied after deflation and never before.fx.schema.json
/data/geo/manifest.jsonWhich countries, cities and projects have geometry files, plus the build stamp.none published
/data/geo/countries.geojsonCountry outlines, the map's click targets. Natural Earth, public domain.none published
/data/geo/cities.geojsonOne point per city, with its project and section counts.none published
/data/geo/{country}.geojsonODbLEvery section in one country, one feature each, carrying the properties the map styles and filters on.none published
/data/geo/cities/{city}.geojsonODbLThe same for one city's network, which is kept out of the country file.none published
/data/geo/projects/{project}.geojsonODbLOne project's sections on their own, for embedding a single route.none published

CSV

The two league tables as CSV, carrying the same figures the performance page shows and ids you can join on.

Schemas

JSON Schema for the hand-written source files, generated from the zod definitions by npm run data:schema. Point an editor at one and it validates while you type.

Licence and attribution

The route geometry is derived from OpenStreetMap and is licensed ODbL. Reusing it means keeping the attribution and releasing derived geometry on the same terms. The endpoints it covers are marked ODbL above.

  • /data/geo/{country}.geojson
  • /data/geo/cities/{city}.geojson
  • /data/geo/projects/{project}.geojson

© OpenStreetMap contributors · ODbL

The compiled tables carry the licences of their own sources, which every file names in its sources block. Each project cites its own on its page.

Stability

These are build artifacts, regenerated on every deploy. Field names follow the schema and change with it, and nothing is versioned yet, so pin the commit above if you need a shape that holds still.