<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="generator" content="Astro v5.18.2"><title>eupublicdata JSON API — eupublicdata</title><meta name="description" content="Free public JSON API for EU statistical data — one endpoint per country and per indicator. Open data, CC-BY 4.0, no key required."><link rel="canonical" href="https://eupublicdata.eu/api/"><meta property="og:type" content="website"><meta property="og:title" content="eupublicdata JSON API — eupublicdata"><meta property="og:description" content="Free public JSON API for EU statistical data — one endpoint per country and per indicator. Open data, CC-BY 4.0, no key required."><meta property="og:url" content="https://eupublicdata.eu/api/"><meta property="og:site_name" content="eupublicdata"><meta property="og:locale" content="en_GB"><meta property="og:image" content="https://eupublicdata.eu/og-default.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:alt" content="eupublicdata JSON API — eupublicdata"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="eupublicdata JSON API — eupublicdata"><meta name="twitter:description" content="Free public JSON API for EU statistical data — one endpoint per country and per indicator. Open data, CC-BY 4.0, no key required."><meta name="twitter:image" content="https://eupublicdata.eu/og-default.png"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="theme-color" content="#0b0e14"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&display=swap"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://eupublicdata.eu/"},{"@type":"ListItem","position":2,"name":"Api","item":"https://eupublicdata.eu/api/"}]}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://eupublicdata.eu/#publisher","name":"eupublicdata","url":"https://eupublicdata.eu","description":"Independent visualizer of official European public data.","sameAs":["https://eupublicdata.eu/about/"]}</script><script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      window.gtag = gtag;
      gtag('consent', 'default', {
        'ad_storage': 'denied',
        'ad_user_data': 'denied',
        'ad_personalization': 'denied',
        'analytics_storage': 'denied',
        'wait_for_update': 500
      });
    </script><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1478353478768665" crossorigin="anonymous"></script><meta name="google-adsense-account" content="ca-pub-1478353478768665"><link rel="stylesheet" href="/_astro/about.DdXQUq3g.css">
<link rel="stylesheet" href="/_astro/about.BCIivu-F.css"></head> <body class="register-cinema min-h-screen flex flex-col"> <a href="#main" class="skip-link">Skip to content</a> <header class="site-header" data-astro-cid-3ef6ksr2> <div class="container" data-astro-cid-3ef6ksr2> <div class="header-row" data-astro-cid-3ef6ksr2> <a href="/" class="brand" aria-label="eupublicdata home" data-astro-cid-3ef6ksr2> <span class="brand__eu" data-astro-cid-3ef6ksr2>eu</span><span class="brand__watch" data-astro-cid-3ef6ksr2>publicdata</span> </a> <a href="/live/" class="live-badge" aria-label="Live dashboard" data-astro-cid-3ef6ksr2> <span class="live-dot" data-astro-cid-3ef6ksr2></span> LIVE
</a> <nav class="primary-nav" aria-label="Primary" data-astro-cid-3ef6ksr2> <!-- TOPICS dropdown --> <div class="dd" data-dd data-astro-cid-3ef6ksr2> <button class="dd__btn" aria-haspopup="true" aria-expanded="false" data-dd-trigger data-astro-cid-3ef6ksr2>
Topics <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2="true" class="lucide lucide-chevron-down dd__chev">  <path d="m6 9 6 6 6-6"></path>  </svg> </button> <div class="dd__panel dd__panel--wide" role="menu" data-astro-cid-3ef6ksr2> <div class="dd__inner" data-astro-cid-3ef6ksr2> <div class="dd__head" data-astro-cid-3ef6ksr2> <span class="dd__head-label" data-astro-cid-3ef6ksr2>Browse all categories</span> <a href="/data/topics/" class="dd__head-link" data-astro-cid-3ef6ksr2>See all →</a> </div> <div class="dd__grid dd__grid--topics" data-astro-cid-3ef6ksr2> <a class="dd__topic" href="/data/topics/migration/" style="--ac: #818cf8" data-astro-cid-3ef6ksr2> <span class="dd__topic-name" data-astro-cid-3ef6ksr2>Migration &amp; asylum</span> <span class="dd__topic-count" data-astro-cid-3ef6ksr2>15</span> </a><a class="dd__topic" href="/data/topics/demography/" style="--ac: #34d399" data-astro-cid-3ef6ksr2> <span class="dd__topic-name" data-astro-cid-3ef6ksr2>Demography &amp; population</span> <span class="dd__topic-count" data-astro-cid-3ef6ksr2>5</span> </a><a class="dd__topic" href="/data/topics/labour/" style="--ac: #fbbf24" data-astro-cid-3ef6ksr2> <span class="dd__topic-name" data-astro-cid-3ef6ksr2>Labour &amp; employment</span> <span class="dd__topic-count" data-astro-cid-3ef6ksr2>5</span> </a><a class="dd__topic" href="/data/topics/justice/" style="--ac: #fb7185" data-astro-cid-3ef6ksr2> <span class="dd__topic-name" data-astro-cid-3ef6ksr2>Justice &amp; crime</span> <span class="dd__topic-count" data-astro-cid-3ef6ksr2>3</span> </a> </div> </div> </div> </div> <!-- COUNTRIES dropdown --> <div class="dd" data-dd data-astro-cid-3ef6ksr2> <button class="dd__btn" aria-haspopup="true" aria-expanded="false" data-dd-trigger data-astro-cid-3ef6ksr2>
Countries <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2="true" class="lucide lucide-chevron-down dd__chev">  <path d="m6 9 6 6 6-6"></path>  </svg> </button> <div class="dd__panel dd__panel--wide" role="menu" data-astro-cid-3ef6ksr2> <div class="dd__inner" data-astro-cid-3ef6ksr2> <div class="dd__head" data-astro-cid-3ef6ksr2> <span class="dd__head-label" data-astro-cid-3ef6ksr2>Member-state profiles</span> <a href="/data/countries/" class="dd__head-link" data-astro-cid-3ef6ksr2>See all →</a> </div> <div class="dd__grid dd__grid--countries" data-astro-cid-3ef6ksr2> <a class="dd__country" href="/data/countries/austria/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>AT</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Austria</span> </a><a class="dd__country" href="/data/countries/belgium/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>BE</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Belgium</span> </a><a class="dd__country" href="/data/countries/bulgaria/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>BG</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Bulgaria</span> </a><a class="dd__country" href="/data/countries/croatia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>HR</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Croatia</span> </a><a class="dd__country" href="/data/countries/cyprus/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>CY</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Cyprus</span> </a><a class="dd__country" href="/data/countries/czechia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>CZ</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Czechia</span> </a><a class="dd__country" href="/data/countries/denmark/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>DK</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Denmark</span> </a><a class="dd__country" href="/data/countries/estonia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>EE</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Estonia</span> </a><a class="dd__country" href="/data/countries/finland/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>FI</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Finland</span> </a><a class="dd__country" href="/data/countries/france/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>FR</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>France</span> </a><a class="dd__country" href="/data/countries/germany/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>DE</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Germany</span> </a><a class="dd__country" href="/data/countries/greece/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>EL</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Greece</span> </a><a class="dd__country" href="/data/countries/hungary/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>HU</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Hungary</span> </a><a class="dd__country" href="/data/countries/ireland/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>IE</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Ireland</span> </a><a class="dd__country" href="/data/countries/italy/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>IT</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Italy</span> </a><a class="dd__country" href="/data/countries/latvia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>LV</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Latvia</span> </a><a class="dd__country" href="/data/countries/lithuania/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>LT</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Lithuania</span> </a><a class="dd__country" href="/data/countries/luxembourg/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>LU</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Luxembourg</span> </a><a class="dd__country" href="/data/countries/malta/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>MT</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Malta</span> </a><a class="dd__country" href="/data/countries/netherlands/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>NL</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Netherlands</span> </a><a class="dd__country" href="/data/countries/poland/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>PL</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Poland</span> </a><a class="dd__country" href="/data/countries/portugal/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>PT</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Portugal</span> </a><a class="dd__country" href="/data/countries/romania/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>RO</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Romania</span> </a><a class="dd__country" href="/data/countries/slovakia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>SK</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Slovakia</span> </a><a class="dd__country" href="/data/countries/slovenia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>SI</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Slovenia</span> </a><a class="dd__country" href="/data/countries/spain/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>ES</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Spain</span> </a><a class="dd__country" href="/data/countries/sweden/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>SE</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Sweden</span> </a> <a class="dd__country dd__country--eu" href="/data/countries/european-union/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>EU</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>European Union (27)</span> </a> </div> </div> </div> </div> <a class="nav-link " href="/data/indicators/" data-astro-cid-3ef6ksr2>
Indicators <span class="nav-link__count" data-astro-cid-3ef6ksr2>28</span> </a> <a class="nav-link " href="/data/tenders/" data-astro-cid-3ef6ksr2>
Tenders <span class="nav-link__count" data-astro-cid-3ef6ksr2>174k</span> </a> <a class="nav-link " href="/data/funds/" data-astro-cid-3ef6ksr2>
Funds <span class="nav-link__count" data-astro-cid-3ef6ksr2>45k</span> </a> <a class="nav-link " href="/data/research/" data-astro-cid-3ef6ksr2>
Research <span class="nav-link__count" data-astro-cid-3ef6ksr2>76k</span> </a> <a class="nav-link " href="/data/legislation/" data-astro-cid-3ef6ksr2>
Laws <span class="nav-link__count" data-astro-cid-3ef6ksr2>32k</span> </a> <a class="nav-link " href="/data/grants/" data-astro-cid-3ef6ksr2>
Grants
</a> <a class="nav-link " href="/data/sanctions/" data-astro-cid-3ef6ksr2>
Sanctions <span class="nav-link__count" data-astro-cid-3ef6ksr2>6k</span> </a> <a class="nav-link " href="/data/finance/" data-astro-cid-3ef6ksr2>
Finance
</a> <div class="dd" data-dd data-astro-cid-3ef6ksr2> <button class="dd__btn" aria-haspopup="true" aria-expanded="false" data-dd-trigger data-astro-cid-3ef6ksr2>
Flows <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2="true" class="lucide lucide-chevron-down dd__chev">  <path d="m6 9 6 6 6-6"></path>  </svg> </button> <div class="dd__panel" role="menu" data-astro-cid-3ef6ksr2> <div class="dd__inner" data-astro-cid-3ef6ksr2> <div class="dd__head" data-astro-cid-3ef6ksr2> <span class="dd__head-label" data-astro-cid-3ef6ksr2>Asylum origin nations</span> <a href="/data/flows/" class="dd__head-link" data-astro-cid-3ef6ksr2>See all 29 →</a> </div> <div class="dd__grid dd__grid--origins" data-astro-cid-3ef6ksr2> <a class="dd__country" href="/data/flows/afghanistan/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>AF</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Afghanistan</span> </a><a class="dd__country" href="/data/flows/bangladesh/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>BD</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Bangladesh</span> </a><a class="dd__country" href="/data/flows/brazil/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>BR</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Brazil</span> </a><a class="dd__country" href="/data/flows/belarus/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>BY</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Belarus</span> </a><a class="dd__country" href="/data/flows/c-te-d-ivoire/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>CI</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Côte d&#39;Ivoire</span> </a><a class="dd__country" href="/data/flows/china/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>CN</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>China</span> </a><a class="dd__country" href="/data/flows/colombia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>CO</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Colombia</span> </a><a class="dd__country" href="/data/flows/algeria/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>DZ</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Algeria</span> </a><a class="dd__country" href="/data/flows/egypt/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>EG</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Egypt</span> </a><a class="dd__country" href="/data/flows/eritrea/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>ER</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Eritrea</span> </a><a class="dd__country" href="/data/flows/georgia/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>GE</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Georgia</span> </a><a class="dd__country" href="/data/flows/guinea/" data-astro-cid-3ef6ksr2> <span class="dd__country-iso" data-astro-cid-3ef6ksr2>GN</span> <span class="dd__country-name" data-astro-cid-3ef6ksr2>Guinea</span> </a> </div> </div> </div> </div> <span class="nav-sep" aria-hidden="true" data-astro-cid-3ef6ksr2></span> <a class="nav-link nav-link--meta " href="/data/" data-astro-cid-3ef6ksr2>Data home</a> <a class="nav-link nav-link--meta " href="/numbers/" data-astro-cid-3ef6ksr2>Numbers</a> <a class="nav-link nav-link--meta " href="/methodology/" data-astro-cid-3ef6ksr2>Methodology</a> <a class="nav-link nav-link--meta " href="/about/" data-astro-cid-3ef6ksr2>About</a> </nav> <div class="header-spacer" data-astro-cid-3ef6ksr2></div> <button type="button" id="menu-toggle" class="hamburger" aria-label="Open menu" aria-controls="mobile-menu" aria-expanded="false" data-astro-cid-3ef6ksr2> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2="true" class="lucide lucide-menu w-6 h-6 menu-icon-open">  <line x1="4" x2="20" y1="12" y2="12"></line> <line x1="4" x2="20" y1="6" y2="6"></line> <line x1="4" x2="20" y1="18" y2="18"></line>  </svg> <svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" width="24" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none" viewBox="0 0 24 24" data-astro-cid-3ef6ksr2="true" class="lucide lucide-x w-6 h-6 menu-icon-close hidden">  <path d="M18 6 6 18"></path> <path d="m6 6 12 12"></path>  </svg> </button> </div> </div> <!-- ============== MOBILE MENU ============== --> <div id="mobile-menu" class="mobile-menu hidden" data-astro-cid-3ef6ksr2> <div class="container py-3" data-astro-cid-3ef6ksr2> <p class="mobile-menu__heading" data-astro-cid-3ef6ksr2>Topics</p> <ul class="mobile-menu__grid" data-astro-cid-3ef6ksr2> <li data-astro-cid-3ef6ksr2> <a class="mobile-menu__item" href="/data/topics/migration/" style="--ac: #818cf8" data-astro-cid-3ef6ksr2> <span data-astro-cid-3ef6ksr2>Migration &amp; asylum</span> <span class="mobile-menu__count" data-astro-cid-3ef6ksr2>15</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__item" href="/data/topics/demography/" style="--ac: #34d399" data-astro-cid-3ef6ksr2> <span data-astro-cid-3ef6ksr2>Demography &amp; population</span> <span class="mobile-menu__count" data-astro-cid-3ef6ksr2>5</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__item" href="/data/topics/labour/" style="--ac: #fbbf24" data-astro-cid-3ef6ksr2> <span data-astro-cid-3ef6ksr2>Labour &amp; employment</span> <span class="mobile-menu__count" data-astro-cid-3ef6ksr2>5</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__item" href="/data/topics/justice/" style="--ac: #fb7185" data-astro-cid-3ef6ksr2> <span data-astro-cid-3ef6ksr2>Justice &amp; crime</span> <span class="mobile-menu__count" data-astro-cid-3ef6ksr2>3</span> </a> </li> <li data-astro-cid-3ef6ksr2><a class="mobile-menu__see-all" href="/data/topics/" data-astro-cid-3ef6ksr2>See all topics →</a></li> </ul> <p class="mobile-menu__heading" data-astro-cid-3ef6ksr2>Countries</p> <ul class="mobile-menu__grid mobile-menu__grid--cols-3" data-astro-cid-3ef6ksr2> <li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/austria/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>AT</span> <span data-astro-cid-3ef6ksr2>Austria</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/belgium/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>BE</span> <span data-astro-cid-3ef6ksr2>Belgium</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/bulgaria/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>BG</span> <span data-astro-cid-3ef6ksr2>Bulgaria</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/croatia/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>HR</span> <span data-astro-cid-3ef6ksr2>Croatia</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/cyprus/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>CY</span> <span data-astro-cid-3ef6ksr2>Cyprus</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/czechia/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>CZ</span> <span data-astro-cid-3ef6ksr2>Czechia</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/denmark/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>DK</span> <span data-astro-cid-3ef6ksr2>Denmark</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/estonia/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>EE</span> <span data-astro-cid-3ef6ksr2>Estonia</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/finland/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>FI</span> <span data-astro-cid-3ef6ksr2>Finland</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/france/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>FR</span> <span data-astro-cid-3ef6ksr2>France</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/germany/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>DE</span> <span data-astro-cid-3ef6ksr2>Germany</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/greece/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>EL</span> <span data-astro-cid-3ef6ksr2>Greece</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/hungary/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>HU</span> <span data-astro-cid-3ef6ksr2>Hungary</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/ireland/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>IE</span> <span data-astro-cid-3ef6ksr2>Ireland</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/italy/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>IT</span> <span data-astro-cid-3ef6ksr2>Italy</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/latvia/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>LV</span> <span data-astro-cid-3ef6ksr2>Latvia</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/lithuania/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>LT</span> <span data-astro-cid-3ef6ksr2>Lithuania</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/luxembourg/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>LU</span> <span data-astro-cid-3ef6ksr2>Luxembourg</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/malta/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>MT</span> <span data-astro-cid-3ef6ksr2>Malta</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/netherlands/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>NL</span> <span data-astro-cid-3ef6ksr2>Netherlands</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/poland/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>PL</span> <span data-astro-cid-3ef6ksr2>Poland</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/portugal/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>PT</span> <span data-astro-cid-3ef6ksr2>Portugal</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/romania/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>RO</span> <span data-astro-cid-3ef6ksr2>Romania</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/slovakia/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>SK</span> <span data-astro-cid-3ef6ksr2>Slovakia</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/slovenia/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>SI</span> <span data-astro-cid-3ef6ksr2>Slovenia</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/spain/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>ES</span> <span data-astro-cid-3ef6ksr2>Spain</span> </a> </li><li data-astro-cid-3ef6ksr2> <a class="mobile-menu__pill" href="/data/countries/sweden/" data-astro-cid-3ef6ksr2> <span class="mobile-menu__pill-iso" data-astro-cid-3ef6ksr2>SE</span> <span data-astro-cid-3ef6ksr2>Sweden</span> </a> </li> </ul> <p class="mobile-menu__heading" data-astro-cid-3ef6ksr2>More</p> <ul class="mobile-menu__grid" data-astro-cid-3ef6ksr2> <li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/data/" data-astro-cid-3ef6ksr2>Data home</a></li> <li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/data/indicators/" data-astro-cid-3ef6ksr2>All indicators (28)</a></li> <li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/data/flows/" data-astro-cid-3ef6ksr2>Asylum flows</a></li> <li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/live/" data-astro-cid-3ef6ksr2>Live dashboard</a></li> <li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/data/" data-astro-cid-3ef6ksr2>Data</a></li><li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/numbers/" data-astro-cid-3ef6ksr2>Numbers</a></li><li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/methodology/" data-astro-cid-3ef6ksr2>Methodology</a></li><li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/sources/" data-astro-cid-3ef6ksr2>Sources</a></li><li data-astro-cid-3ef6ksr2><a class="mobile-menu__item" href="/about/" data-astro-cid-3ef6ksr2>About</a></li> </ul> </div> </div> </header>  <script type="module">const t=document.getElementById("menu-toggle"),r=document.getElementById("mobile-menu"),i=t?.querySelector(".menu-icon-open"),s=t?.querySelector(".menu-icon-close");t?.addEventListener("click",()=>{if(!r)return;!r.classList.contains("hidden")?(r.classList.add("hidden"),i?.classList.remove("hidden"),s?.classList.add("hidden"),t.setAttribute("aria-expanded","false"),t.setAttribute("aria-label","Open menu")):(r.classList.remove("hidden"),i?.classList.add("hidden"),s?.classList.remove("hidden"),t.setAttribute("aria-expanded","true"),t.setAttribute("aria-label","Close menu"))});const n=document.querySelectorAll("[data-dd]");n.forEach(e=>{const a=e.querySelector("[data-dd-trigger]");a&&a.addEventListener("click",o=>{o.stopPropagation();const c=e.getAttribute("data-open")==="true";n.forEach(d=>{d.removeAttribute("data-open"),d.querySelector("[data-dd-trigger]")?.setAttribute("aria-expanded","false")}),c||(e.setAttribute("data-open","true"),a.setAttribute("aria-expanded","true"))})});document.addEventListener("click",()=>{n.forEach(e=>{e.removeAttribute("data-open"),e.querySelector("[data-dd-trigger]")?.setAttribute("aria-expanded","false")})});document.addEventListener("keydown",e=>{e.key==="Escape"&&n.forEach(a=>{a.removeAttribute("data-open"),a.querySelector("[data-dd-trigger]")?.setAttribute("aria-expanded","false")})});</script> <main id="main" class="flex-1">  <section class="container py-12 prose-lg"> <p class="text-[11px] uppercase tracking-[0.2em] text-white/40 font-mono mb-3">DEVELOPER · API</p> <h1 class="text-4xl font-display font-semibold mb-4">JSON API</h1> <p class="text-white/70 max-w-3xl mb-8">
Free public read-only endpoints serving the same data behind every page on
      this site. CORS-enabled, CC-BY-4.0 license, no key required.
</p> <h2 class="text-xl font-display font-semibold mb-3">Endpoints</h2> <pre class="p-4 border border-white/10 rounded-md text-xs font-mono leading-relaxed overflow-x-auto bg-white/[0.02] text-white/85 mb-8">GET /api/country/[slug].json     # all indicators × all years for one country
GET /api/indicator/[slug].json   # all countries × all years for one indicator
GET /sitemap-index.xml           # full URL index
GET /feed.xml                    # latest data (RSS 2.0)
</pre> <h2 class="text-xl font-display font-semibold mb-3">Examples</h2> <ul class="grid md:grid-cols-2 gap-2 mb-8 text-sm font-mono"> <li><a class="text-white/85 hover:text-white" href="/api/country/germany.json">/api/country/germany.json</a></li> <li><a class="text-white/85 hover:text-white" href="/api/country/italy.json">/api/country/italy.json</a></li> <li><a class="text-white/85 hover:text-white" href="/api/indicator/asylum-applications.json">/api/indicator/asylum-applications.json</a></li> <li><a class="text-white/85 hover:text-white" href="/api/indicator/gdp-eur-million-current.json">/api/indicator/gdp-eur-million-current.json</a></li> </ul> <h2 class="text-xl font-display font-semibold mb-3">Available endpoints</h2> <p class="text-sm text-white/60 mb-3">28 country endpoints · 28 indicator endpoints</p> <details class="mb-4 border border-white/10 rounded-md p-3"> <summary class="cursor-pointer text-sm">All country endpoints</summary> <ul class="grid md:grid-cols-3 gap-1 mt-3 text-xs font-mono"> <li><a class="text-white/70 hover:text-white" href="/api/country/austria.json">/api/country/austria.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/belgium.json">/api/country/belgium.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/bulgaria.json">/api/country/bulgaria.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/cyprus.json">/api/country/cyprus.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/czechia.json">/api/country/czechia.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/germany.json">/api/country/germany.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/denmark.json">/api/country/denmark.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/estonia.json">/api/country/estonia.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/greece.json">/api/country/greece.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/spain.json">/api/country/spain.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/finland.json">/api/country/finland.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/france.json">/api/country/france.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/croatia.json">/api/country/croatia.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/hungary.json">/api/country/hungary.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/ireland.json">/api/country/ireland.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/italy.json">/api/country/italy.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/lithuania.json">/api/country/lithuania.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/luxembourg.json">/api/country/luxembourg.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/latvia.json">/api/country/latvia.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/malta.json">/api/country/malta.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/netherlands.json">/api/country/netherlands.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/poland.json">/api/country/poland.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/portugal.json">/api/country/portugal.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/romania.json">/api/country/romania.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/sweden.json">/api/country/sweden.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/slovenia.json">/api/country/slovenia.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/slovakia.json">/api/country/slovakia.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/country/european-union.json">/api/country/european-union.json</a></li> </ul> </details> <details class="mb-8 border border-white/10 rounded-md p-3"> <summary class="cursor-pointer text-sm">All indicator endpoints</summary> <ul class="grid md:grid-cols-2 gap-1 mt-3 text-xs font-mono"> <li><a class="text-white/70 hover:text-white" href="/api/indicator/prison-adult.json">/api/indicator/prison-adult.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/prison-juvenile.json">/api/indicator/prison-juvenile.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/prison-population.json">/api/indicator/prison-population.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/employment-eu-foreign.json">/api/indicator/employment-eu-foreign.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/employment-foreign.json">/api/indicator/employment-foreign.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/employment-nationals.json">/api/indicator/employment-nationals.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/employment-non-eu-foreign.json">/api/indicator/employment-non-eu-foreign.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/employment-total.json">/api/indicator/employment-total.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/naturalisations.json">/api/indicator/naturalisations.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-applications.json">/api/indicator/asylum-applications.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-decisions-negative.json">/api/indicator/asylum-decisions-negative.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-decisions-positive.json">/api/indicator/asylum-decisions-positive.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-humanitarian-protection.json">/api/indicator/asylum-humanitarian-protection.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-refugee-status.json">/api/indicator/asylum-refugee-status.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-subsidiary-protection.json">/api/indicator/asylum-subsidiary-protection.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/asylum-decisions.json">/api/indicator/asylum-decisions.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/return-orders.json">/api/indicator/return-orders.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/returns-executed.json">/api/indicator/returns-executed.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/population-eu-foreign.json">/api/indicator/population-eu-foreign.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/population-nationals.json">/api/indicator/population-nationals.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/population-non-eu-foreign.json">/api/indicator/population-non-eu-foreign.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/population-stateless.json">/api/indicator/population-stateless.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/population-total.json">/api/indicator/population-total.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/first-permits-education.json">/api/indicator/first-permits-education.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/first-permits-work.json">/api/indicator/first-permits-work.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/first-permits-family.json">/api/indicator/first-permits-family.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/first-permits-other.json">/api/indicator/first-permits-other.json</a></li><li><a class="text-white/70 hover:text-white" href="/api/indicator/first-residence-permits.json">/api/indicator/first-residence-permits.json</a></li> </ul> </details> <h2 class="text-xl font-display font-semibold mb-3">Citation</h2> <p class="text-sm text-white/70 mb-2">
Data licensed under CC-BY-4.0. Cite as:
</p> <pre class="p-3 border border-white/10 rounded text-xs font-mono mb-8 bg-white/[0.02]">eupublicdata (2026). European public data portal.
Sourced from Eurostat, TED, Kohesio, CORDIS, EUR-Lex.
https://eupublicdata.eu
</pre> </section>  </main> <footer class="bg-[color:var(--c-bg-soft)] border-t border-white/10 mt-32"> <div class="container py-12"> <!-- Top: 3-col brand/site/contact --> <div class="grid md:grid-cols-3 gap-8 text-sm mb-10 pb-10 border-b border-white/5"> <div> <p class="text-white font-display text-lg mb-2">eu<span class="text-[color:var(--c-accent)]">publicdata</span></p> <p class="text-white/55 leading-relaxed">
Independent visualizer of official EU public data. All figures sourced from
          institutional providers under reusable licences (CC-BY 4.0 or equivalent).
          Methodology disclosed; no editorial commentary.
</p> </div> <div> <p class="text-white font-semibold mb-2">Site</p> <ul class="space-y-1.5 text-white/60"> <li><a href="/data/" class="hover:text-white">Data</a></li> <li><a href="/data/topics/" class="hover:text-white">Topics</a></li> <li><a href="/data/countries/" class="hover:text-white">Countries</a></li> <li><a href="/data/indicators/" class="hover:text-white">Indicators</a></li> <li><a href="/data/sources/" class="hover:text-white">Source datasets</a></li> <li><a href="/data/flows/" class="hover:text-white">Asylum flows</a></li> <li><a href="/live/" class="hover:text-white">Live dashboard</a></li> <li><a href="/sitemap/" class="hover:text-white">HTML sitemap</a></li> <li><a href="/feed.xml" class="hover:text-white">RSS feed</a></li> </ul> </div> <div> <p class="text-white font-semibold mb-2">Project</p> <ul class="space-y-1.5 text-white/60"> <li><a href="/about/" class="hover:text-white">About</a></li> <li><a href="/methodology/" class="hover:text-white">Methodology</a></li> <li><a href="/sources/" class="hover:text-white">Sources</a></li> <li><a href="/transparency/" class="hover:text-white">Transparency</a></li> <li><a href="/corrections/" class="hover:text-white">Corrections</a></li> <li><a href="/press/" class="hover:text-white">Press kit</a></li> <li><a href="/contact/" class="hover:text-white">Contact</a></li> </ul> <p class="text-white font-semibold mt-4 mb-2">Legal</p> <ul class="space-y-1.5 text-white/60"> <li><a href="/privacy/" class="hover:text-white">Privacy</a></li> <li><a href="/cookies/" class="hover:text-white">Cookies</a></li> <li><a href="/terms/" class="hover:text-white">Terms of use</a></li> </ul> </div> </div> <!-- Middle: topic + country grids --> <div class="grid md:grid-cols-2 gap-10 mb-10 pb-10 border-b border-white/5"> <div> <p class="text-[11px] uppercase tracking-[0.2em] text-white/40 font-mono mb-3">Topics</p> <ul class="grid grid-cols-2 gap-x-4 gap-y-1 text-xs"> <li> <a class="text-white/65 hover:text-white" href="/data/topics/migration/"> Migration &amp; asylum </a> <span class="text-white/30 ml-1 font-mono">(15)</span> </li><li> <a class="text-white/65 hover:text-white" href="/data/topics/demography/"> Demography &amp; population </a> <span class="text-white/30 ml-1 font-mono">(5)</span> </li><li> <a class="text-white/65 hover:text-white" href="/data/topics/labour/"> Labour &amp; employment </a> <span class="text-white/30 ml-1 font-mono">(5)</span> </li><li> <a class="text-white/65 hover:text-white" href="/data/topics/justice/"> Justice &amp; crime </a> <span class="text-white/30 ml-1 font-mono">(3)</span> </li> </ul> </div> <div> <p class="text-[11px] uppercase tracking-[0.2em] text-white/40 font-mono mb-3">Countries</p> <ul class="grid grid-cols-3 gap-x-3 gap-y-1 text-xs font-mono"> <li> <a class="text-white/65 hover:text-white" href="/data/countries/austria/"> <span class="text-white/40 mr-1">AT</span>Austria </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/belgium/"> <span class="text-white/40 mr-1">BE</span>Belgium </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/bulgaria/"> <span class="text-white/40 mr-1">BG</span>Bulgaria </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/croatia/"> <span class="text-white/40 mr-1">HR</span>Croatia </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/cyprus/"> <span class="text-white/40 mr-1">CY</span>Cyprus </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/czechia/"> <span class="text-white/40 mr-1">CZ</span>Czechia </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/denmark/"> <span class="text-white/40 mr-1">DK</span>Denmark </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/estonia/"> <span class="text-white/40 mr-1">EE</span>Estonia </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/finland/"> <span class="text-white/40 mr-1">FI</span>Finland </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/france/"> <span class="text-white/40 mr-1">FR</span>France </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/germany/"> <span class="text-white/40 mr-1">DE</span>Germany </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/greece/"> <span class="text-white/40 mr-1">EL</span>Greece </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/hungary/"> <span class="text-white/40 mr-1">HU</span>Hungary </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/ireland/"> <span class="text-white/40 mr-1">IE</span>Ireland </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/italy/"> <span class="text-white/40 mr-1">IT</span>Italy </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/latvia/"> <span class="text-white/40 mr-1">LV</span>Latvia </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/lithuania/"> <span class="text-white/40 mr-1">LT</span>Lithuania </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/luxembourg/"> <span class="text-white/40 mr-1">LU</span>Luxembourg </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/malta/"> <span class="text-white/40 mr-1">MT</span>Malta </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/netherlands/"> <span class="text-white/40 mr-1">NL</span>Netherlands </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/poland/"> <span class="text-white/40 mr-1">PL</span>Poland </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/portugal/"> <span class="text-white/40 mr-1">PT</span>Portugal </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/romania/"> <span class="text-white/40 mr-1">RO</span>Romania </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/slovakia/"> <span class="text-white/40 mr-1">SK</span>Slovakia </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/slovenia/"> <span class="text-white/40 mr-1">SI</span>Slovenia </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/spain/"> <span class="text-white/40 mr-1">ES</span>Spain </a> </li><li> <a class="text-white/65 hover:text-white" href="/data/countries/sweden/"> <span class="text-white/40 mr-1">SE</span>Sweden </a> </li> </ul> </div> </div> <!-- Bottom: copyright --> <p class="text-white/35 text-xs">
© 2026 eupublicdata — Carpi (MO), Italy.&nbsp;
      Independent civic project. Not affiliated with EU institutions.&nbsp;
      Indicators: 28 · Countries: 28 · Topics: 4.
</p> </div> </footer> <div id="cookie-banner" class="fixed bottom-0 left-0 right-0 z-50 hidden bg-white border-t-2 border-slate-300 shadow-2xl" role="dialog" aria-labelledby="cookie-banner-title" aria-describedby="cookie-banner-desc"> <div class="container py-4 sm:py-5"> <div class="flex flex-col md:flex-row md:items-center gap-4"> <div class="flex-1 min-w-0"> <h3 id="cookie-banner-title" class="font-semibold text-slate-900 mb-1">
Cookies and privacy
</h3> <p id="cookie-banner-desc" class="text-sm text-slate-700">
We use technical cookies necessary for the site to work and third-party cookies
          for personalised advertising (Google AdSense). See our
<a href="/cookies/" class="underline text-primary-700 hover:text-primary-800">cookie policy</a>
and <a href="/privacy/" class="underline text-primary-700 hover:text-primary-800">privacy policy</a>.
</p> </div> <div class="flex flex-col sm:flex-row gap-2 flex-shrink-0"> <button id="cookie-reject" class="px-4 py-2 text-sm border border-slate-300 rounded-lg hover:bg-slate-50 transition">
Necessary only
</button> <button id="cookie-customize" class="px-4 py-2 text-sm border border-slate-300 rounded-lg hover:bg-slate-50 transition">
Customise
</button> <button id="cookie-accept" class="px-4 py-2 text-sm bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition font-medium">
Accept all
</button> </div> </div> </div> </div> <div id="cookie-modal" class="fixed inset-0 z-50 hidden bg-black/50 flex items-center justify-center p-4" role="dialog" aria-modal="true" aria-labelledby="cookie-modal-title"> <div class="bg-white rounded-xl max-w-2xl w-full max-h-[90vh] overflow-y-auto p-6 shadow-2xl"> <h2 id="cookie-modal-title" class="text-2xl font-bold mb-4">Cookie preferences</h2> <div class="space-y-4"> <div class="border border-slate-200 rounded-lg p-4"> <div class="flex items-start justify-between gap-4"> <div class="flex-1"> <h3 class="font-semibold">Technical cookies (necessary)</h3> <p class="text-sm text-slate-600 mt-1">
Essential for the site to function. Store local preferences (filters, wizard,
              consent). Cannot be disabled.
</p> </div> <input type="checkbox" checked disabled class="w-5 h-5 mt-1 flex-shrink-0" aria-label="Necessary cookies always active"> </div> </div> <div class="border border-slate-200 rounded-lg p-4"> <div class="flex items-start justify-between gap-4"> <div class="flex-1"> <h3 class="font-semibold">Personalised advertising cookies</h3> <p class="text-sm text-slate-600 mt-1">
Used by Google to display personalised ads based on your interests. If you
              disable them, you will see non-personalised contextual ads.
</p> </div> <input type="checkbox" id="cookie-ads-toggle" class="w-5 h-5 mt-1 flex-shrink-0 cursor-pointer" aria-label="Personalised advertising cookies"> </div> </div> </div> <div class="flex flex-col sm:flex-row gap-2 mt-6 justify-end"> <button id="cookie-modal-cancel" class="px-4 py-2 border border-slate-300 rounded-lg hover:bg-slate-50">
Cancel
</button> <button id="cookie-modal-save" class="px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 font-medium">
Save preferences
</button> </div> </div> </div> <script>
  // @ts-nocheck
  const COOKIE_KEY = 'cookie_consent_v1';
  const COOKIE_DURATION_DAYS = 180;

  function getCookie(name) {
    const v = document.cookie.split('; ').find((r) => r.startsWith(name + '='));
    return v ? v.split('=')[1] : null;
  }

  function setCookie(name, value, days) {
    const d = new Date();
    d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000);
    document.cookie = `${name}=${value};expires=${d.toUTCString()};path=/;SameSite=Lax`;
  }

  function updateConsent(granted) {
    if (typeof window.gtag !== 'function') return;
    const state = granted ? 'granted' : 'denied';
    window.gtag('consent', 'update', {
      'ad_storage': state,
      'ad_user_data': state,
      'ad_personalization': state,
      'analytics_storage': state
    });
  }

  function handleConsent(consent) {
    setCookie(COOKIE_KEY, consent, COOKIE_DURATION_DAYS);
    const banner = document.getElementById('cookie-banner');
    if (banner) banner.classList.add('hidden');
    updateConsent(consent === 'all');
    window.dispatchEvent(new CustomEvent('cookie-consent-changed', { detail: { consent } }));
  }

  document.addEventListener('DOMContentLoaded', () => {
    const consent = getCookie(COOKIE_KEY);
    const banner = document.getElementById('cookie-banner');
    const modal = document.getElementById('cookie-modal');

    if (!consent) {
      banner.classList.remove('hidden');
    } else if (consent === 'all') {
      updateConsent(true);
    }

    document.getElementById('cookie-accept')?.addEventListener('click', () => handleConsent('all'));
    document.getElementById('cookie-reject')?.addEventListener('click', () => handleConsent('necessary'));

    document.getElementById('cookie-customize')?.addEventListener('click', () => {
      banner.classList.add('hidden');
      modal.classList.remove('hidden');
      const current = getCookie(COOKIE_KEY);
      const t = document.getElementById('cookie-ads-toggle');
      if (t) t.checked = current === 'all';
    });

    document.getElementById('cookie-modal-cancel')?.addEventListener('click', () => {
      modal.classList.add('hidden');
      if (!getCookie(COOKIE_KEY)) banner.classList.remove('hidden');
    });

    document.getElementById('cookie-modal-save')?.addEventListener('click', () => {
      const adsEnabled = document.getElementById('cookie-ads-toggle')?.checked;
      modal.classList.add('hidden');
      handleConsent(adsEnabled ? 'all' : 'necessary');
    });

    document.getElementById('manage-cookies-btn')?.addEventListener('click', (e) => {
      e.preventDefault();
      modal.classList.remove('hidden');
      const current = getCookie(COOKIE_KEY);
      const t = document.getElementById('cookie-ads-toggle');
      if (t) t.checked = current === 'all';
    });
  });
</script> <script>
      // Trigger stagger-reveal animations once paint is ready.
      requestAnimationFrame(() => document.body.classList.add('ready'));
    </script> </body> </html>