{
  "department": "85",
  "rulesetVersion": 10,
  "crawlerVersion": 2,
  "crawledOn": "2026-10-24",
  "communes": {
    "total": 253,
    "withWebsite": 232,
    "reachable": 217,
    "pagesCrawled": 5730,
    "delegatedExcluded": 6
  },
  "checks": [
    {
      "code": "A11Y_DECLARATION",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "A11Y_DECL",
      "pass": 103,
      "fail": 104,
      "unknown": 46,
      "notApplicable": 0,
      "failHighConfidence": 34
    },
    {
      "code": "A11Y_HOMEPAGE_MENTION",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "A11Y_DECL",
      "pass": 44,
      "fail": 162,
      "unknown": 47,
      "notApplicable": 0,
      "failHighConfidence": 160
    },
    {
      "code": "A11Y_SCHEMA",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "A11Y_DECL",
      "pass": 30,
      "fail": 172,
      "unknown": 51,
      "notApplicable": 0,
      "failHighConfidence": 142
    },
    {
      "code": "DPO_CONTACT",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "DPO",
      "pass": 105,
      "fail": 102,
      "unknown": 46,
      "notApplicable": 0,
      "failHighConfidence": 92
    },
    {
      "code": "RGPD_POLICY",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "RGPD_INFO",
      "pass": 203,
      "fail": 4,
      "unknown": 46,
      "notApplicable": 0,
      "failHighConfidence": 2
    },
    {
      "code": "MENTIONS_LEGALES",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "LCEN",
      "pass": 203,
      "fail": 4,
      "unknown": 46,
      "notApplicable": 0,
      "failHighConfidence": 3
    },
    {
      "code": "ACTES_PUBLICATION",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "ACTES",
      "pass": 28,
      "fail": 11,
      "unknown": 9,
      "notApplicable": 205,
      "failHighConfidence": 4
    },
    {
      "code": "CNIL_COOKIES",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "RGPD_INFO",
      "pass": 128,
      "fail": 79,
      "unknown": 46,
      "notApplicable": 0,
      "failHighConfidence": 74
    },
    {
      "code": "NO_SITE",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 217,
      "fail": 36,
      "unknown": 0,
      "notApplicable": 0,
      "failHighConfidence": 15
    },
    {
      "code": "HTTPS",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 212,
      "fail": 5,
      "unknown": 36,
      "notApplicable": 0,
      "failHighConfidence": 5
    },
    {
      "code": "MOBILE_VIEWPORT",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 211,
      "fail": 6,
      "unknown": 36,
      "notApplicable": 0,
      "failHighConfidence": 6
    },
    {
      "code": "HTML_WEIGHT",
      "kind": "TECHNICAL",
      "impact": "LOW",
      "obligationCode": null,
      "pass": 208,
      "fail": 9,
      "unknown": 36,
      "notApplicable": 0,
      "failHighConfidence": 9
    },
    {
      "code": "LAST_UPDATED",
      "kind": "TECHNICAL",
      "impact": "MEDIUM",
      "obligationCode": null,
      "pass": 199,
      "fail": 7,
      "unknown": 47,
      "notApplicable": 0,
      "failHighConfidence": 2
    },
    {
      "code": "CMS_FINGERPRINT",
      "kind": "TECHNICAL",
      "impact": "LOW",
      "obligationCode": null,
      "pass": 184,
      "fail": 0,
      "unknown": 69,
      "notApplicable": 0,
      "failHighConfidence": 0
    },
    {
      "code": "CMS_OUTDATED",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 0,
      "fail": 21,
      "unknown": 232,
      "notApplicable": 0,
      "failHighConfidence": 21
    },
    {
      "code": "EMAIL_DOMAIN",
      "kind": "TECHNICAL",
      "impact": "MEDIUM",
      "obligationCode": null,
      "pass": 233,
      "fail": 18,
      "unknown": 2,
      "notApplicable": 0,
      "failHighConfidence": 18
    }
  ],
  "populationBands": [
    {
      "band": "moins de 500",
      "communes": 22,
      "declarationMissing": 6
    },
    {
      "band": "500 à 1 999",
      "communes": 128,
      "declarationMissing": 58
    },
    {
      "band": "2 000 à 4 999",
      "communes": 76,
      "declarationMissing": 30
    },
    {
      "band": "5 000 à 9 999",
      "communes": 19,
      "declarationMissing": 9
    },
    {
      "band": "10 000 et plus",
      "communes": 8,
      "declarationMissing": 1
    }
  ],
  "cms": [
    {
      "label": "wordpress",
      "count": 115
    },
    {
      "label": "drupal",
      "count": 40
    },
    {
      "label": "inconnu",
      "count": 33
    },
    {
      "label": "intramuros",
      "count": 23
    },
    {
      "label": "joomla",
      "count": 5
    },
    {
      "label": "wix",
      "count": 1
    }
  ],
  "freshness": [
    {
      "label": "moins de 6 mois",
      "count": 191
    },
    {
      "label": "6 à 12 mois",
      "count": 8
    },
    {
      "label": "1 à 2 ans",
      "count": 1
    },
    {
      "label": "2 à 5 ans",
      "count": 4
    },
    {
      "label": "plus de 5 ans",
      "count": 2
    },
    {
      "label": "inconnu",
      "count": 11
    }
  ],
  "obligationsMet": [
    {
      "label": "aucune",
      "count": 1
    },
    {
      "label": "1 sur 6",
      "count": 6
    },
    {
      "label": "2 sur 6",
      "count": 48
    },
    {
      "label": "3 sur 6",
      "count": 66
    },
    {
      "label": "4 sur 6",
      "count": 49
    },
    {
      "label": "5 sur 6",
      "count": 30
    },
    {
      "label": "6 sur 6",
      "count": 7
    }
  ],
  "obligationsMeasured": 207,
  "unreachable": [
    {
      "label": "aucun site connu",
      "count": 21
    },
    {
      "label": "site en ligne, accès refusé au robot",
      "count": 0
    },
    {
      "label": "adresse publiée en erreur",
      "count": 0
    },
    {
      "label": "erreur du serveur au moment du relevé",
      "count": 0
    },
    {
      "label": "domaine ou certificat hors service",
      "count": 2
    },
    {
      "label": "autre",
      "count": 13
    }
  ],
  "map": [
    {
      "insee": "85001",
      "name": "L'Aiguillon-la-Presqu'île",
      "lat": 46.31,
      "lon": -1.2801,
      "population": 2845,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 32,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laiguillonlapresquile.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laiguillonlapresquile.fr/"
        }
      ]
    },
    {
      "insee": "85002",
      "name": "L'Aiguillon-sur-Vie",
      "lat": 46.6723,
      "lon": -1.8303,
      "population": 2277,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 25,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://laiguillonsurvie.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laiguillonsurvie.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laiguillonsurvie.fr/"
        }
      ]
    },
    {
      "insee": "85003",
      "name": "Aizenay",
      "lat": 46.7366,
      "lon": -1.6271,
      "population": 10365,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aizenay.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aizenay.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aizenay.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aizenay.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aizenay.fr/"
        }
      ]
    },
    {
      "insee": "85004",
      "name": "Angles",
      "lat": 46.3873,
      "lon": -1.4045,
      "population": 3115,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://angles.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://angles.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://angles.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://angles.fr/"
        }
      ]
    },
    {
      "insee": "85005",
      "name": "Antigny",
      "lat": 46.6141,
      "lon": -0.7576,
      "population": 1027,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://antigny85.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://antigny85.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://antigny85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://antigny85.fr/"
        }
      ]
    },
    {
      "insee": "85006",
      "name": "Apremont",
      "lat": 46.76,
      "lon": -1.7498,
      "population": 2108,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://apremont85.fr/privacy-policy"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://apremont85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://apremont85.fr/"
        }
      ]
    },
    {
      "insee": "85008",
      "name": "Aubigny-Les Clouzeaux",
      "lat": 46.6123,
      "lon": -1.4794,
      "population": 7191,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 5,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aubigny-les-clouzeaux.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://aubigny-les-clouzeaux.fr/"
        }
      ]
    },
    {
      "insee": "85009",
      "name": "Auchay-sur-Vendée",
      "lat": 46.4366,
      "lon": -0.8739,
      "population": 1122,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 3,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85010",
      "name": "Avrillé",
      "lat": 46.4744,
      "lon": -1.4983,
      "population": 1403,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://avrille85.fr/contact"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "85011",
      "name": "Barbâtre",
      "lat": 46.9274,
      "lon": -2.1723,
      "population": 1824,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://barbatre.fr/accueil"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://barbatre.fr/accueil"
        }
      ]
    },
    {
      "insee": "85012",
      "name": "La Barre-de-Monts",
      "lat": 46.8741,
      "lon": -2.0915,
      "population": 2367,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85013",
      "name": "Bazoges-en-Paillers",
      "lat": 46.9204,
      "lon": -1.1472,
      "population": 1555,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bazoges-en-paillers.fr/bazoges-en-paillers/mentions-legales.html"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bazoges-en-paillers.fr/"
        }
      ]
    },
    {
      "insee": "85014",
      "name": "Bazoges-en-Pareds",
      "lat": 46.6599,
      "lon": -0.9163,
      "population": 1184,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bazoges-en-pareds.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bazoges-en-pareds.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bazoges-en-pareds.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bazoges-en-pareds.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bazoges-en-pareds.fr/fr"
        }
      ]
    },
    {
      "insee": "85015",
      "name": "Beaufou",
      "lat": 46.8226,
      "lon": -1.5124,
      "population": 1683,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-beaufou.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-beaufou.fr/protection-des-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-beaufou.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-beaufou.fr/"
        }
      ]
    },
    {
      "insee": "85016",
      "name": "Beaulieu-sous-la-Roche",
      "lat": 46.6869,
      "lon": -1.6246,
      "population": 2421,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://beaulieusouslaroche.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://beaulieusouslaroche.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://beaulieusouslaroche.fr/fr"
        }
      ]
    },
    {
      "insee": "85017",
      "name": "Beaurepaire",
      "lat": 46.9076,
      "lon": -1.0998,
      "population": 2385,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85018",
      "name": "Beauvoir-sur-Mer",
      "lat": 46.9047,
      "lon": -2.0648,
      "population": 4035,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-beauvoirsurmer.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-beauvoirsurmer.fr/"
        }
      ]
    },
    {
      "insee": "85019",
      "name": "Bellevigny",
      "lat": 46.7876,
      "lon": -1.4073,
      "population": 6240,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://bellevigny.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://bellevigny.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://bellevigny.fr/"
        }
      ]
    },
    {
      "insee": "85020",
      "name": "Benet",
      "lat": 46.3654,
      "lon": -0.6147,
      "population": 4089,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-benet.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-benet.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-benet.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-benet.fr/"
        }
      ]
    },
    {
      "insee": "85022",
      "name": "Le Bernard",
      "lat": 46.4512,
      "lon": -1.4443,
      "population": 1319,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lebernard.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lebernard.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lebernard.fr/"
        }
      ]
    },
    {
      "insee": "85023",
      "name": "Bessay",
      "lat": 46.5418,
      "lon": -1.1679,
      "population": 456,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85024",
      "name": "Bois-de-Céné",
      "lat": 46.9528,
      "lon": -1.8923,
      "population": 2256,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://boisdecene.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://boisdecene.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://boisdecene.fr/"
        }
      ]
    },
    {
      "insee": "85025",
      "name": "La Boissière-de-Montaigu",
      "lat": 46.9497,
      "lon": -1.1903,
      "population": 2311,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85026",
      "name": "La Boissière-des-Landes",
      "lat": 46.5588,
      "lon": -1.438,
      "population": 1464,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laboissieredeslandes.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laboissieredeslandes.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laboissieredeslandes.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laboissieredeslandes.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85028",
      "name": "Bouillé-Courdault",
      "lat": 46.3855,
      "lon": -0.6849,
      "population": 595,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bouille-courdault.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bouille-courdault.com/"
        }
      ]
    },
    {
      "insee": "85029",
      "name": "Bouin",
      "lat": 46.9802,
      "lon": -2.0064,
      "population": 2205,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bouin.fr/mentions-legales-2"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bouin.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bouin.fr/"
        }
      ]
    },
    {
      "insee": "85031",
      "name": "Le Boupère",
      "lat": 46.7867,
      "lon": -0.9341,
      "population": 3151,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://boupere.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://boupere.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://boupere.fr/politique-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://boupere.fr/"
        }
      ]
    },
    {
      "insee": "85033",
      "name": "Bourneau",
      "lat": 46.5501,
      "lon": -0.811,
      "population": 710,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedebourneau.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedebourneau.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedebourneau.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedebourneau.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedebourneau.fr/"
        }
      ]
    },
    {
      "insee": "85034",
      "name": "Bournezeau",
      "lat": 46.6289,
      "lon": -1.139,
      "population": 3452,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bournezeau.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bournezeau.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bournezeau.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bournezeau.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bournezeau.fr/fr"
        }
      ]
    },
    {
      "insee": "85035",
      "name": "Bretignolles-sur-Mer",
      "lat": 46.6309,
      "lon": -1.8713,
      "population": 5344,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bretignolles-sur-mer.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bretignolles-sur-mer.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bretignolles-sur-mer.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bretignolles-sur-mer.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bretignolles-sur-mer.fr/"
        }
      ]
    },
    {
      "insee": "85036",
      "name": "La Bretonnière-la-Claye",
      "lat": 46.4917,
      "lon": -1.2624,
      "population": 586,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://labretonnierelaclaye.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://labretonnierelaclaye.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://labretonnierelaclaye.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://labretonnierelaclaye.fr/"
        }
      ]
    },
    {
      "insee": "85038",
      "name": "Les Brouzils",
      "lat": 46.8898,
      "lon": -1.3389,
      "population": 2938,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://les-brouzils.com/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://les-brouzils.com/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://les-brouzils.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://les-brouzils.com/"
        }
      ]
    },
    {
      "insee": "85039",
      "name": "La Bruffière",
      "lat": 47.0143,
      "lon": -1.1816,
      "population": 3987,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85040",
      "name": "La Caillère-Saint-Hilaire",
      "lat": 46.6306,
      "lon": -0.9315,
      "population": 1100,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacailleresainthilaire.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacailleresainthilaire.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacailleresainthilaire.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacailleresainthilaire.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacailleresainthilaire.fr/"
        }
      ]
    },
    {
      "insee": "85042",
      "name": "Chaillé-les-Marais",
      "lat": 46.3875,
      "lon": -1.0093,
      "population": 1924,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "links"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chaille-les-marais.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chaille-les-marais.fr/"
        }
      ]
    },
    {
      "insee": "85045",
      "name": "La Chaize-Giraud",
      "lat": 46.6479,
      "lon": -1.8196,
      "population": 1124,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizegiraud.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizegiraud.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizegiraud.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lachaizegiraud.fr/confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizegiraud.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizegiraud.fr/"
        }
      ]
    },
    {
      "insee": "85046",
      "name": "La Chaize-le-Vicomte",
      "lat": 46.6671,
      "lon": -1.2833,
      "population": 3948,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lachaizelevicomte.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizelevicomte.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizelevicomte.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachaizelevicomte.fr/fr"
        }
      ]
    },
    {
      "insee": "85047",
      "name": "Challans",
      "lat": 46.833,
      "lon": -1.8422,
      "population": 22943,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://challans.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://challans.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://challans.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://challans.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://challans.fr/"
        }
      ]
    },
    {
      "insee": "85049",
      "name": "Champagné-les-Marais",
      "lat": 46.3718,
      "lon": -1.1288,
      "population": 1824,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champagne-les-marais.com/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champagne-les-marais.com/"
        }
      ]
    },
    {
      "insee": "85050",
      "name": "Le Champ-Saint-Père",
      "lat": 46.5121,
      "lon": -1.3396,
      "population": 2135,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champsaintpere.fr/politique-en-matiere-de-cookies"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champsaintpere.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champsaintpere.fr/"
        }
      ]
    },
    {
      "insee": "85051",
      "name": "Chantonnay",
      "lat": 46.6699,
      "lon": -1.045,
      "population": 8557,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85054",
      "name": "La Chapelle-Hermier",
      "lat": 46.6841,
      "lon": -1.7237,
      "population": 1098,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapelle-hermier.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapelle-hermier.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapelle-hermier.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapelle-hermier.fr/"
        }
      ]
    },
    {
      "insee": "85055",
      "name": "La Chapelle-Palluau",
      "lat": 46.7877,
      "lon": -1.6228,
      "population": 1124,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lachapellepalluau.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapellepalluau.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapellepalluau.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapellepalluau.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachapellepalluau.fr/fr"
        }
      ]
    },
    {
      "insee": "85056",
      "name": "La Chapelle-Thémer",
      "lat": 46.5677,
      "lon": -0.9645,
      "population": 393,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85058",
      "name": "Chasnais",
      "lat": 46.444,
      "lon": -1.2388,
      "population": 818,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85059",
      "name": "La Châtaigneraie",
      "lat": 46.6423,
      "lon": -0.7402,
      "population": 2600,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 5,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachataigneraie.eu/declaration-daccessibilite-du-site-lachataigneraie-eu"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachataigneraie.eu/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://lachataigneraie.eu/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachataigneraie.eu/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lachataigneraie.eu/"
        }
      ]
    },
    {
      "insee": "85061",
      "name": "Château-Guibert",
      "lat": 46.575,
      "lon": -1.2638,
      "population": 1584,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chateau-guibert.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://chateau-guibert.fr/cookies"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chateau-guibert.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chateau-guibert.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85062",
      "name": "Châteauneuf",
      "lat": 46.9205,
      "lon": -1.9237,
      "population": 1140,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://chateauneuf85.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chateauneuf85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chateauneuf85.fr/"
        }
      ]
    },
    {
      "insee": "85064",
      "name": "Chauché",
      "lat": 46.8272,
      "lon": -1.2668,
      "population": 2613,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85065",
      "name": "Chavagnes-en-Paillers",
      "lat": 46.8898,
      "lon": -1.2341,
      "population": 3726,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagnes-en-paillers.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagnes-en-paillers.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagnes-en-paillers.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagnes-en-paillers.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagnes-en-paillers.fr/"
        }
      ]
    },
    {
      "insee": "85066",
      "name": "Chavagnes-les-Redoux",
      "lat": 46.7119,
      "lon": -0.9171,
      "population": 857,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagneslesredoux.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagneslesredoux.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagneslesredoux.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chavagneslesredoux.fr/"
        }
      ]
    },
    {
      "insee": "85067",
      "name": "Cheffois",
      "lat": 46.6803,
      "lon": -0.7815,
      "population": 1009,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://cheffois.com/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cheffois.com/"
        }
      ]
    },
    {
      "insee": "85070",
      "name": "Coëx",
      "lat": 46.7105,
      "lon": -1.7534,
      "population": 3428,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-coex.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-coex.fr/"
        }
      ]
    },
    {
      "insee": "85071",
      "name": "Commequiers",
      "lat": 46.7694,
      "lon": -1.8232,
      "population": 3735,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://commequiers.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://commequiers.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://commequiers.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://commequiers.fr/"
        }
      ]
    },
    {
      "insee": "85072",
      "name": "La Copechagnière",
      "lat": 46.8507,
      "lon": -1.3421,
      "population": 1046,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lacopechagniere.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacopechagniere.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lacopechagniere.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85073",
      "name": "Corpe",
      "lat": 46.5079,
      "lon": -1.1686,
      "population": 1024,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 5,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/corpe/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/corpe"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/corpe/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/corpe"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/corpe"
        }
      ]
    },
    {
      "insee": "85074",
      "name": "La Couture",
      "lat": 46.5241,
      "lon": -1.2661,
      "population": 231,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://mairie-lacouture.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://mairie-lacouture.fr/fr/politique-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://mairie-lacouture.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://mairie-lacouture.fr/"
        }
      ]
    },
    {
      "insee": "85076",
      "name": "Cugand-la-Bernardière",
      "lat": 47.0474,
      "lon": -1.2574,
      "population": 5711,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85077",
      "name": "Curzon",
      "lat": 46.4494,
      "lon": -1.3051,
      "population": 481,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://curzon.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://curzon.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://curzon.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://curzon.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://curzon.fr/fr"
        }
      ]
    },
    {
      "insee": "85078",
      "name": "Damvix",
      "lat": 46.3224,
      "lon": -0.7458,
      "population": 733,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://damvix.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://damvix.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://damvix.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85080",
      "name": "Doix lès Fontaines",
      "lat": 46.3994,
      "lon": -0.8098,
      "population": 1779,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://doixlesfontaines.com/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://doixlesfontaines.com/"
        }
      ]
    },
    {
      "insee": "85081",
      "name": "Dompierre-sur-Yon",
      "lat": 46.7636,
      "lon": -1.3773,
      "population": 4625,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://dompierre-sur-yon.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://dompierre-sur-yon.fr/"
        }
      ]
    },
    {
      "insee": "85082",
      "name": "Les Epesses",
      "lat": 46.8927,
      "lon": -0.903,
      "population": 2983,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85083",
      "name": "L'Épine",
      "lat": 46.9799,
      "lon": -2.2616,
      "population": 1636,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lepine-iledenoirmoutier.fr/1730-2"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lepine-iledenoirmoutier.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lepine-iledenoirmoutier.fr/"
        }
      ]
    },
    {
      "insee": "85084",
      "name": "Essarts-en-Bocage",
      "lat": 46.7861,
      "lon": -1.2458,
      "population": 6851,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://essartsenbocage.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://essartsenbocage.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://essartsenbocage.fr/"
        }
      ]
    },
    {
      "insee": "85086",
      "name": "Falleron",
      "lat": 46.863,
      "lon": -1.7016,
      "population": 1725,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://falleron.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://falleron.fr/"
        }
      ]
    },
    {
      "insee": "85087",
      "name": "Faymoreau",
      "lat": 46.5436,
      "lon": -0.6256,
      "population": 209,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85088",
      "name": "Le Fenouiller",
      "lat": 46.7168,
      "lon": -1.8951,
      "population": 4978,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lefenouiller.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lefenouiller.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lefenouiller.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lefenouiller.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lefenouiller.fr/fr"
        }
      ]
    },
    {
      "insee": "85089",
      "name": "La Ferrière",
      "lat": 46.7205,
      "lon": -1.3294,
      "population": 5454,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laferriere-vendee.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laferriere-vendee.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laferriere-vendee.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://laferriere-vendee.fr/"
        }
      ]
    },
    {
      "insee": "85090",
      "name": "Sèvremont",
      "lat": 46.8405,
      "lon": -0.8511,
      "population": 6385,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sevremont.fr/declaration-d-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sevremont.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sevremont.fr/declaration-d-accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://sevremont.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sevremont.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sevremont.fr/"
        }
      ]
    },
    {
      "insee": "85092",
      "name": "Fontenay-le-Comte",
      "lat": 46.4587,
      "lon": -0.7887,
      "population": 14059,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://fontenay-le-comte.fr/459-protection-des-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fontenay-le-comte.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fontenay-le-comte.fr/"
        }
      ]
    },
    {
      "insee": "85093",
      "name": "Fougeré",
      "lat": 46.6648,
      "lon": -1.2414,
      "population": 1240,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fougere.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fougere.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fougere.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fougere.fr/"
        }
      ]
    },
    {
      "insee": "85094",
      "name": "Foussais-Payré",
      "lat": 46.5192,
      "lon": -0.6873,
      "population": 1168,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://foussais-payre.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://foussais-payre.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://foussais-payre.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://foussais-payre.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://foussais-payre.fr/"
        }
      ]
    },
    {
      "insee": "85095",
      "name": "Froidfond",
      "lat": 46.8791,
      "lon": -1.7596,
      "population": 2208,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://froidfond.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://froidfond.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://froidfond.fr/"
        }
      ]
    },
    {
      "insee": "85096",
      "name": "La Garnache",
      "lat": 46.8961,
      "lon": -1.8215,
      "population": 5515,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://lagarnache.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://lagarnache.fr/fr/politique-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://lagarnache.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://lagarnache.fr/"
        }
      ]
    },
    {
      "insee": "85097",
      "name": "La Gaubretière",
      "lat": 46.9351,
      "lon": -1.0541,
      "population": 3225,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lagaubretiere.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lagaubretiere.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lagaubretiere.fr/"
        }
      ]
    },
    {
      "insee": "85098",
      "name": "La Genétouze",
      "lat": 46.7232,
      "lon": -1.5062,
      "population": 2011,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://lagenetouze.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://lagenetouze.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://lagenetouze.fr/"
        }
      ]
    },
    {
      "insee": "85099",
      "name": "Le Girouard",
      "lat": 46.5725,
      "lon": -1.591,
      "population": 1156,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://legirouard.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://legirouard.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://legirouard.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://legirouard.fr/confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://legirouard.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://legirouard.fr/"
        }
      ]
    },
    {
      "insee": "85100",
      "name": "Givrand",
      "lat": 46.6821,
      "lon": -1.8792,
      "population": 2205,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85101",
      "name": "Le Givre",
      "lat": 46.4732,
      "lon": -1.3973,
      "population": 535,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85102",
      "name": "Grand'Landes",
      "lat": 46.8434,
      "lon": -1.6431,
      "population": 725,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://grandlandes.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://grandlandes.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://grandlandes.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85103",
      "name": "Grosbreuil",
      "lat": 46.539,
      "lon": -1.5955,
      "population": 2221,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 3,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85104",
      "name": "Grues",
      "lat": 46.3818,
      "lon": -1.3216,
      "population": 927,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85105",
      "name": "Le Gué-de-Velluire",
      "lat": 46.3682,
      "lon": -0.9066,
      "population": 525,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://guedevelluire.fr/cookies.html"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://guedevelluire.fr/"
        }
      ]
    },
    {
      "insee": "85106",
      "name": "La Guérinière",
      "lat": 46.9668,
      "lon": -2.2273,
      "population": 1377,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://la-gueriniere.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://la-gueriniere.fr/accueil"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://la-gueriniere.fr/accueil"
        }
      ]
    },
    {
      "insee": "85108",
      "name": "L'Herbergement",
      "lat": 46.9153,
      "lon": -1.3745,
      "population": 3482,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85109",
      "name": "Les Herbiers",
      "lat": 46.8644,
      "lon": -1.0286,
      "population": 16521,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://paysdesherbiers.fr/"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lesherbiers.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lesherbiers.fr/"
        }
      ]
    },
    {
      "insee": "85110",
      "name": "L'Hermenault",
      "lat": 46.5152,
      "lon": -0.8951,
      "population": 914,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lhermenault.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lhermenault.fr/"
        }
      ]
    },
    {
      "insee": "85111",
      "name": "L'Île-d'Elle",
      "lat": 46.335,
      "lon": -0.9235,
      "population": 1502,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-iledelle.fr/mentions-legales-politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-iledelle.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-iledelle.fr/"
        }
      ]
    },
    {
      "insee": "85112",
      "name": "L'Île-d'Olonne",
      "lat": 46.57,
      "lon": -1.7767,
      "population": 2802,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-liledolonne.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-liledolonne.fr/"
        }
      ]
    },
    {
      "insee": "85113",
      "name": "L'Île-d'Yeu",
      "lat": 46.7099,
      "lon": -2.3415,
      "population": 4883,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie.ile-yeu.fr/accessibilite-3"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie.ile-yeu.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie.ile-yeu.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie.ile-yeu.fr/"
        }
      ]
    },
    {
      "insee": "85114",
      "name": "Jard-sur-Mer",
      "lat": 46.4267,
      "lon": -1.6083,
      "population": 3235,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 32,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-jardsurmer.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-jardsurmer.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-jardsurmer.fr/"
        }
      ]
    },
    {
      "insee": "85115",
      "name": "La Jaudonnière",
      "lat": 46.6477,
      "lon": -0.961,
      "population": 670,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lajaudonniere.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lajaudonniere.fr/"
        }
      ]
    },
    {
      "insee": "85116",
      "name": "La Jonchère",
      "lat": 46.4364,
      "lon": -1.3829,
      "population": 498,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85117",
      "name": "Lairoux",
      "lat": 46.4477,
      "lon": -1.2707,
      "population": 602,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lairoux.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lairoux.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lairoux.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lairoux.fr/"
        }
      ]
    },
    {
      "insee": "85118",
      "name": "Landeronde",
      "lat": 46.6526,
      "lon": -1.5706,
      "population": 2303,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://landeronde.com/mairie/frais-salle-andre-astoul"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://landeronde.com/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://landeronde.com/"
        }
      ]
    },
    {
      "insee": "85119",
      "name": "Les Landes-Genusson",
      "lat": 46.9697,
      "lon": -1.1254,
      "population": 2638,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leslandesgenusson.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leslandesgenusson.fr/"
        }
      ]
    },
    {
      "insee": "85120",
      "name": "Landevieille",
      "lat": 46.6451,
      "lon": -1.7869,
      "population": 1519,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://landevieille.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://landevieille.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://landevieille.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85121",
      "name": "Le Langon",
      "lat": 46.437,
      "lon": -0.9444,
      "population": 1045,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://lelangon85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "85123",
      "name": "Liez",
      "lat": 46.3685,
      "lon": -0.7043,
      "population": 302,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85125",
      "name": "Loge-Fougereuse",
      "lat": 46.6147,
      "lon": -0.6939,
      "population": 373,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://logefougereuse.fr/mairie/reservation-de-salle"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://logefougereuse.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://logefougereuse.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85126",
      "name": "Longèves",
      "lat": 46.4714,
      "lon": -0.861,
      "population": 1369,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://longeves85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://longeves85.fr/"
        }
      ]
    },
    {
      "insee": "85127",
      "name": "Longeville-sur-Mer",
      "lat": 46.4095,
      "lon": -1.478,
      "population": 2625,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85128",
      "name": "Luçon",
      "lat": 46.452,
      "lon": -1.1616,
      "population": 9417,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lucon.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lucon.fr/"
        }
      ]
    },
    {
      "insee": "85129",
      "name": "Les Lucs-sur-Boulogne",
      "lat": 46.8516,
      "lon": -1.4938,
      "population": 3701,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leslucssurboulogne.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leslucssurboulogne.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leslucssurboulogne.fr/"
        }
      ]
    },
    {
      "insee": "85130",
      "name": "Maché",
      "lat": 46.7717,
      "lon": -1.6959,
      "population": 1831,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mache.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mache.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mache.fr/"
        }
      ]
    },
    {
      "insee": "85131",
      "name": "Les Magnils-Reigniers",
      "lat": 46.4585,
      "lon": -1.2134,
      "population": 1486,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85132",
      "name": "Maillé",
      "lat": 46.3435,
      "lon": -0.7842,
      "population": 759,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-maille.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-maille.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-maille.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-maille.fr/"
        }
      ]
    },
    {
      "insee": "85133",
      "name": "Maillezais",
      "lat": 46.3637,
      "lon": -0.7484,
      "population": 890,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://maillezais.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://maillezais.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://maillezais.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://maillezais.fr/"
        }
      ]
    },
    {
      "insee": "85134",
      "name": "Mallièvre",
      "lat": 46.9112,
      "lon": -0.8653,
      "population": 251,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mallievre.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mallievre.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mallievre.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mallievre.fr/"
        }
      ]
    },
    {
      "insee": "85135",
      "name": "Mareuil-sur-Lay-Dissais",
      "lat": 46.5321,
      "lon": -1.2322,
      "population": 2808,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mareuilsurlay.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mareuilsurlay.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mareuilsurlay.fr/fr"
        }
      ]
    },
    {
      "insee": "85136",
      "name": "Marillet",
      "lat": 46.5675,
      "lon": -0.6349,
      "population": 123,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://village-marillet.fr/rgpd-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://village-marillet.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://village-marillet.fr/mairie/mentions-legales"
        }
      ]
    },
    {
      "insee": "85137",
      "name": "Marsais-Sainte-Radégonde",
      "lat": 46.5389,
      "lon": -0.8712,
      "population": 553,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-msr.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-msr.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-msr.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-msr.fr/confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-msr.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-msr.fr/"
        }
      ]
    },
    {
      "insee": "85138",
      "name": "Martinet",
      "lat": 46.6638,
      "lon": -1.6793,
      "population": 1229,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://communedemartinet.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://communedemartinet.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://communedemartinet.fr/"
        }
      ]
    },
    {
      "insee": "85139",
      "name": "Le Mazeau",
      "lat": 46.332,
      "lon": -0.6769,
      "population": 464,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 5,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairielemazeau.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairielemazeau.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairielemazeau.fr/fr"
        }
      ]
    },
    {
      "insee": "85140",
      "name": "La Meilleraie-Tillay",
      "lat": 46.7407,
      "lon": -0.851,
      "population": 1485,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meilleraie-tillay.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meilleraie-tillay.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meilleraie-tillay.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meilleraie-tillay.fr/"
        }
      ]
    },
    {
      "insee": "85141",
      "name": "Menomblet",
      "lat": 46.7334,
      "lon": -0.7324,
      "population": 685,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://menomblet.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://menomblet.fr/fr/politique-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://menomblet.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://menomblet.fr/"
        }
      ]
    },
    {
      "insee": "85142",
      "name": "La Merlatière",
      "lat": 46.7547,
      "lon": -1.2968,
      "population": 1009,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://la-merlatiere.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://la-merlatiere.fr/"
        }
      ]
    },
    {
      "insee": "85143",
      "name": "Mervent",
      "lat": 46.5335,
      "lon": -0.7529,
      "population": 1063,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mervent.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mervent.fr/"
        }
      ]
    },
    {
      "insee": "85144",
      "name": "Mesnard-la-Barotière",
      "lat": 46.8544,
      "lon": -1.1072,
      "population": 1558,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mesnard-la-barotiere.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mesnard-la-barotiere.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mesnard-la-barotiere.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mesnard-la-barotiere.fr/"
        }
      ]
    },
    {
      "insee": "85145",
      "name": "Monsireigne",
      "lat": 46.7333,
      "lon": -0.9308,
      "population": 999,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://monsireigne.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://monsireigne.fr/"
        }
      ]
    },
    {
      "insee": "85146",
      "name": "Montaigu-Vendée",
      "lat": 46.9741,
      "lon": -1.2923,
      "population": 21134,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85147",
      "name": "Montournais",
      "lat": 46.7539,
      "lon": -0.7789,
      "population": 1630,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montournais.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montournais.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montournais.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montournais.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montournais.fr/"
        }
      ]
    },
    {
      "insee": "85148",
      "name": "Montreuil",
      "lat": 46.3975,
      "lon": -0.8407,
      "population": 818,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85149",
      "name": "Moreilles",
      "lat": 46.4206,
      "lon": -1.1009,
      "population": 407,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 5,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/moreilles/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/moreilles"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/moreilles/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/moreilles"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/moreilles"
        }
      ]
    },
    {
      "insee": "85151",
      "name": "Mortagne-sur-Sèvre",
      "lat": 46.993,
      "lon": -0.9542,
      "population": 6057,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mortagnesursevre.fr/donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mortagnesursevre.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mortagnesursevre.fr/"
        }
      ]
    },
    {
      "insee": "85152",
      "name": "Les Achards",
      "lat": 46.5924,
      "lon": -1.6651,
      "population": 5518,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lesachards.com/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lesachards.com/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lesachards.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lesachards.com/"
        }
      ]
    },
    {
      "insee": "85153",
      "name": "Mouchamps",
      "lat": 46.7899,
      "lon": -1.0509,
      "population": 3015,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 5,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mouchamps.com/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mouchamps.com/"
        }
      ]
    },
    {
      "insee": "85154",
      "name": "Mouilleron-Saint-Germain",
      "lat": 46.6689,
      "lon": -0.8453,
      "population": 1744,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mouilleronstgermain.com/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://mouilleronstgermain.com/"
        }
      ]
    },
    {
      "insee": "85155",
      "name": "Mouilleron-le-Captif",
      "lat": 46.7114,
      "lon": -1.4649,
      "population": 5273,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-mouilleronlecaptif.fr/cookies"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-mouilleronlecaptif.fr/"
        }
      ]
    },
    {
      "insee": "85156",
      "name": "Moutiers-les-Mauxfaits",
      "lat": 46.4888,
      "lon": -1.434,
      "population": 2385,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://moutiers-les-mauxfaits.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://moutiers-les-mauxfaits.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://moutiers-les-mauxfaits.fr/"
        }
      ]
    },
    {
      "insee": "85157",
      "name": "Moutiers-sur-le-Lay",
      "lat": 46.5644,
      "lon": -1.1722,
      "population": 843,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://moutiers-sur-le-lay.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://moutiers-sur-le-lay.fr/"
        }
      ]
    },
    {
      "insee": "85158",
      "name": "Mouzeuil-Saint-Martin",
      "lat": 46.4544,
      "lon": -0.9807,
      "population": 1233,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mouzeuilsaintmartin.fr/politique-en-matiere-de-cookies"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mouzeuilsaintmartin.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mouzeuilsaintmartin.fr/"
        }
      ]
    },
    {
      "insee": "85159",
      "name": "Nalliers",
      "lat": 46.4639,
      "lon": -1.0395,
      "population": 2389,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nalliers.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nalliers.fr/"
        }
      ]
    },
    {
      "insee": "85160",
      "name": "Nesmy",
      "lat": 46.5904,
      "lon": -1.4107,
      "population": 3100,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larochesuryon.fr/"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nesmy.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nesmy.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nesmy.fr/"
        }
      ]
    },
    {
      "insee": "85161",
      "name": "Nieul-le-Dolent",
      "lat": 46.5688,
      "lon": -1.5141,
      "population": 2571,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nieul-le-dolent.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nieul-le-dolent.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nieul-le-dolent.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nieul-le-dolent.fr/confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nieul-le-dolent.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nieul-le-dolent.fr/"
        }
      ]
    },
    {
      "insee": "85162",
      "name": "Rives-d'Autise",
      "lat": 46.4185,
      "lon": -0.6661,
      "population": 2036,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://rives-autise.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rives-autise.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rives-autise.fr/"
        }
      ]
    },
    {
      "insee": "85163",
      "name": "Noirmoutier-en-l'Île",
      "lat": 47.0164,
      "lon": -2.2891,
      "population": 4505,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-noirmoutier.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-noirmoutier.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-noirmoutier.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-noirmoutier.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-noirmoutier.fr/"
        }
      ]
    },
    {
      "insee": "85164",
      "name": "Notre-Dame-de-Monts",
      "lat": 46.8398,
      "lon": -2.103,
      "population": 2420,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villenotredamedemonts.fr/politique-de-confidentialite-2"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villenotredamedemonts.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villenotredamedemonts.fr/"
        }
      ]
    },
    {
      "insee": "85165",
      "name": "L'Oie",
      "lat": 46.7799,
      "lon": -1.121,
      "population": 1250,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-oie.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-oie.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-oie.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-oie.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-oie.fr/"
        }
      ]
    },
    {
      "insee": "85167",
      "name": "L'Orbrie",
      "lat": 46.4988,
      "lon": -0.7742,
      "population": 808,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://lorbrie.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lorbrie.fr/"
        }
      ]
    },
    {
      "insee": "85169",
      "name": "Palluau",
      "lat": 46.8075,
      "lon": -1.6033,
      "population": 1128,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 5,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://palluau.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://palluau.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://palluau.fr/fr"
        }
      ]
    },
    {
      "insee": "85171",
      "name": "Péault",
      "lat": 46.5028,
      "lon": -1.2291,
      "population": 629,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://peault.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "links"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://peault.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://peault.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85172",
      "name": "Le Perrier",
      "lat": 46.8098,
      "lon": -1.9671,
      "population": 2280,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leperrier.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leperrier.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://leperrier.fr/"
        }
      ]
    },
    {
      "insee": "85174",
      "name": "Petosse",
      "lat": 46.4797,
      "lon": -0.9133,
      "population": 688,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85175",
      "name": "Les Pineaux",
      "lat": 46.5988,
      "lon": -1.1739,
      "population": 688,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lespineaux.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lespineaux.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lespineaux.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lespineaux.fr/"
        }
      ]
    },
    {
      "insee": "85176",
      "name": "Pissotte",
      "lat": 46.5035,
      "lon": -0.8106,
      "population": 1132,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://pissotte.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://pissotte.fr/"
        }
      ]
    },
    {
      "insee": "85177",
      "name": "Les Velluire-sur-Vendée",
      "lat": 46.4152,
      "lon": -0.904,
      "population": 1358,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://les-velluire-sur-vendee.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://les-velluire-sur-vendee.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://les-velluire-sur-vendee.fr/"
        }
      ]
    },
    {
      "insee": "85178",
      "name": "Le Poiré-sur-Vie",
      "lat": 46.7681,
      "lon": -1.5016,
      "population": 8649,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-lepoiresurvie.fr/exercer-vos-droits/protection-de-vos-informations-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-lepoiresurvie.fr/contact"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-lepoiresurvie.fr/"
        }
      ]
    },
    {
      "insee": "85179",
      "name": "Poiroux",
      "lat": 46.5086,
      "lon": -1.5378,
      "population": 1246,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 25,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://poiroux.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://poiroux.fr/informations-legales-2"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://poiroux.fr/"
        }
      ]
    },
    {
      "insee": "85181",
      "name": "Pouillé",
      "lat": 46.5034,
      "lon": -0.9587,
      "population": 630,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85182",
      "name": "Pouzauges",
      "lat": 46.7767,
      "lon": -0.8228,
      "population": 5668,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://pouzauges.fr/"
        }
      ]
    },
    {
      "insee": "85184",
      "name": "Puy-de-Serre",
      "lat": 46.5637,
      "lon": -0.6796,
      "population": 311,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puydeserre.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puydeserre.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puydeserre.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puydeserre.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puydeserre.fr/"
        }
      ]
    },
    {
      "insee": "85185",
      "name": "Puyravault",
      "lat": 46.3597,
      "lon": -1.1,
      "population": 642,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puyravault-vendee.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puyravault-vendee.fr/"
        }
      ]
    },
    {
      "insee": "85186",
      "name": "La Rabatelière",
      "lat": 46.8601,
      "lon": -1.2571,
      "population": 1024,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larabateliere.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larabateliere.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larabateliere.fr/"
        }
      ]
    },
    {
      "insee": "85187",
      "name": "Réaumur",
      "lat": 46.7158,
      "lon": -0.8126,
      "population": 857,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://reaumur.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://reaumur.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://reaumur.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://reaumur.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://reaumur.fr/"
        }
      ]
    },
    {
      "insee": "85188",
      "name": "La Réorthe",
      "lat": 46.6088,
      "lon": -1.0496,
      "population": 1161,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lareorthe.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lareorthe.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lareorthe.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lareorthe.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lareorthe.fr/"
        }
      ]
    },
    {
      "insee": "85189",
      "name": "Notre-Dame-de-Riez",
      "lat": 46.7537,
      "lon": -1.9024,
      "population": 2213,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://notredamederiez.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://notredamederiez.fr/"
        }
      ]
    },
    {
      "insee": "85190",
      "name": "Rocheservière",
      "lat": 46.9227,
      "lon": -1.5017,
      "population": 3594,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85191",
      "name": "La Roche-sur-Yon",
      "lat": 46.6659,
      "lon": -1.4162,
      "population": 54849,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larochesuryon.fr/mentions-legales"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larochesuryon.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larochesuryon.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larochesuryon.fr/"
        }
      ]
    },
    {
      "insee": "85192",
      "name": "Rochetrejoux",
      "lat": 46.7869,
      "lon": -1.002,
      "population": 983,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rochetrejoux.fr/contact"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rochetrejoux.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rochetrejoux.fr/"
        }
      ]
    },
    {
      "insee": "85193",
      "name": "Rosnay",
      "lat": 46.5319,
      "lon": -1.3051,
      "population": 672,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 5,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/rosnay85/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/rosnay85"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/rosnay85/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/rosnay85"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/rosnay85"
        }
      ]
    },
    {
      "insee": "85194",
      "name": "Les Sables-d'Olonne",
      "lat": 46.5264,
      "lon": -1.7611,
      "population": 49603,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lessablesdolonne.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lessablesdolonne.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lessablesdolonne.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lessablesdolonne.fr/"
        }
      ]
    },
    {
      "insee": "85196",
      "name": "Saint-André-Goule-d'Oie",
      "lat": 46.8445,
      "lon": -1.1977,
      "population": 1960,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sago.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sago.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sago.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sago.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sago.fr/"
        }
      ]
    },
    {
      "insee": "85197",
      "name": "Montréverd",
      "lat": 46.9104,
      "lon": -1.4314,
      "population": 3857,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85198",
      "name": "Saint-Aubin-des-Ormeaux",
      "lat": 46.9953,
      "lon": -1.0389,
      "population": 1394,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 32,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintaubindesormeaux.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintaubindesormeaux.fr/"
        }
      ]
    },
    {
      "insee": "85199",
      "name": "Saint-Aubin-la-Plaine",
      "lat": 46.5002,
      "lon": -1.0661,
      "population": 529,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saintaubinlaplaine.fr/services/compte-rendu-conseil"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintaubinlaplaine.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintaubinlaplaine.fr/"
        }
      ]
    },
    {
      "insee": "85200",
      "name": "Saint-Avaugourd-des-Landes",
      "lat": 46.5096,
      "lon": -1.4741,
      "population": 1213,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-avaugourd-des-landes.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-avaugourd-des-landes.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-avaugourd-des-landes.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-avaugourd-des-landes.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-avaugourd-des-landes.fr/"
        }
      ]
    },
    {
      "insee": "85201",
      "name": "Saint-Benoist-sur-Mer",
      "lat": 46.4245,
      "lon": -1.3387,
      "population": 515,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintbenoistsurmer.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintbenoistsurmer.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintbenoistsurmer.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintbenoistsurmer.fr/"
        }
      ]
    },
    {
      "insee": "85202",
      "name": "Sainte-Cécile",
      "lat": 46.7295,
      "lon": -1.1196,
      "population": 1575,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saintececile85.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintececile85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintececile85.fr/"
        }
      ]
    },
    {
      "insee": "85204",
      "name": "Saint-Christophe-du-Ligneron",
      "lat": 46.8142,
      "lon": -1.7387,
      "population": 2727,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-christophe-du-ligneron.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-christophe-du-ligneron.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-christophe-du-ligneron.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85205",
      "name": "Saint-Cyr-des-Gâts",
      "lat": 46.5735,
      "lon": -0.864,
      "population": 533,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85206",
      "name": "Saint-Cyr-en-Talmondais",
      "lat": 46.4581,
      "lon": -1.3294,
      "population": 403,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85207",
      "name": "Saint-Denis-du-Payré",
      "lat": 46.4085,
      "lon": -1.2769,
      "population": 434,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85208",
      "name": "Saint-Denis-la-Chevasse",
      "lat": 46.8332,
      "lon": -1.3846,
      "population": 2419,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintdenislachevasse.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintdenislachevasse.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintdenislachevasse.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintdenislachevasse.fr/"
        }
      ]
    },
    {
      "insee": "85209",
      "name": "Saint-Étienne-de-Brillouet",
      "lat": 46.5145,
      "lon": -1.0098,
      "population": 616,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85210",
      "name": "Saint-Étienne-du-Bois",
      "lat": 46.8398,
      "lon": -1.5882,
      "population": 2311,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stetiennedubois85.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stetiennedubois85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stetiennedubois85.fr/"
        }
      ]
    },
    {
      "insee": "85211",
      "name": "Sainte-Flaive-des-Loups",
      "lat": 46.6068,
      "lon": -1.5786,
      "population": 2585,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://steflaivedesloups.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://steflaivedesloups.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://steflaivedesloups.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://steflaivedesloups.fr/confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://steflaivedesloups.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://steflaivedesloups.fr/"
        }
      ]
    },
    {
      "insee": "85212",
      "name": "Sainte-Florence",
      "lat": 46.79,
      "lon": -1.1578,
      "population": 1359,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteflorence.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteflorence.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteflorence.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteflorence.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteflorence.fr/"
        }
      ]
    },
    {
      "insee": "85213",
      "name": "Rives de l'Yon",
      "lat": 46.5896,
      "lon": -1.3345,
      "population": 4335,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdelyon.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdelyon.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdelyon.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdelyon.fr/"
        }
      ]
    },
    {
      "insee": "85214",
      "name": "Sainte-Foy",
      "lat": 46.5316,
      "lon": -1.6989,
      "population": 2717,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintefoy85.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "85215",
      "name": "Saint-Fulgent",
      "lat": 46.8724,
      "lon": -1.1627,
      "population": 3994,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-fulgent.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-fulgent.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saint-fulgent.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-fulgent.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-fulgent.fr/"
        }
      ]
    },
    {
      "insee": "85216",
      "name": "Sainte-Gemme-la-Plaine",
      "lat": 46.4733,
      "lon": -1.113,
      "population": 2084,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintegemmelaplaine.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintegemmelaplaine.fr/"
        }
      ]
    },
    {
      "insee": "85218",
      "name": "Saint-Georges-de-Pointindoux",
      "lat": 46.6432,
      "lon": -1.6283,
      "population": 1870,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85220",
      "name": "Saint-Germain-de-Prinçay",
      "lat": 46.7334,
      "lon": -1.0414,
      "population": 1640,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stgermaindeprincay.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stgermaindeprincay.fr/"
        }
      ]
    },
    {
      "insee": "85221",
      "name": "Saint-Gervais",
      "lat": 46.9323,
      "lon": -1.9826,
      "population": 2781,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://saintgervais-vendee.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintgervais-vendee.fr/"
        }
      ]
    },
    {
      "insee": "85222",
      "name": "Saint-Gilles-Croix-de-Vie",
      "lat": 46.688,
      "lon": -1.9207,
      "population": 8333,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85223",
      "name": "Saint-Jean-d'Hermine",
      "lat": 46.5519,
      "lon": -1.0881,
      "population": 3611,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintjeandhermine.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintjeandhermine.fr/"
        }
      ]
    },
    {
      "insee": "85226",
      "name": "Saint-Hilaire-de-Riez",
      "lat": 46.7452,
      "lon": -1.9796,
      "population": 13074,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 5,
      "pagesCrawled": 4,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairederiez.fr/systeme/mentions-legales"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairederiez.fr/systeme/politique-confidentialite-et-protection-donnees"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairederiez.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairederiez.fr/systeme/mentions-legales"
        }
      ]
    },
    {
      "insee": "85227",
      "name": "Saint-Hilaire-des-Loges",
      "lat": 46.4775,
      "lon": -0.6526,
      "population": 1917,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://st-hilaire-des-loges.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://st-hilaire-des-loges.fr/"
        }
      ]
    },
    {
      "insee": "85229",
      "name": "Saint-Hilaire-de-Voust",
      "lat": 46.589,
      "lon": -0.6513,
      "population": 642,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilairedevoust.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilairedevoust.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilairedevoust.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85231",
      "name": "Saint-Hilaire-la-Forêt",
      "lat": 46.4553,
      "lon": -1.5272,
      "population": 846,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairelaforet.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairelaforet.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairelaforet.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainthilairelaforet.fr/"
        }
      ]
    },
    {
      "insee": "85232",
      "name": "Saint-Hilaire-le-Vouhis",
      "lat": 46.6855,
      "lon": -1.1572,
      "population": 1101,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilaire-levouhis.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilaire-levouhis.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilaire-levouhis.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sthilaire-levouhis.fr/"
        }
      ]
    },
    {
      "insee": "85234",
      "name": "Saint-Jean-de-Monts",
      "lat": 46.8009,
      "lon": -2.0527,
      "population": 8868,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintjeandemonts.fr/mentions-legales.html"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintjeandemonts.fr/"
        }
      ]
    },
    {
      "insee": "85235",
      "name": "Saint-Juire-Champgillon",
      "lat": 46.5912,
      "lon": -1.008,
      "population": 425,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85236",
      "name": "Saint-Julien-des-Landes",
      "lat": 46.6393,
      "lon": -1.7164,
      "population": 2085,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://stjuliendeslandes.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stjuliendeslandes.fr/donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stjuliendeslandes.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stjuliendeslandes.fr/"
        }
      ]
    },
    {
      "insee": "85237",
      "name": "Saint-Laurent-de-la-Salle",
      "lat": 46.5859,
      "lon": -0.9205,
      "population": 398,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedesaintlaurentdelasalle.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedesaintlaurentdelasalle.fr/"
        }
      ]
    },
    {
      "insee": "85238",
      "name": "Saint-Laurent-sur-Sèvre",
      "lat": 46.9506,
      "lon": -0.8996,
      "population": 3550,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintlaurentsursevre.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintlaurentsursevre.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saintlaurentsursevre.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintlaurentsursevre.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintlaurentsursevre.fr/"
        }
      ]
    },
    {
      "insee": "85239",
      "name": "Saint-Maixent-sur-Vie",
      "lat": 46.7331,
      "lon": -1.8254,
      "population": 1234,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmaixentsurvie.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmaixentsurvie.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmaixentsurvie.fr/"
        }
      ]
    },
    {
      "insee": "85240",
      "name": "Saint-Malô-du-Bois",
      "lat": 46.9266,
      "lon": -0.9058,
      "population": 1612,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmalodubois.com/politique-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmalodubois.com/"
        }
      ]
    },
    {
      "insee": "85242",
      "name": "Saint-Mars-la-Réorthe",
      "lat": 46.8605,
      "lon": -0.9298,
      "population": 1042,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85243",
      "name": "Brem-sur-Mer",
      "lat": 46.6085,
      "lon": -1.8081,
      "population": 2993,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://brem-sur-mer.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://brem-sur-mer.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://brem-sur-mer.fr/"
        }
      ]
    },
    {
      "insee": "85244",
      "name": "Saint-Martin-de-Fraigneau",
      "lat": 46.4308,
      "lon": -0.7623,
      "population": 795,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmartindefraigneau.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmartindefraigneau.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmartindefraigneau.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmartindefraigneau.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://stmartindefraigneau.fr/"
        }
      ]
    },
    {
      "insee": "85245",
      "name": "Saint-Martin-des-Fontaines",
      "lat": 46.5468,
      "lon": -0.9085,
      "population": 166,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 2,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-martin-des-fontaines.fr/"
        }
      ]
    },
    {
      "insee": "85246",
      "name": "Saint-Martin-des-Noyers",
      "lat": 46.7216,
      "lon": -1.2009,
      "population": 2560,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmartindesnoyers.fr/"
        }
      ]
    },
    {
      "insee": "85247",
      "name": "Saint-Martin-des-Tilleuls",
      "lat": 46.9723,
      "lon": -1.0611,
      "population": 1150,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://st-martin-des-tilleuls.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://st-martin-des-tilleuls.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://st-martin-des-tilleuls.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://st-martin-des-tilleuls.fr/"
        }
      ]
    },
    {
      "insee": "85248",
      "name": "Saint-Martin-Lars-en-Sainte-Hermine",
      "lat": 46.596,
      "lon": -0.9772,
      "population": 419,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 5,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/saintmartinlars/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/saintmartinlars"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/saintmartinlars/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/saintmartinlars"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://intramuros.org/saintmartinlars"
        }
      ]
    },
    {
      "insee": "85250",
      "name": "Saint-Mathurin",
      "lat": 46.5719,
      "lon": -1.7069,
      "population": 2496,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmathurin.com/cookies"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmathurin.com/"
        }
      ]
    },
    {
      "insee": "85251",
      "name": "Saint-Maurice-des-Noues",
      "lat": 46.5956,
      "lon": -0.7235,
      "population": 642,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85252",
      "name": "Saint-Maurice-le-Girard",
      "lat": 46.6398,
      "lon": -0.8137,
      "population": 597,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85254",
      "name": "Saint-Mesmin",
      "lat": 46.8001,
      "lon": -0.7484,
      "population": 1774,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85255",
      "name": "Saint-Michel-en-l'Herm",
      "lat": 46.3405,
      "lon": -1.2531,
      "population": 2329,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saintmichelenlherm.fr/privacy-policy"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmichelenlherm.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmichelenlherm.fr/"
        }
      ]
    },
    {
      "insee": "85256",
      "name": "Saint-Michel-le-Cloucq",
      "lat": 46.4907,
      "lon": -0.7468,
      "population": 1253,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "links"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmichellecloucq.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintmichellecloucq.fr/"
        }
      ]
    },
    {
      "insee": "85259",
      "name": "Saint-Paul-en-Pareds",
      "lat": 46.8308,
      "lon": -0.9684,
      "population": 1377,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85260",
      "name": "Saint-Paul-Mont-Penit",
      "lat": 46.8101,
      "lon": -1.6665,
      "population": 880,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saintpaulmontpenit.fr/privacy"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpaulmontpenit.fr/newpage"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpaulmontpenit.fr/"
        }
      ]
    },
    {
      "insee": "85261",
      "name": "Sainte-Pexine",
      "lat": 46.5615,
      "lon": -1.1251,
      "population": 291,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85262",
      "name": "Saint-Philbert-de-Bouaine",
      "lat": 46.9942,
      "lon": -1.5066,
      "population": 3653,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85264",
      "name": "Saint-Pierre-du-Chemin",
      "lat": 46.6969,
      "lon": -0.7091,
      "population": 1354,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierreduchemin.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierreduchemin.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierreduchemin.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierreduchemin.fr/"
        }
      ]
    },
    {
      "insee": "85265",
      "name": "Saint-Pierre-le-Vieux",
      "lat": 46.4006,
      "lon": -0.7417,
      "population": 917,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 11,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierrelevieux.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierrelevieux.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintpierrelevieux.fr/"
        }
      ]
    },
    {
      "insee": "85266",
      "name": "Saint-Prouant",
      "lat": 46.7488,
      "lon": -0.9715,
      "population": 1666,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintprouant.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintprouant.fr/"
        }
      ]
    },
    {
      "insee": "85267",
      "name": "Sainte-Radégonde-des-Noyers",
      "lat": 46.3756,
      "lon": -1.0718,
      "population": 990,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteradegondedesnoyers.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteradegondedesnoyers.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteradegondedesnoyers.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainteradegondedesnoyers.fr/"
        }
      ]
    },
    {
      "insee": "85268",
      "name": "Saint-Révérend",
      "lat": 46.7064,
      "lon": -1.8354,
      "population": 1549,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintreverend.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintreverend.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintreverend.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-saintreverend.fr/confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintreverend.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintreverend.fr/"
        }
      ]
    },
    {
      "insee": "85269",
      "name": "Saint-Sigismond",
      "lat": 46.338,
      "lon": -0.7055,
      "population": 428,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85273",
      "name": "Saint-Urbain",
      "lat": 46.8809,
      "lon": -2.0026,
      "population": 2000,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://gochallansgois.fr/"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainturbain.fr/mentions-legales-credits"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sainturbain.fr/"
        }
      ]
    },
    {
      "insee": "85274",
      "name": "Saint-Valérien",
      "lat": 46.5345,
      "lon": -0.9469,
      "population": 557,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvalerien85.fr/contact"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvalerien85.fr/"
        }
      ]
    },
    {
      "insee": "85276",
      "name": "Saint-Vincent-Sterlanges",
      "lat": 46.7388,
      "lon": -1.0837,
      "population": 747,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sterlanges.fr/mentions-legales-politique-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sterlanges.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sterlanges.fr/"
        }
      ]
    },
    {
      "insee": "85277",
      "name": "Saint-Vincent-sur-Graon",
      "lat": 46.5062,
      "lon": -1.3786,
      "population": 1615,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvincentsurgraon.com/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvincentsurgraon.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvincentsurgraon.com/mentions-legales"
        }
      ]
    },
    {
      "insee": "85278",
      "name": "Saint-Vincent-sur-Jard",
      "lat": 46.4291,
      "lon": -1.5506,
      "population": 1741,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvincentsurjard.fr/cadre-de-vie-2/rgpd"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintvincentsurjard.fr/"
        }
      ]
    },
    {
      "insee": "85280",
      "name": "Sallertaine",
      "lat": 46.867,
      "lon": -1.958,
      "population": 3518,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://sallertaine.fr/infos-rgpd.html"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sallertaine.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sallertaine.fr/"
        }
      ]
    },
    {
      "insee": "85281",
      "name": "Sérigné",
      "lat": 46.5077,
      "lon": -0.8497,
      "population": 1048,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://serigne.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://serigne.fr/"
        }
      ]
    },
    {
      "insee": "85282",
      "name": "Sigournais",
      "lat": 46.7136,
      "lon": -0.9894,
      "population": 999,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85284",
      "name": "Soullans",
      "lat": 46.7921,
      "lon": -1.9086,
      "population": 4654,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://soullans.fr/politique-de-confidentialite-2"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://soullans.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://soullans.fr/"
        }
      ]
    },
    {
      "insee": "85285",
      "name": "Le Tablier",
      "lat": 46.5593,
      "lon": -1.327,
      "population": 765,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://letablier.fr/%2B/8::mentions-legales.html?lang=fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://letablier.fr/%2B/8::mentions-legales.html?lang=fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://letablier.fr/"
        }
      ]
    },
    {
      "insee": "85286",
      "name": "La Taillée",
      "lat": 46.3858,
      "lon": -0.9395,
      "population": 550,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://la-taillee.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://la-taillee.fr/fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://la-taillee.fr/fr"
        }
      ]
    },
    {
      "insee": "85287",
      "name": "Tallud-Sainte-Gemme",
      "lat": 46.6972,
      "lon": -0.8987,
      "population": 453,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://tallud-sainte-gemme.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://tallud-sainte-gemme.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://tallud-sainte-gemme.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "85288",
      "name": "Talmont-Saint-Hilaire",
      "lat": 46.4775,
      "lon": -1.6299,
      "population": 8492,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://talmont-saint-hilaire.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://talmont-saint-hilaire.fr/"
        }
      ]
    },
    {
      "insee": "85289",
      "name": "Terval",
      "lat": 46.6467,
      "lon": -0.692,
      "population": 2147,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://terval85.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://terval85.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://terval85.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://terval85.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://terval85.fr/"
        }
      ]
    },
    {
      "insee": "85290",
      "name": "Thiré",
      "lat": 46.5425,
      "lon": -1.0128,
      "population": 532,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85291",
      "name": "Thorigny",
      "lat": 46.6153,
      "lon": -1.2441,
      "population": 1275,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-thorigny.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-thorigny.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-thorigny.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-thorigny.fr/"
        }
      ]
    },
    {
      "insee": "85292",
      "name": "Rives-du-Fougerais",
      "lat": 46.6013,
      "lon": -0.8421,
      "population": 1500,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdufougerais.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdufougerais.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdufougerais.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://rivesdufougerais.fr/"
        }
      ]
    },
    {
      "insee": "85293",
      "name": "Tiffauges",
      "lat": 47.0016,
      "lon": -1.1033,
      "population": 1544,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://tiffauges.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://tiffauges.fr/"
        }
      ]
    },
    {
      "insee": "85294",
      "name": "La Tranche-sur-Mer",
      "lat": 46.3567,
      "lon": -1.4193,
      "population": 3136,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://latranchesurmer.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://latranchesurmer.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://latranchesurmer.fr/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://latranchesurmer.fr/"
        }
      ]
    },
    {
      "insee": "85295",
      "name": "Treize-Septiers",
      "lat": 47.0016,
      "lon": -1.2268,
      "population": 3416,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85296",
      "name": "Treize-Vents",
      "lat": 46.9161,
      "lon": -0.8448,
      "population": 1226,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://treize-vents.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://treize-vents.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://treize-vents.fr/"
        }
      ]
    },
    {
      "insee": "85297",
      "name": "Triaize",
      "lat": 46.3766,
      "lon": -1.2052,
      "population": 1071,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 0,
      "readOn": null,
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        }
      ]
    },
    {
      "insee": "85298",
      "name": "Vairé",
      "lat": 46.604,
      "lon": -1.7506,
      "population": 1960,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaire.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaire.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaire.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaire.fr/"
        }
      ]
    },
    {
      "insee": "85300",
      "name": "Venansault",
      "lat": 46.6816,
      "lon": -1.5417,
      "population": 4757,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://venansault.com/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://venansault.com/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://venansault.com/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://venansault.com/"
        }
      ]
    },
    {
      "insee": "85301",
      "name": "Vendrennes",
      "lat": 46.8188,
      "lon": -1.1176,
      "population": 1799,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vendrennes.com/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vendrennes.com/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vendrennes.com/systeme/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vendrennes.com/"
        }
      ]
    },
    {
      "insee": "85302",
      "name": "Chanverrie",
      "lat": 46.9468,
      "lon": -0.9857,
      "population": 5653,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chanverrie.fr/systeme/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chanverrie.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chanverrie.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chanverrie.fr/"
        }
      ]
    },
    {
      "insee": "85303",
      "name": "Vix",
      "lat": 46.3528,
      "lon": -0.8525,
      "population": 1835,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://vix.fr/mentions-legales-site-mairie-commune-85-vende-"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vix.fr/mentions-legales-site-mairie-commune-85-vende-"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vix.fr/"
        }
      ]
    },
    {
      "insee": "85304",
      "name": "Vouillé-les-Marais",
      "lat": 46.3901,
      "lon": -0.961,
      "population": 806,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://vouillelesmarais.com/copie-de-nouvelle-page-1"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vouillelesmarais.com/politique-des-donn%C3%A9es-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vouillelesmarais.com/politique-des-cookies"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vouillelesmarais.com/"
        }
      ]
    },
    {
      "insee": "85305",
      "name": "Vouvant",
      "lat": 46.5554,
      "lon": -0.7614,
      "population": 829,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vouvant-vendee.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vouvant-vendee.fr/"
        }
      ]
    },
    {
      "insee": "85306",
      "name": "Xanton-Chassenon",
      "lat": 46.453,
      "lon": -0.7027,
      "population": 743,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-24",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://xantonchassenon.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://xantonchassenon.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://xantonchassenon.fr/mentions-legales"
        }
      ]
    }
  ]
}
