{
  "department": "95",
  "rulesetVersion": 10,
  "crawlerVersion": 2,
  "crawledOn": "2026-10-19",
  "communes": {
    "total": 183,
    "withWebsite": 163,
    "reachable": 160,
    "pagesCrawled": 4263,
    "delegatedExcluded": 0
  },
  "checks": [
    {
      "code": "A11Y_DECLARATION",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "A11Y_DECL",
      "pass": 57,
      "fail": 101,
      "unknown": 25,
      "notApplicable": 0,
      "failHighConfidence": 57
    },
    {
      "code": "A11Y_HOMEPAGE_MENTION",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "A11Y_DECL",
      "pass": 38,
      "fail": 119,
      "unknown": 26,
      "notApplicable": 0,
      "failHighConfidence": 117
    },
    {
      "code": "A11Y_SCHEMA",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "A11Y_DECL",
      "pass": 18,
      "fail": 136,
      "unknown": 29,
      "notApplicable": 0,
      "failHighConfidence": 121
    },
    {
      "code": "DPO_CONTACT",
      "kind": "LEGAL",
      "impact": "HIGH",
      "obligationCode": "DPO",
      "pass": 48,
      "fail": 110,
      "unknown": 25,
      "notApplicable": 0,
      "failHighConfidence": 93
    },
    {
      "code": "RGPD_POLICY",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "RGPD_INFO",
      "pass": 137,
      "fail": 21,
      "unknown": 25,
      "notApplicable": 0,
      "failHighConfidence": 12
    },
    {
      "code": "MENTIONS_LEGALES",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "LCEN",
      "pass": 135,
      "fail": 23,
      "unknown": 25,
      "notApplicable": 0,
      "failHighConfidence": 17
    },
    {
      "code": "ACTES_PUBLICATION",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "ACTES",
      "pass": 52,
      "fail": 7,
      "unknown": 6,
      "notApplicable": 118,
      "failHighConfidence": 1
    },
    {
      "code": "CNIL_COOKIES",
      "kind": "LEGAL",
      "impact": "MEDIUM",
      "obligationCode": "RGPD_INFO",
      "pass": 96,
      "fail": 62,
      "unknown": 25,
      "notApplicable": 0,
      "failHighConfidence": 60
    },
    {
      "code": "NO_SITE",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 160,
      "fail": 23,
      "unknown": 0,
      "notApplicable": 0,
      "failHighConfidence": 3
    },
    {
      "code": "HTTPS",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 156,
      "fail": 4,
      "unknown": 23,
      "notApplicable": 0,
      "failHighConfidence": 4
    },
    {
      "code": "MOBILE_VIEWPORT",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 154,
      "fail": 6,
      "unknown": 23,
      "notApplicable": 0,
      "failHighConfidence": 6
    },
    {
      "code": "HTML_WEIGHT",
      "kind": "TECHNICAL",
      "impact": "LOW",
      "obligationCode": null,
      "pass": 148,
      "fail": 12,
      "unknown": 23,
      "notApplicable": 0,
      "failHighConfidence": 12
    },
    {
      "code": "LAST_UPDATED",
      "kind": "TECHNICAL",
      "impact": "MEDIUM",
      "obligationCode": null,
      "pass": 139,
      "fail": 13,
      "unknown": 31,
      "notApplicable": 0,
      "failHighConfidence": 8
    },
    {
      "code": "CMS_FINGERPRINT",
      "kind": "TECHNICAL",
      "impact": "LOW",
      "obligationCode": null,
      "pass": 138,
      "fail": 0,
      "unknown": 45,
      "notApplicable": 0,
      "failHighConfidence": 0
    },
    {
      "code": "CMS_OUTDATED",
      "kind": "TECHNICAL",
      "impact": "HIGH",
      "obligationCode": null,
      "pass": 0,
      "fail": 12,
      "unknown": 171,
      "notApplicable": 0,
      "failHighConfidence": 12
    },
    {
      "code": "EMAIL_DOMAIN",
      "kind": "TECHNICAL",
      "impact": "MEDIUM",
      "obligationCode": null,
      "pass": 120,
      "fail": 45,
      "unknown": 18,
      "notApplicable": 0,
      "failHighConfidence": 45
    }
  ],
  "populationBands": [
    {
      "band": "moins de 500",
      "communes": 50,
      "declarationMissing": 30
    },
    {
      "band": "500 à 1 999",
      "communes": 49,
      "declarationMissing": 35
    },
    {
      "band": "2 000 à 4 999",
      "communes": 27,
      "declarationMissing": 15
    },
    {
      "band": "5 000 à 9 999",
      "communes": 19,
      "declarationMissing": 10
    },
    {
      "band": "10 000 et plus",
      "communes": 38,
      "declarationMissing": 11
    }
  ],
  "cms": [
    {
      "label": "wordpress",
      "count": 101
    },
    {
      "label": "drupal",
      "count": 28
    },
    {
      "label": "inconnu",
      "count": 22
    },
    {
      "label": "typo3",
      "count": 4
    },
    {
      "label": "e-monsite",
      "count": 2
    },
    {
      "label": "joomla",
      "count": 2
    },
    {
      "label": "spip",
      "count": 1
    }
  ],
  "freshness": [
    {
      "label": "moins de 6 mois",
      "count": 130
    },
    {
      "label": "6 à 12 mois",
      "count": 9
    },
    {
      "label": "1 à 2 ans",
      "count": 6
    },
    {
      "label": "2 à 5 ans",
      "count": 4
    },
    {
      "label": "plus de 5 ans",
      "count": 3
    },
    {
      "label": "inconnu",
      "count": 8
    }
  ],
  "obligationsMet": [
    {
      "label": "aucune",
      "count": 8
    },
    {
      "label": "1 sur 6",
      "count": 26
    },
    {
      "label": "2 sur 6",
      "count": 56
    },
    {
      "label": "3 sur 6",
      "count": 16
    },
    {
      "label": "4 sur 6",
      "count": 22
    },
    {
      "label": "5 sur 6",
      "count": 21
    },
    {
      "label": "6 sur 6",
      "count": 9
    }
  ],
  "obligationsMeasured": 158,
  "unreachable": [
    {
      "label": "aucun site connu",
      "count": 20
    },
    {
      "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": 1
    }
  ],
  "map": [
    {
      "insee": "95002",
      "name": "Ableiges",
      "lat": 49.0873,
      "lon": 1.973,
      "population": 1108,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "http://ableiges.fr/"
        }
      ]
    },
    {
      "insee": "95008",
      "name": "Aincourt",
      "lat": 49.0733,
      "lon": 1.773,
      "population": 854,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 1,
      "readOn": "2026-10-19",
      "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": "95011",
      "name": "Ambleville",
      "lat": 49.151,
      "lon": 1.6959,
      "population": 388,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 16,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        }
      ]
    },
    {
      "insee": "95012",
      "name": "Amenucourt",
      "lat": 49.1084,
      "lon": 1.6469,
      "population": 212,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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-amenucourt.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-amenucourt.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95014",
      "name": "Andilly",
      "lat": 49.0098,
      "lon": 2.302,
      "population": 2742,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://ville-andilly-95.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95018",
      "name": "Argenteuil",
      "lat": 48.9501,
      "lon": 2.2478,
      "population": 106130,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://argenteuil.fr/fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://argenteuil.fr/fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://argenteuil.fr/fr/politique-de-gestion-des-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://argenteuil.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://argenteuil.fr/fr"
        }
      ]
    },
    {
      "insee": "95019",
      "name": "Arnouville",
      "lat": 48.9867,
      "lon": 2.4168,
      "population": 15023,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://arnouville95.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://arnouville95.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://arnouville95.fr/donnees-personnelles"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://arnouville95.fr/"
        }
      ]
    },
    {
      "insee": "95023",
      "name": "Arronville",
      "lat": 49.1734,
      "lon": 2.1189,
      "population": 618,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 16,
      "readOn": "2026-10-19",
      "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://arronville.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        }
      ]
    },
    {
      "insee": "95024",
      "name": "Arthies",
      "lat": 49.0935,
      "lon": 1.7977,
      "population": 265,
      "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": "95026",
      "name": "Asnières-sur-Oise",
      "lat": 49.1387,
      "lon": 2.3895,
      "population": 3127,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-asnieres-sur-oise.fr/article/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-asnieres-sur-oise.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://ville-asnieres-sur-oise.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-asnieres-sur-oise.fr/"
        }
      ]
    },
    {
      "insee": "95028",
      "name": "Attainville",
      "lat": 49.0607,
      "lon": 2.3522,
      "population": 1904,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://attainville.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://attainville.fr/"
        }
      ]
    },
    {
      "insee": "95039",
      "name": "Auvers-sur-Oise",
      "lat": 49.0847,
      "lon": 2.1569,
      "population": 6863,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "http://ville-auverssuroise.fr/vie-municipale/les-services-municipaux/965-mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://ville-auverssuroise.fr/"
        }
      ]
    },
    {
      "insee": "95040",
      "name": "Avernes",
      "lat": 49.0933,
      "lon": 1.8632,
      "population": 871,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://avernes95.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://avernes95.fr/"
        }
      ]
    },
    {
      "insee": "95042",
      "name": "Baillet-en-France",
      "lat": 49.0594,
      "lon": 2.3034,
      "population": 2021,
      "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": "95046",
      "name": "Banthelu",
      "lat": 49.1258,
      "lon": 1.8151,
      "population": 146,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-19",
      "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": "95051",
      "name": "Beauchamp",
      "lat": 49.0136,
      "lon": 2.194,
      "population": 9849,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 5,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-beauchamp.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-beauchamp.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-beauchamp.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-beauchamp.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-beauchamp.fr/"
        }
      ]
    },
    {
      "insee": "95052",
      "name": "Beaumont-sur-Oise",
      "lat": 49.1372,
      "lon": 2.2953,
      "population": 10232,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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://beaumontsuroise.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://beaumontsuroise.fr/"
        }
      ]
    },
    {
      "insee": "95054",
      "name": "Le Bellay-en-Vexin",
      "lat": 49.1505,
      "lon": 1.8762,
      "population": 224,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95055",
      "name": "Bellefontaine",
      "lat": 49.0916,
      "lon": 2.4694,
      "population": 474,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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://bellefontaine.fr/"
        }
      ]
    },
    {
      "insee": "95056",
      "name": "Belloy-en-France",
      "lat": 49.091,
      "lon": 2.37,
      "population": 2250,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://belloy-en-france.fr/mon-village/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://belloy-en-france.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://belloy-en-france.fr/mon-village/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://belloy-en-france.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://belloy-en-france.fr/"
        }
      ]
    },
    {
      "insee": "95058",
      "name": "Bernes-sur-Oise",
      "lat": 49.1678,
      "lon": 2.2997,
      "population": 2684,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bernes-sur-oise.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bernes-sur-oise.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://bernes-sur-oise.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bernes-sur-oise.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bernes-sur-oise.fr/fr"
        }
      ]
    },
    {
      "insee": "95059",
      "name": "Berville",
      "lat": 49.192,
      "lon": 2.0669,
      "population": 374,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95060",
      "name": "Bessancourt",
      "lat": 49.0364,
      "lon": 2.1998,
      "population": 8869,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bessancourt.fr/votre-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bessancourt.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bessancourt.fr/article/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bessancourt.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bessancourt.fr/"
        }
      ]
    },
    {
      "insee": "95061",
      "name": "Béthemont-la-Forêt",
      "lat": 49.0562,
      "lon": 2.2485,
      "population": 435,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://bethemont-la-foret.fr/cookie-policy-eu"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95063",
      "name": "Bezons",
      "lat": 48.925,
      "lon": 2.2147,
      "population": 36434,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bezons.fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bezons.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bezons.fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-bezons.fr/protection-des-donnees"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bezons.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-bezons.fr/"
        }
      ]
    },
    {
      "insee": "95074",
      "name": "Boisemont",
      "lat": 49.0181,
      "lon": 2.0033,
      "population": 892,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-boisemont.fr/le-village/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-boisemont.fr/la-mairie"
        },
        {
          "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-boisemont.fr/la-mairie"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-boisemont.fr/la-mairie"
        }
      ]
    },
    {
      "insee": "95078",
      "name": "Boissy-l'Aillerie",
      "lat": 49.0821,
      "lon": 2.0316,
      "population": 2120,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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-boissylaillerie.com/j/privacy"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-boissylaillerie.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-boissylaillerie.com/j/privacy"
        }
      ]
    },
    {
      "insee": "95088",
      "name": "Bonneuil-en-France",
      "lat": 48.9675,
      "lon": 2.4373,
      "population": 1185,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://bonneuil-en-france.com/privacy"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://bonneuil-en-france.com/"
        }
      ]
    },
    {
      "insee": "95091",
      "name": "Bouffémont",
      "lat": 49.0406,
      "lon": 2.2995,
      "population": 6593,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://ville-bouffemont.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95094",
      "name": "Bouqueval",
      "lat": 49.0236,
      "lon": 2.4273,
      "population": 314,
      "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": "95101",
      "name": "Bray-et-Lû",
      "lat": 49.1429,
      "lon": 1.6651,
      "population": 954,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://brayetlu.fr/"
        }
      ]
    },
    {
      "insee": "95102",
      "name": "Bréançon",
      "lat": 49.1477,
      "lon": 2.0272,
      "population": 432,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://breancon.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95110",
      "name": "Brignancourt",
      "lat": 49.1389,
      "lon": 1.9435,
      "population": 262,
      "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": "95116",
      "name": "Bruyères-sur-Oise",
      "lat": 49.1643,
      "lon": 2.3342,
      "population": 4921,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://bruyeres-sur-oise.com/"
        }
      ]
    },
    {
      "insee": "95119",
      "name": "Buhy",
      "lat": 49.1926,
      "lon": 1.7031,
      "population": 329,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://buhy.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://buhy.fr/"
        }
      ]
    },
    {
      "insee": "95120",
      "name": "Butry-sur-Oise",
      "lat": 49.0833,
      "lon": 2.1899,
      "population": 2252,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 2,
      "readOn": "2026-10-19",
      "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": "95127",
      "name": "Cergy",
      "lat": 49.0373,
      "lon": 2.0455,
      "population": 70906,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cergy.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cergy.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://cergy.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cergy.fr/"
        }
      ]
    },
    {
      "insee": "95134",
      "name": "Champagne-sur-Oise",
      "lat": 49.1455,
      "lon": 2.228,
      "population": 5036,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://champagne95.fr/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champagne95.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://champagne95.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://champagne95.fr/"
        }
      ]
    },
    {
      "insee": "95139",
      "name": "La Chapelle-en-Vexin",
      "lat": 49.1836,
      "lon": 1.7274,
      "population": 320,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95141",
      "name": "Charmont",
      "lat": 49.1388,
      "lon": 1.7901,
      "population": 32,
      "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": "95142",
      "name": "Chars",
      "lat": 49.1572,
      "lon": 1.9304,
      "population": 2006,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://mairiechars95.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiechars95.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95144",
      "name": "Châtenay-en-France",
      "lat": 49.0652,
      "lon": 2.462,
      "population": 68,
      "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": "95149",
      "name": "Chaumontel",
      "lat": 49.1277,
      "lon": 2.4367,
      "population": 3332,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://ville-chaumontel.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95150",
      "name": "Chaussy",
      "lat": 49.1153,
      "lon": 1.7075,
      "population": 631,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://chaussy95.com/politique-de-cookies-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chaussy95.com/"
        }
      ]
    },
    {
      "insee": "95151",
      "name": "Chauvry",
      "lat": 49.0558,
      "lon": 2.2689,
      "population": 297,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://chauvry.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://chauvry.fr/"
        }
      ]
    },
    {
      "insee": "95154",
      "name": "Chennevières-lès-Louvres",
      "lat": 49.0412,
      "lon": 2.5484,
      "population": 282,
      "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": "95157",
      "name": "Chérence",
      "lat": 49.0912,
      "lon": 1.678,
      "population": 137,
      "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": "95166",
      "name": "Cléry-en-Vexin",
      "lat": 49.1317,
      "lon": 1.8493,
      "population": 476,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://clery-en-vexin.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://clery-en-vexin.fr/"
        }
      ]
    },
    {
      "insee": "95169",
      "name": "Commeny",
      "lat": 49.1243,
      "lon": 1.8915,
      "population": 646,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://commeny95.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://commeny95.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95170",
      "name": "Condécourt",
      "lat": 49.037,
      "lon": 1.9366,
      "population": 564,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://condecourt.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://condecourt.fr/"
        }
      ]
    },
    {
      "insee": "95176",
      "name": "Cormeilles-en-Parisis",
      "lat": 48.9701,
      "lon": 2.201,
      "population": 27292,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-cormeilles95.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://ville-cormeilles95.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-cormeilles95.fr/systeme/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://ville-cormeilles95.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://ville-cormeilles95.fr/"
        }
      ]
    },
    {
      "insee": "95177",
      "name": "Cormeilles-en-Vexin",
      "lat": 49.1145,
      "lon": 2.0171,
      "population": 1297,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cormeilles-en-vexin.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cormeilles-en-vexin.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cormeilles-en-vexin.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://cormeilles-en-vexin.fr/"
        }
      ]
    },
    {
      "insee": "95181",
      "name": "Courcelles-sur-Viosne",
      "lat": 49.0738,
      "lon": 1.9952,
      "population": 310,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 24,
      "readOn": "2026-10-19",
      "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://courcelles-sur-viosne.fr/fr/idee"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://courcelles-sur-viosne.fr/"
        }
      ]
    },
    {
      "insee": "95183",
      "name": "Courdimanche",
      "lat": 49.0421,
      "lon": 1.9999,
      "population": 7311,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 32,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-courdimanche.fr/ma-ville/accessibilite-0"
        },
        {
          "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-courdimanche.fr/ma-ville/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-courdimanche.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-courdimanche.fr/"
        }
      ]
    },
    {
      "insee": "95197",
      "name": "Deuil-la-Barre",
      "lat": 48.9704,
      "lon": 2.327,
      "population": 23099,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 5,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-deuillabarre.fr/non-classe/declaration-daccessibilite"
        },
        {
          "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://mairie-deuillabarre.fr/non-classe/politique-de-gestion-des-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-deuillabarre.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-deuillabarre.fr/"
        }
      ]
    },
    {
      "insee": "95199",
      "name": "Domont",
      "lat": 49.0289,
      "lon": 2.3243,
      "population": 16065,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://ville-domont.fr/Mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-domont.fr/"
        }
      ]
    },
    {
      "insee": "95203",
      "name": "Eaubonne",
      "lat": 48.9912,
      "lon": 2.2781,
      "population": 26211,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eaubonne.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eaubonne.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eaubonne.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eaubonne.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eaubonne.fr/"
        }
      ]
    },
    {
      "insee": "95205",
      "name": "Écouen",
      "lat": 49.0258,
      "lon": 2.3858,
      "population": 7202,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://ecouen.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ecouen.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ecouen.fr/"
        }
      ]
    },
    {
      "insee": "95210",
      "name": "Enghien-les-Bains",
      "lat": 48.9706,
      "lon": 2.305,
      "population": 11432,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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": "PASS",
          "confidence": "MEDIUM",
          "url": "https://enghienlesbains.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://enghienlesbains.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://enghienlesbains.fr/fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95211",
      "name": "Ennery",
      "lat": 49.0767,
      "lon": 2.1089,
      "population": 2243,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "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://ennery.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ennery.fr/"
        }
      ]
    },
    {
      "insee": "95212",
      "name": "Épiais-lès-Louvres",
      "lat": 49.0322,
      "lon": 2.5475,
      "population": 156,
      "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": "95213",
      "name": "Épiais-Rhus",
      "lat": 49.1249,
      "lon": 2.0703,
      "population": 603,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://epiais-rhus.fr/"
        }
      ]
    },
    {
      "insee": "95214",
      "name": "Épinay-Champlâtreux",
      "lat": 49.0908,
      "lon": 2.4071,
      "population": 57,
      "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": "95218",
      "name": "Éragny-sur-Oise",
      "lat": 49.0224,
      "lon": 2.1002,
      "population": 18436,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://eragny.fr/politique-de-gestion-des-cookies"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eragny.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://eragny.fr/"
        }
      ]
    },
    {
      "insee": "95219",
      "name": "Ermont",
      "lat": 48.9891,
      "lon": 2.258,
      "population": 29489,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 5,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ermont.fr/3063/accessibilite/declaration-d-accessibilite.htm"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ermont.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "UNKNOWN",
          "confidence": "LOW",
          "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://ermont.fr/"
        }
      ]
    },
    {
      "insee": "95229",
      "name": "Ézanville",
      "lat": 49.0382,
      "lon": 2.3617,
      "population": 9858,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://ezanville.fr/politique-de-cookies-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ezanville.fr/"
        }
      ]
    },
    {
      "insee": "95241",
      "name": "Fontenay-en-Parisis",
      "lat": 49.0483,
      "lon": 2.4468,
      "population": 2219,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://fontenay-en-parisis.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fontenay-en-parisis.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fontenay-en-parisis.fr/"
        }
      ]
    },
    {
      "insee": "95250",
      "name": "Fosses",
      "lat": 49.1003,
      "lon": 2.5043,
      "population": 10570,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-fosses95.fr/"
        }
      ]
    },
    {
      "insee": "95252",
      "name": "Franconville",
      "lat": 48.9879,
      "lon": 2.2235,
      "population": 37754,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-franconville.fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-franconville.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-franconville.fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-franconville.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-franconville.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-franconville.fr/"
        }
      ]
    },
    {
      "insee": "95253",
      "name": "Frémainville",
      "lat": 49.0663,
      "lon": 1.8685,
      "population": 507,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 3,
      "readOn": "2026-10-19",
      "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://fremainville.fr/index.php"
        }
      ]
    },
    {
      "insee": "95254",
      "name": "Frémécourt",
      "lat": 49.1221,
      "lon": 1.9937,
      "population": 526,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://fremecourt.fr/views/mentions-legales.php"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://fremecourt.fr/index.php"
        }
      ]
    },
    {
      "insee": "95256",
      "name": "Frépillon",
      "lat": 49.0498,
      "lon": 2.2021,
      "population": 3317,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://frepillon.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://frepillon.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://frepillon.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://frepillon.fr/"
        }
      ]
    },
    {
      "insee": "95257",
      "name": "La Frette-sur-Seine",
      "lat": 48.9728,
      "lon": 2.1759,
      "population": 4570,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://lafrettesurseine.fr/article/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lafrettesurseine.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lafrettesurseine.fr/article/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lafrettesurseine.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lafrettesurseine.fr/"
        }
      ]
    },
    {
      "insee": "95258",
      "name": "Frouville",
      "lat": 49.1575,
      "lon": 2.1459,
      "population": 347,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://frouville95.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://frouville95.fr/"
        }
      ]
    },
    {
      "insee": "95268",
      "name": "Garges-lès-Gonesse",
      "lat": 48.9696,
      "lon": 2.4035,
      "population": 41791,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villedegarges.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villedegarges.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://villedegarges.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villedegarges.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villedegarges.fr/"
        }
      ]
    },
    {
      "insee": "95270",
      "name": "Genainville",
      "lat": 49.1142,
      "lon": 1.7558,
      "population": 522,
      "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": "95271",
      "name": "Génicourt",
      "lat": 49.0946,
      "lon": 2.0626,
      "population": 514,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://genicourt.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95277",
      "name": "Gonesse",
      "lat": 48.9856,
      "lon": 2.4602,
      "population": 27707,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "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://ville-gonesse.fr/contact"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-gonesse.fr/contact"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-gonesse.fr/"
        }
      ]
    },
    {
      "insee": "95280",
      "name": "Goussainville",
      "lat": 49.0266,
      "lon": 2.4683,
      "population": 31301,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 25,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-goussainville.fr/17493-accessibilite.htm"
        },
        {
          "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://ville-goussainville.fr/index.php"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-goussainville.fr/index.php"
        }
      ]
    },
    {
      "insee": "95287",
      "name": "Grisy-les-Plâtres",
      "lat": 49.1306,
      "lon": 2.0486,
      "population": 709,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 5,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://grisylesplatres.fr/le-village/politique-de-confidentialite"
        },
        {
          "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://grisylesplatres.fr/le-village/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://grisylesplatres.fr/le-village/politique-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://grisylesplatres.fr/le-village/politique-de-confidentialite"
        }
      ]
    },
    {
      "insee": "95288",
      "name": "Groslay",
      "lat": 48.9852,
      "lon": 2.3514,
      "population": 8453,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://mairie-groslay.fr/11347-operation-tranquillite-vacances.htm"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-groslay.fr/1474-mentions-legales.htm"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-groslay.fr/index.php"
        }
      ]
    },
    {
      "insee": "95295",
      "name": "Guiry-en-Vexin",
      "lat": 49.116,
      "lon": 1.8556,
      "population": 161,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 24,
      "readOn": "2026-10-19",
      "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://guiry-en-vexin.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://guiry-en-vexin.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95298",
      "name": "Haravilliers",
      "lat": 49.1763,
      "lon": 2.0377,
      "population": 589,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://haravilliers.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://haravilliers.com/"
        }
      ]
    },
    {
      "insee": "95301",
      "name": "Haute-Isle",
      "lat": 49.0848,
      "lon": 1.6675,
      "population": 293,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://hauteisle.fr/cookie-policy-eu"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95303",
      "name": "Le Heaulme",
      "lat": 49.167,
      "lon": 2.0007,
      "population": 207,
      "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": "95304",
      "name": "Hédouville",
      "lat": 49.1584,
      "lon": 2.179,
      "population": 278,
      "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": "95306",
      "name": "Herblay-sur-Seine",
      "lat": 49.0052,
      "lon": 2.1556,
      "population": 31779,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://herblaysurseine.fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://herblaysurseine.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://herblaysurseine.fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://herblaysurseine.fr/protection-des-donnees"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://herblaysurseine.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://herblaysurseine.fr/"
        }
      ]
    },
    {
      "insee": "95308",
      "name": "Hérouville-en-Vexin",
      "lat": 49.1047,
      "lon": 2.1283,
      "population": 584,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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": "http://herouville-en-vexin.net/mentions-legales-du-site-de-la-commune-dherouville-en-vexin"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://herouville-en-vexin.net/mentions-legales-du-site-de-la-commune-dherouville-en-vexin"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://herouville-en-vexin.net/"
        }
      ]
    },
    {
      "insee": "95309",
      "name": "Hodent",
      "lat": 49.1425,
      "lon": 1.7624,
      "population": 225,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://hodent.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://hodent.fr/"
        }
      ]
    },
    {
      "insee": "95313",
      "name": "L'Isle-Adam",
      "lat": 49.1078,
      "lon": 2.2352,
      "population": 12493,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-isle-adam.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-isle-adam.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-isle-adam.fr/donnees-personnelles"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-isle-adam.fr/"
        }
      ]
    },
    {
      "insee": "95316",
      "name": "Jagny-sous-Bois",
      "lat": 49.0817,
      "lon": 2.4424,
      "population": 269,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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://jagny-sous-bois.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95323",
      "name": "Jouy-le-Moutier",
      "lat": 49.0118,
      "lon": 2.0357,
      "population": 17854,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://jouylemoutier.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://jouylemoutier.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://jouylemoutier.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://jouylemoutier.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://jouylemoutier.fr/"
        }
      ]
    },
    {
      "insee": "95328",
      "name": "Labbeville",
      "lat": 49.1349,
      "lon": 2.1355,
      "population": 641,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://labbeville.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://labbeville.fr/"
        }
      ]
    },
    {
      "insee": "95331",
      "name": "Lassy",
      "lat": 49.0953,
      "lon": 2.4373,
      "population": 196,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://lassy95.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lassy95.fr/"
        }
      ]
    },
    {
      "insee": "95341",
      "name": "Livilliers",
      "lat": 49.1001,
      "lon": 2.0947,
      "population": 389,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://livilliers.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://livilliers.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95348",
      "name": "Longuesse",
      "lat": 49.0622,
      "lon": 1.9294,
      "population": 496,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://mairie-longuesse.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-longuesse.fr/"
        }
      ]
    },
    {
      "insee": "95351",
      "name": "Louvres",
      "lat": 49.0444,
      "lon": 2.5011,
      "population": 12560,
      "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": "95352",
      "name": "Luzarches",
      "lat": 49.1168,
      "lon": 2.4457,
      "population": 5008,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://luzarches.net/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://luzarches.net/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://luzarches.net/ma-ville/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://luzarches.net/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://luzarches.net/"
        }
      ]
    },
    {
      "insee": "95353",
      "name": "Maffliers",
      "lat": 49.0864,
      "lon": 2.3116,
      "population": 1856,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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://sites.google.com/site/communedemaffliers/environnement/tri-or"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        }
      ]
    },
    {
      "insee": "95355",
      "name": "Magny-en-Vexin",
      "lat": 49.162,
      "lon": 1.8058,
      "population": 5779,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 2,
      "readOn": "2026-10-19",
      "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": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://magny-en-vexin.fr/index.php"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://magny-en-vexin.fr/index.php"
        }
      ]
    },
    {
      "insee": "95365",
      "name": "Mareil-en-France",
      "lat": 49.0699,
      "lon": 2.4179,
      "population": 734,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mareil-en-france.fr/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mareil-en-france.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://mareil-en-france.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mareil-en-france.fr/"
        }
      ]
    },
    {
      "insee": "95369",
      "name": "Margency",
      "lat": 49.0017,
      "lon": 2.2892,
      "population": 3012,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-margency.fr/accessibilite-partiellement-conforme"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-margency.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-margency.fr/accessibilite-partiellement-conforme"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-margency.fr/mentions-legales-mairie-margency-95-valdoise"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-margency.fr/mentions-legales-mairie-margency-95-valdoise"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-margency.fr/"
        }
      ]
    },
    {
      "insee": "95370",
      "name": "Marines",
      "lat": 49.1499,
      "lon": 1.9825,
      "population": 3594,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://marines.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://marines.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://marines.fr/"
        }
      ]
    },
    {
      "insee": "95371",
      "name": "Marly-la-Ville",
      "lat": 49.0805,
      "lon": 2.5069,
      "population": 6022,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://marly-la-ville.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://marly-la-ville.fr/"
        }
      ]
    },
    {
      "insee": "95379",
      "name": "Maudétour-en-Vexin",
      "lat": 49.1093,
      "lon": 1.7775,
      "population": 208,
      "declaration": "UNKNOWN",
      "obligationsMet": 0,
      "obligationsDecided": 0,
      "pagesCrawled": 1,
      "readOn": "2026-10-19",
      "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": "95387",
      "name": "Menouville",
      "lat": 49.1522,
      "lon": 2.1092,
      "population": 62,
      "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": "95388",
      "name": "Menucourt",
      "lat": 49.0273,
      "lon": 1.974,
      "population": 6184,
      "declaration": "PASS",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://menucourt.fr/Accessibilit%c3%a9/9"
        },
        {
          "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": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://menucourt.fr/"
        }
      ]
    },
    {
      "insee": "95392",
      "name": "Mériel",
      "lat": 49.0772,
      "lon": 2.2125,
      "population": 5347,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meriel.fr/Accessibilite-:-partiellement-conforme/9"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meriel.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meriel.audits.inexine.net/audits/meriel/declaration.html"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://meriel.fr/Mentions-legales/8"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meriel.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://meriel.fr/"
        }
      ]
    },
    {
      "insee": "95394",
      "name": "Méry-sur-Oise",
      "lat": 49.0518,
      "lon": 2.173,
      "population": 9983,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 5,
      "readOn": "2026-10-19",
      "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": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://merysuroise.fr/"
        }
      ]
    },
    {
      "insee": "95395",
      "name": "Le Mesnil-Aubry",
      "lat": 49.0539,
      "lon": 2.3948,
      "population": 914,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://le-mesnil-aubry.fr/politique-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://le-mesnil-aubry.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95409",
      "name": "Moisselles",
      "lat": 49.0451,
      "lon": 2.3373,
      "population": 1261,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "http://mairie-moisselles.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-moisselles.fr/fr/politique-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://mairie-moisselles.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://mairie-moisselles.fr/"
        }
      ]
    },
    {
      "insee": "95422",
      "name": "Montgeroult",
      "lat": 49.0899,
      "lon": 2.0095,
      "population": 361,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://montgeroult.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montgeroult.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95424",
      "name": "Montigny-lès-Cormeilles",
      "lat": 48.9934,
      "lon": 2.1937,
      "population": 22457,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 2,
      "readOn": "2026-10-19",
      "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": "MEDIUM",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montigny95.fr/"
        }
      ]
    },
    {
      "insee": "95426",
      "name": "Montlignon",
      "lat": 49.0157,
      "lon": 2.2882,
      "population": 3038,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://village-de-montlignon.fr/rgpd"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://village-de-montlignon.fr/"
        }
      ]
    },
    {
      "insee": "95427",
      "name": "Montmagny",
      "lat": 48.9677,
      "lon": 2.3471,
      "population": 15105,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://villedemontmagny.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villedemontmagny.fr/"
        }
      ]
    },
    {
      "insee": "95428",
      "name": "Montmorency",
      "lat": 48.9922,
      "lon": 2.322,
      "population": 21763,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 2,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-montmorency.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://ville-montmorency.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-montmorency.fr/"
        }
      ]
    },
    {
      "insee": "95429",
      "name": "Montreuil-sur-Epte",
      "lat": 49.1689,
      "lon": 1.6894,
      "population": 377,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://montreuil-sur-epte.fr/politique-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://montreuil-sur-epte.fr/"
        }
      ]
    },
    {
      "insee": "95430",
      "name": "Montsoult",
      "lat": 49.0716,
      "lon": 2.3025,
      "population": 4023,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://montsoult.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://montsoult.fr/"
        }
      ]
    },
    {
      "insee": "95436",
      "name": "Mours",
      "lat": 49.1315,
      "lon": 2.2572,
      "population": 1693,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mours.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://mours.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mours.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mours.fr/"
        }
      ]
    },
    {
      "insee": "95438",
      "name": "Moussy",
      "lat": 49.1355,
      "lon": 1.9082,
      "population": 108,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://moussy.fr/cookie-policy-eu"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95445",
      "name": "Nerville-la-Forêt",
      "lat": 49.0882,
      "lon": 2.2768,
      "population": 756,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://nervillelaforet.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nervillelaforet.fr/"
        }
      ]
    },
    {
      "insee": "95446",
      "name": "Nesles-la-Vallée",
      "lat": 49.1339,
      "lon": 2.1672,
      "population": 1842,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "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://nesleslavallee.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nesleslavallee.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95447",
      "name": "Neuilly-en-Vexin",
      "lat": 49.174,
      "lon": 1.9809,
      "population": 240,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://neuillyenvexin.fr/charte-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://neuillyenvexin.fr/"
        }
      ]
    },
    {
      "insee": "95450",
      "name": "Neuville-sur-Oise",
      "lat": 49.0177,
      "lon": 2.0607,
      "population": 2058,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 3,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "LOW",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://neuville-sur-oise.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://neuville-sur-oise.fr/"
        }
      ]
    },
    {
      "insee": "95452",
      "name": "Nointel",
      "lat": 49.1294,
      "lon": 2.2952,
      "population": 903,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://nointel95.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://nointel95.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nointel95.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://nointel95.fr/"
        }
      ]
    },
    {
      "insee": "95456",
      "name": "Noisy-sur-Oise",
      "lat": 49.1343,
      "lon": 2.3272,
      "population": 549,
      "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": "95459",
      "name": "Nucourt",
      "lat": 49.1584,
      "lon": 1.8582,
      "population": 719,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95462",
      "name": "Omerville",
      "lat": 49.1404,
      "lon": 1.7183,
      "population": 327,
      "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": "95476",
      "name": "Osny",
      "lat": 49.0668,
      "lon": 2.0618,
      "population": 17954,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://osny.fr/la-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://osny.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://osny.fr/la-ville/donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://osny.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://osny.fr/"
        }
      ]
    },
    {
      "insee": "95480",
      "name": "Parmain",
      "lat": 49.125,
      "lon": 2.1991,
      "population": 5655,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-parmain.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-parmain.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://ville-parmain.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-parmain.fr/"
        }
      ]
    },
    {
      "insee": "95483",
      "name": "Le Perchay",
      "lat": 49.1154,
      "lon": 1.928,
      "population": 504,
      "declaration": "FAIL",
      "obligationsMet": 0,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "MEDIUM",
          "url": null
        }
      ]
    },
    {
      "insee": "95487",
      "name": "Persan",
      "lat": 49.1479,
      "lon": 2.2672,
      "population": 14359,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-persan.fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-persan.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-persan.fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-persan.fr/protection-des-donnees"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-persan.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-persan.fr/"
        }
      ]
    },
    {
      "insee": "95488",
      "name": "Pierrelaye",
      "lat": 49.0185,
      "lon": 2.1629,
      "population": 10130,
      "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": "95489",
      "name": "Piscop",
      "lat": 49.0162,
      "lon": 2.3421,
      "population": 768,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://piscop.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://piscop.fr/"
        }
      ]
    },
    {
      "insee": "95491",
      "name": "Le Plessis-Bouchard",
      "lat": 49.003,
      "lon": 2.2339,
      "population": 8518,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-le-plessis-bouchard.fr/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-le-plessis-bouchard.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-le-plessis-bouchard.fr/ma-ville/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-le-plessis-bouchard.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-le-plessis-bouchard.fr/"
        }
      ]
    },
    {
      "insee": "95492",
      "name": "Le Plessis-Gassot",
      "lat": 49.0362,
      "lon": 2.4168,
      "population": 102,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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://mairie-leplessisgassot.fr/?page_id=348"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "http://mairie-leplessisgassot.fr/"
        }
      ]
    },
    {
      "insee": "95493",
      "name": "Le Plessis-Luzarches",
      "lat": 49.0955,
      "lon": 2.4567,
      "population": 152,
      "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": "95500",
      "name": "Pontoise",
      "lat": 49.0488,
      "lon": 2.0996,
      "population": 31970,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "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://ville-pontoise.fr/conservation-des-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-pontoise.fr/conservation-des-donnees-personnelles"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-pontoise.fr/"
        }
      ]
    },
    {
      "insee": "95504",
      "name": "Presles",
      "lat": 49.1094,
      "lon": 2.2876,
      "population": 4017,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-presles.fr/fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-presles.fr/fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-presles.fr/fr"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-presles.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-presles.fr/fr"
        }
      ]
    },
    {
      "insee": "95509",
      "name": "Puiseux-en-France",
      "lat": 49.0703,
      "lon": 2.4896,
      "population": 3765,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puiseux-en-france.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puiseux-en-france.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://puiseux-en-france.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://puiseux-en-france.fr/"
        }
      ]
    },
    {
      "insee": "95510",
      "name": "Puiseux-Pontoise",
      "lat": 49.0659,
      "lon": 2.0135,
      "population": 603,
      "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": "95523",
      "name": "La Roche-Guyon",
      "lat": 49.0899,
      "lon": 1.6337,
      "population": 399,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larocheguyon.fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larocheguyon.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larocheguyon.fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larocheguyon.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://larocheguyon.fr/"
        }
      ]
    },
    {
      "insee": "95527",
      "name": "Roissy-en-France",
      "lat": 49.0036,
      "lon": 2.5188,
      "population": 2674,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://roissyenfrance.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://roissyenfrance.fr/confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://roissyenfrance.fr/accessibilite"
        }
      ]
    },
    {
      "insee": "95529",
      "name": "Ronquerolles",
      "lat": 49.1674,
      "lon": 2.2111,
      "population": 907,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ronquerolles95.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ronquerolles95.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ronquerolles95.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ronquerolles95.fr/donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ronquerolles95.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ronquerolles95.fr/"
        }
      ]
    },
    {
      "insee": "95535",
      "name": "Sagy",
      "lat": 49.0531,
      "lon": 1.9674,
      "population": 1096,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://sagy.fr/politique-de-cookies-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95539",
      "name": "Saint-Brice-sous-Forêt",
      "lat": 49.0034,
      "lon": 2.3453,
      "population": 15063,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 33,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://saintbrice95.fr/accessibilite-109.html"
        },
        {
          "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://saintbrice95.fr/"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintbrice95.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintbrice95.fr/"
        }
      ]
    },
    {
      "insee": "95541",
      "name": "Saint-Clair-sur-Epte",
      "lat": 49.211,
      "lon": 1.7047,
      "population": 964,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://saint-clair-sur-epte.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-clair-sur-epte.fr/"
        }
      ]
    },
    {
      "insee": "95543",
      "name": "Saint-Cyr-en-Arthies",
      "lat": 49.0604,
      "lon": 1.7416,
      "population": 236,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://saint-cyr-en-arthies.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-cyr-en-arthies.fr/"
        }
      ]
    },
    {
      "insee": "95554",
      "name": "Saint-Gervais",
      "lat": 49.1655,
      "lon": 1.7583,
      "population": 878,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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-saintgervais.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintgervais.fr/mentions-legales"
        }
      ]
    },
    {
      "insee": "95555",
      "name": "Saint-Gratien",
      "lat": 48.9679,
      "lon": 2.285,
      "population": 21336,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 32,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-saintgratien.fr/systeme/declaration-accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-saintgratien.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-saintgratien.fr/delegue-a-la-protection-des-donnees-dpd"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-saintgratien.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-saintgratien.fr/"
        }
      ]
    },
    {
      "insee": "95563",
      "name": "Saint-Leu-la-Forêt",
      "lat": 49.0211,
      "lon": 2.243,
      "population": 16138,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 32,
      "readOn": "2026-10-19",
      "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://saint-leu-la-foret.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-leu-la-foret.fr/"
        }
      ]
    },
    {
      "insee": "95566",
      "name": "Saint-Martin-du-Tertre",
      "lat": 49.1008,
      "lon": 2.3353,
      "population": 2689,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 25,
      "readOn": "2026-10-19",
      "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-saintmartin95.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-saintmartin95.fr/"
        }
      ]
    },
    {
      "insee": "95572",
      "name": "Saint-Ouen-l'Aumône",
      "lat": 49.045,
      "lon": 2.1293,
      "population": 25578,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-soa.fr/fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-soa.fr/fr"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-soa.fr/fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-soa.fr/fr/politique-de-gestion-des-donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-soa.fr/fr"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-soa.fr/fr"
        }
      ]
    },
    {
      "insee": "95574",
      "name": "Saint-Prix",
      "lat": 49.0191,
      "lon": 2.2748,
      "population": 7612,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://saintprix.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saintprix.fr/"
        }
      ]
    },
    {
      "insee": "95580",
      "name": "Saint-Witz",
      "lat": 49.0844,
      "lon": 2.5533,
      "population": 2724,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://saint-witz.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://saint-witz.fr/"
        }
      ]
    },
    {
      "insee": "95582",
      "name": "Sannois",
      "lat": 48.9731,
      "lon": 2.2509,
      "population": 26924,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-sannois.fr/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-sannois.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-sannois.fr/ma-ville/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-sannois.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-sannois.fr/"
        }
      ]
    },
    {
      "insee": "95584",
      "name": "Santeuil",
      "lat": 49.1312,
      "lon": 1.9563,
      "population": 658,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://santeuil.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://santeuil.fr/"
        }
      ]
    },
    {
      "insee": "95585",
      "name": "Sarcelles",
      "lat": 48.9925,
      "lon": 2.3858,
      "population": 59173,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://sarcelles.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://sarcelles.fr/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sarcelles.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://sarcelles.fr/"
        }
      ]
    },
    {
      "insee": "95592",
      "name": "Seraincourt",
      "lat": 49.0401,
      "lon": 1.8798,
      "population": 1305,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://seraincourt95.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95594",
      "name": "Seugy",
      "lat": 49.1224,
      "lon": 2.3956,
      "population": 1044,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "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://mairie-seugy.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95598",
      "name": "Soisy-sous-Montmorency",
      "lat": 48.9888,
      "lon": 2.3003,
      "population": 18008,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://soisy-sous-montmorency.fr/declaration-daccessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://soisy-sous-montmorency.fr/declaration-daccessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://soisy-sous-montmorency.fr/protection-des-donnees"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://soisy-sous-montmorency.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://soisy-sous-montmorency.fr/"
        }
      ]
    },
    {
      "insee": "95604",
      "name": "Survilliers",
      "lat": 49.1077,
      "lon": 2.5451,
      "population": 4091,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://survilliers.fr/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://survilliers.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://survilliers.fr/ma-ville/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://survilliers.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://survilliers.fr/"
        }
      ]
    },
    {
      "insee": "95607",
      "name": "Taverny",
      "lat": 49.0274,
      "lon": 2.2179,
      "population": 27593,
      "declaration": "PASS",
      "obligationsMet": 3,
      "obligationsDecided": 5,
      "pagesCrawled": 5,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-taverny.fr/actualite/accessibilite"
        },
        {
          "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://ville-taverny.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-taverny.fr/"
        }
      ]
    },
    {
      "insee": "95610",
      "name": "Théméricourt",
      "lat": 49.0882,
      "lon": 1.9064,
      "population": 283,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 24,
      "readOn": "2026-10-19",
      "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://themericourt.com/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://themericourt.com/"
        }
      ]
    },
    {
      "insee": "95611",
      "name": "Theuville",
      "lat": 49.1567,
      "lon": 2.0678,
      "population": 53,
      "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": "95612",
      "name": "Le Thillay",
      "lat": 49.003,
      "lon": 2.4673,
      "population": 4560,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-le-thillay.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://mairie-le-thillay.fr/mentions-legales"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-le-thillay.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-le-thillay.fr/"
        }
      ]
    },
    {
      "insee": "95625",
      "name": "Us",
      "lat": 49.1053,
      "lon": 1.9562,
      "population": 1374,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://us-en-vexin.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://us-en-vexin.fr/"
        }
      ]
    },
    {
      "insee": "95627",
      "name": "Vallangoujard",
      "lat": 49.1323,
      "lon": 2.1078,
      "population": 625,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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": "http://vallangoujard.fr/"
        }
      ]
    },
    {
      "insee": "95628",
      "name": "Valmondois",
      "lat": 49.0977,
      "lon": 2.1841,
      "population": 1208,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://valmondois.fr/le-village/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://valmondois.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://valmondois.fr/le-village/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://valmondois.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://valmondois.fr/"
        }
      ]
    },
    {
      "insee": "95633",
      "name": "Vaudherland",
      "lat": 49.0005,
      "lon": 2.4864,
      "population": 104,
      "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": "95637",
      "name": "Vauréal",
      "lat": 49.0293,
      "lon": 2.0254,
      "population": 16079,
      "declaration": "PASS",
      "obligationsMet": 5,
      "obligationsDecided": 6,
      "pagesCrawled": 11,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://vaureal.fr/ma-ville/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaureal.fr/"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaureal.fr/ma-ville/politique-de-confidentialite"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaureal.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vaureal.fr/"
        }
      ]
    },
    {
      "insee": "95641",
      "name": "Vémars",
      "lat": 49.0602,
      "lon": 2.5706,
      "population": 3124,
      "declaration": "FAIL",
      "obligationsMet": 3,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://mairiedevemars.fr/donnees-personnelles"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedevemars.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairiedevemars.fr/"
        }
      ]
    },
    {
      "insee": "95651",
      "name": "Vétheuil",
      "lat": 49.0619,
      "lon": 1.7097,
      "population": 849,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 29,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://mairie-vetheuil.fr/le-village/accessibilite-web"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-vetheuil.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-vetheuil.fr/"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://mairie-vetheuil.fr/"
        }
      ]
    },
    {
      "insee": "95652",
      "name": "Viarmes",
      "lat": 49.1229,
      "lon": 2.3836,
      "population": 5558,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://viarmes.fr/politique-de-cookies-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        }
      ]
    },
    {
      "insee": "95656",
      "name": "Vienne-en-Arthies",
      "lat": 49.0655,
      "lon": 1.7236,
      "population": 379,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://vienne-en-arthies.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vienne-en-arthies.fr/"
        }
      ]
    },
    {
      "insee": "95658",
      "name": "Vigny",
      "lat": 49.0811,
      "lon": 1.9296,
      "population": 1137,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://vigny.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://vigny.fr/"
        }
      ]
    },
    {
      "insee": "95660",
      "name": "Villaines-sous-Bois",
      "lat": 49.0751,
      "lon": 2.3548,
      "population": 778,
      "declaration": "PASS",
      "obligationsMet": 4,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villaines-sous-bois.fr/accessibilite"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villaines-sous-bois.fr/accessibilite"
        },
        {
          "code": "DPO_CONTACT",
          "status": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villaines-sous-bois.fr/declaration-de-confidentialite-ue"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villaines-sous-bois.fr/"
        }
      ]
    },
    {
      "insee": "95675",
      "name": "Villeron",
      "lat": 49.059,
      "lon": 2.5348,
      "population": 1766,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 28,
      "readOn": "2026-10-19",
      "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://villeron.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villeron.fr/"
        }
      ]
    },
    {
      "insee": "95676",
      "name": "Villers-en-Arthies",
      "lat": 49.0864,
      "lon": 1.7322,
      "population": 498,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 30,
      "readOn": "2026-10-19",
      "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://villersenarthies.fr/charte-de-confidentialite"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://villersenarthies.fr/"
        }
      ]
    },
    {
      "insee": "95678",
      "name": "Villiers-Adam",
      "lat": 49.0704,
      "lon": 2.2383,
      "population": 858,
      "declaration": "FAIL",
      "obligationsMet": 1,
      "obligationsDecided": 6,
      "pagesCrawled": 26,
      "readOn": "2026-10-19",
      "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": "FAIL",
          "confidence": "HIGH",
          "url": null
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://lapagelocale.fr/95840-villiers-adam"
        }
      ]
    },
    {
      "insee": "95680",
      "name": "Villiers-le-Bel",
      "lat": 49.008,
      "lon": 2.4036,
      "population": 30053,
      "declaration": "PASS",
      "obligationsMet": 6,
      "obligationsDecided": 6,
      "pagesCrawled": 31,
      "readOn": "2026-10-19",
      "checks": [
        {
          "code": "A11Y_DECLARATION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-villiers-le-bel.fr/1825/accessibilite-non-conforme.htm"
        },
        {
          "code": "A11Y_HOMEPAGE_MENTION",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-villiers-le-bel.fr/2/accueil.htm"
        },
        {
          "code": "A11Y_SCHEMA",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-villiers-le-bel.fr/1825/accessibilite-non-conforme.htm"
        },
        {
          "code": "DPO_CONTACT",
          "status": "PASS",
          "confidence": "MEDIUM",
          "url": "https://ville-villiers-le-bel.fr/1595/mentions-legales.htm"
        },
        {
          "code": "RGPD_POLICY",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-villiers-le-bel.fr/1595/mentions-legales.htm"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://ville-villiers-le-bel.fr/2/accueil.htm"
        }
      ]
    },
    {
      "insee": "95682",
      "name": "Villiers-le-Sec",
      "lat": 49.0751,
      "lon": 2.3862,
      "population": 205,
      "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": "95690",
      "name": "Wy-dit-Joli-Village",
      "lat": 49.0964,
      "lon": 1.8249,
      "population": 326,
      "declaration": "FAIL",
      "obligationsMet": 2,
      "obligationsDecided": 6,
      "pagesCrawled": 27,
      "readOn": "2026-10-19",
      "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://wy-dit-joli-village.fr/mentions-legales"
        },
        {
          "code": "MENTIONS_LEGALES",
          "status": "PASS",
          "confidence": "HIGH",
          "url": "https://wy-dit-joli-village.fr/"
        }
      ]
    }
  ]
}
