{
  "snapshot_id": "approved-static-48d32b636f07abc8",
  "page_version": "935515e6c3a3ca6f98bf54ea49138646",
  "content_date": "2026-10-16",
  "schema_version": "immigrationdb-region-v1",
  "region_id": "region:pt:official:pt:portugal_admin_districts_autonomous_regions_20260714:03",
  "name": "Braga District",
  "name_local": "Braga",
  "country_code": "PT",
  "country": "Portugal",
  "canonical_url": "https://immigrationdb.com/countries/portugal/braga-district/",
  "summary": "Braga District has 43 published cities; the largest is Braga, with 212,635 residents. Net rent runs from €3.51 to €8.57 per m² a month across the 19 cities that publish it. The median gross salary runs from €1,092 to €1,286 a month across 4 cities.",
  "cities": [
    {
      "name": "Braga",
      "canonical_url": "https://immigrationdb.com/cities/pt/braga/",
      "population": 212635,
      "rent_eur_per_m2_month": 8.57,
      "median_gross_salary_eur_month": 1286,
      "unemployment_percent": 2.36,
      "pm25_ug_m3": null
    },
    {
      "name": "Guimarães",
      "canonical_url": "https://immigrationdb.com/cities/pt/guimaraes/",
      "population": 156830,
      "rent_eur_per_m2_month": 6.65,
      "median_gross_salary_eur_month": 1103.6,
      "unemployment_percent": 3.42,
      "pm25_ug_m3": null
    },
    {
      "name": "Vila Nova de Famalicão",
      "canonical_url": "https://immigrationdb.com/cities/pt/vila-nova-de-famalicao/",
      "population": 133534,
      "rent_eur_per_m2_month": 6.82,
      "median_gross_salary_eur_month": 1257.8,
      "unemployment_percent": 2.69,
      "pm25_ug_m3": null
    },
    {
      "name": "Barcelos",
      "canonical_url": "https://immigrationdb.com/cities/pt/barcelos/",
      "population": 116752,
      "rent_eur_per_m2_month": 6.54,
      "median_gross_salary_eur_month": 1091.8,
      "unemployment_percent": 2.06,
      "pm25_ug_m3": null
    },
    {
      "name": "Vila Verde",
      "canonical_url": "https://immigrationdb.com/cities/pt/vila-verde/",
      "population": 47888,
      "rent_eur_per_m2_month": 5.95,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.12,
      "pm25_ug_m3": null
    },
    {
      "name": "Esposende",
      "canonical_url": "https://immigrationdb.com/cities/pt/esposende/",
      "population": 35552,
      "rent_eur_per_m2_month": 7.64,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.09,
      "pm25_ug_m3": null
    },
    {
      "name": "Vizela",
      "canonical_url": "https://immigrationdb.com/cities/pt/vizela/",
      "population": 23736,
      "rent_eur_per_m2_month": 5.83,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 3.46,
      "pm25_ug_m3": null
    },
    {
      "name": "Póvoa de Lanhoso",
      "canonical_url": "https://immigrationdb.com/cities/pt/povoa-de-lanhoso/",
      "population": 21886,
      "rent_eur_per_m2_month": 5,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.4,
      "pm25_ug_m3": null
    },
    {
      "name": "Celorico de Basto",
      "canonical_url": "https://immigrationdb.com/cities/pt/celorico-de-basto/",
      "population": 20098,
      "rent_eur_per_m2_month": 3.51,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.83,
      "pm25_ug_m3": null
    },
    {
      "name": "Amares",
      "canonical_url": "https://immigrationdb.com/cities/pt/amares/",
      "population": 18889,
      "rent_eur_per_m2_month": 6.18,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.18,
      "pm25_ug_m3": null
    },
    {
      "name": "Cabeceiras de Basto",
      "canonical_url": "https://immigrationdb.com/cities/pt/cabeceiras-de-basto/",
      "population": 16710,
      "rent_eur_per_m2_month": 3.91,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.9,
      "pm25_ug_m3": null
    },
    {
      "name": "Fafe",
      "canonical_url": "https://immigrationdb.com/cities/pt/fafe/",
      "population": 15703,
      "rent_eur_per_m2_month": 4.7,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 9.83,
      "pm25_ug_m3": null
    },
    {
      "name": "Vieira do Minho",
      "canonical_url": "https://immigrationdb.com/cities/pt/vieira-do-minho/",
      "population": 12997,
      "rent_eur_per_m2_month": 5.83,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 2.44,
      "pm25_ug_m3": null
    },
    {
      "name": "Caldas de Vizela",
      "canonical_url": "https://immigrationdb.com/cities/pt/caldas-de-vizela/",
      "population": 11072,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Joane",
      "canonical_url": "https://immigrationdb.com/cities/pt/joane/",
      "population": 11053,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Ribeirão",
      "canonical_url": "https://immigrationdb.com/cities/pt/ribeirao/",
      "population": 9027,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Terras de Bouro",
      "canonical_url": "https://immigrationdb.com/cities/pt/terras-de-bouro/",
      "population": 7253,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": 1.68,
      "pm25_ug_m3": null
    },
    {
      "name": "Ponte",
      "canonical_url": "https://immigrationdb.com/cities/pt/ponte/",
      "population": 6687,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Taipas",
      "canonical_url": "https://immigrationdb.com/cities/pt/taipas/",
      "population": 6304,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Brito",
      "canonical_url": "https://immigrationdb.com/cities/pt/brito/",
      "population": 4774,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Moreira de Conegos",
      "canonical_url": "https://immigrationdb.com/cities/pt/moreira-de-conegos/",
      "population": 4651,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Oliveira",
      "canonical_url": "https://immigrationdb.com/cities/pt/oliveira/",
      "population": 85,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Arcos",
      "canonical_url": "https://immigrationdb.com/cities/pt/arcos/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Aveleda",
      "canonical_url": "https://immigrationdb.com/cities/pt/aveleda/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Bairro Novo",
      "canonical_url": "https://immigrationdb.com/cities/pt/bairro-novo/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Barrosas",
      "canonical_url": "https://immigrationdb.com/cities/pt/barrosas/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Caldelas",
      "canonical_url": "https://immigrationdb.com/cities/pt/caldelas/",
      "population": 0,
      "rent_eur_per_m2_month": 6.18,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Calendário",
      "canonical_url": "https://immigrationdb.com/cities/pt/calendario/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Ferreiros",
      "canonical_url": "https://immigrationdb.com/cities/pt/ferreiros/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Galegos",
      "canonical_url": "https://immigrationdb.com/cities/pt/galegos/",
      "population": 0,
      "rent_eur_per_m2_month": 6.54,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Gondizalves",
      "canonical_url": "https://immigrationdb.com/cities/pt/gondizalves/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Gualtar",
      "canonical_url": "https://immigrationdb.com/cities/pt/gualtar/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Marinhas",
      "canonical_url": "https://immigrationdb.com/cities/pt/marinhas/",
      "population": 0,
      "rent_eur_per_m2_month": 7.64,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Merelim",
      "canonical_url": "https://immigrationdb.com/cities/pt/merelim/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Nine",
      "canonical_url": "https://immigrationdb.com/cities/pt/nine/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Palmeira",
      "canonical_url": "https://immigrationdb.com/cities/pt/palmeira/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Real",
      "canonical_url": "https://immigrationdb.com/cities/pt/real/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Refojos de Basto",
      "canonical_url": "https://immigrationdb.com/cities/pt/refojos-de-basto/",
      "population": 0,
      "rent_eur_per_m2_month": 3.91,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Sande",
      "canonical_url": "https://immigrationdb.com/cities/pt/sande/",
      "population": 0,
      "rent_eur_per_m2_month": 5.95,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Selho",
      "canonical_url": "https://immigrationdb.com/cities/pt/selho/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Semelhe",
      "canonical_url": "https://immigrationdb.com/cities/pt/semelhe/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Serzedo",
      "canonical_url": "https://immigrationdb.com/cities/pt/serzedo/",
      "population": 0,
      "rent_eur_per_m2_month": 7.59,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    },
    {
      "name": "Urgeses",
      "canonical_url": "https://immigrationdb.com/cities/pt/urgeses/",
      "population": 0,
      "rent_eur_per_m2_month": null,
      "median_gross_salary_eur_month": null,
      "unemployment_percent": null,
      "pm25_ug_m3": null
    }
  ],
  "rankings": [
    {
      "key": "rent",
      "title": "Lowest net rent",
      "items": [
        {
          "name": "Celorico de Basto",
          "href": "/cities/pt/celorico-de-basto/",
          "value": "€3.51/m²",
          "year": "2026"
        },
        {
          "name": "Cabeceiras de Basto",
          "href": "/cities/pt/cabeceiras-de-basto/",
          "value": "€3.91/m²",
          "year": "2026"
        },
        {
          "name": "Refojos de Basto",
          "href": "/cities/pt/refojos-de-basto/",
          "value": "€3.91/m²",
          "year": "2026"
        },
        {
          "name": "Fafe",
          "href": "/cities/pt/fafe/",
          "value": "€4.70/m²",
          "year": "2026"
        },
        {
          "name": "Póvoa de Lanhoso",
          "href": "/cities/pt/povoa-de-lanhoso/",
          "value": "€5.00/m²",
          "year": "2026"
        }
      ]
    }
  ]
}
