API · v1-20260518

Build on the open data

The Cracks Index is published to be used, not only to be read. The same numbers that feed the microsite are available as plain JSON. No account, no key, nothing to sign up for to get started.


Where to start

What you need to know

Base URL

https://api.fynqo.app

Read only

Every endpoint is a GET request. There is nothing to write and nothing to log into. A request with curl or a fetch in the browser is all it takes.

No personal data

Every value is a public aggregate at country or area level. No personal data passes through the API, so reuse needs no GDPR ground.

Stable snapshots

Every response carries a snapshot version. As long as you point at the same version, the figures stay exactly the same, even after a new round is published.

Fails softly

When data is missing, an endpoint returns a clean, empty 200 rather than an error. Your code never has to catch a 500.

In every response

Every response carries a caveat field and a citation field. The first explains the living-v0 framing, the second hands you a ready-made attribution line. Figures that are modelled, such as the Cracks Clock, also carry is_estimate.


The endpoints

Four public endpoints

Below is each public endpoint with its path, parameters and the shape of the response. The example values are illustrative; you fetch the real numbers live.

GET /api/cracks/index

The full ranking

Returns the complete country ranking for the live snapshot. Each country has a composite score and a rank, sorted from low to high.

Parameters

No parameters.

Response shape
{
  "meta": {
    "snapshot_version": "v0.3",
    "snapshot_date": "2026-05-12",
    "methodology_version": "v0",
    "is_published": "live",
    "country_count": 41
  },
  "ranking": [
    {
      "country_iso3": "NLD",
      "country_name": "Netherlands",
      "composite_score": 28.4,
      "rank": 7,
      "indicator_count": 6
    }
  ],
  "caveat": "...",
  "citation": "Fynqo, The Cracks Index (v0.3, 2026-05-12). ..."
}
GET /api/cracks/country/{iso3}

One country

Returns the score, rank, the breakdown into six indicators and the fix for one country. The path segment iso3 is an ISO-3166 alpha-3 country code.

Parameters
  • iso3 path · required — ISO-3166 alpha-3 country code, for example NLD or DEU.
Response shape
{
  "meta": { "snapshot_version": "v0.3", "snapshot_date": "2026-05-12", "...": "..." },
  "country": {
    "country_iso3": "NLD",
    "country_name": "Netherlands",
    "composite_score": 28.4,
    "rank": 7,
    "indicator_count": 6
  },
  "indicators": [
    {
      "indicator_key": "problem_debt",
      "label": "% households with problematic debt",
      "raw_value": 8.1,
      "unit": "% of households",
      "normalized_score": 31.2,
      "source": "Eurostat SILC",
      "source_date": "2024"
    }
  ],
  "fix": {
    "indicator_key": "mh_treatment_gap",
    "label": "Unmet mental-health care need (%)",
    "fix_description": "...",
    "estimated_impact": 4.6
  },
  "caveat": "...",
  "citation": "..."
}
GET /api/cracks/regions

Sub-national areas

Returns a ranked list of sub-national areas at one level. With level you choose between EU regions and Dutch municipalities; with country you filter to one country.

Parameters
  • level query · optional — Level: nuts2 (EU regions) or gemeente (Dutch municipalities). Default nuts2.
  • country query · optional — Optional ISO-3166 alpha-3 country filter, for example NLD.
Response shape
{
  "meta": {
    "snapshot_version": "v0.3",
    "snapshot_date": "2026-05-12",
    "region_count": 12,
    "...": "..."
  },
  "level": "nuts2",
  "country": "NLD",
  "regions": [
    {
      "region_level": "nuts2",
      "region_code": "NL32",
      "region_name": "Noord-Holland",
      "country_iso3": "NLD",
      "country_name": "Netherlands",
      "composite_score": 26.9,
      "rank": 3,
      "indicator_count": 6
    }
  ],
  "caveat": "...",
  "citation": "..."
}
GET /api/cracks/region/{region_code}

One area

Returns one sub-national area: score, rank within its own level, the indicator breakdown and the fix. An area is ranked only against other areas at the same level.

Parameters
  • region_code path · required — Area code, for example NL32 (region) or GM0363 (municipality).
Response shape
{
  "meta": { "snapshot_version": "v0.3", "snapshot_date": "2026-05-12", "...": "..." },
  "region": {
    "region_level": "nuts2",
    "region_code": "NL32",
    "region_name": "Noord-Holland",
    "country_iso3": "NLD",
    "country_name": "Netherlands",
    "composite_score": 26.9,
    "rank": 3,
    "indicator_count": 6
  },
  "rank_within_level": 3,
  "level_count": 12,
  "indicators": [ { "indicator_key": "problem_debt", "...": "..." } ],
  "fix": { "indicator_key": "eviction_rate", "...": "..." },
  "caveat": "...",
  "citation": "..."
}

Licence

How you may use and attribute the data

The Cracks Index data is published under Creative Commons Attribution 4.0 (CC-BY-4.0). You may reuse, redistribute and build on it, including commercially and inside your own product, as long as you credit Fynqo as the source. Every response carries a citation field with a ready-made line. Use that, or this one:

Fynqo (2026). The Cracks Index, v1-20260518. Snapshot of 2026-05-18. Licensed under CC-BY-4.0. https://fynqo.app/cracks-index/

The API is fully read-only and contains only public, aggregated figures at country and area level. No personal data is processed or returned.

CC-BY-4.0 Read-only 40 2026-05-18 v1-20260518

Understand the maths first

Before you work with the numbers, it helps to know how they are built: which six indicators, with what weights, from which sources.