diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c9f7913ea585b92b5d734587db827f8f152cd4a..68d4f360ce62aa30e10b43028dd01ed24768839f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -223,6 +223,11 @@ test_pref87:
     PREF: "pref87"
   extends: .default_pref
 
+test_pref92:
+  variables:
+    PREF: "pref92"
+  extends: .default_pref
+
 test_pref93:
   variables:
     PREF: "pref93"
diff --git a/Attrap_pref92.py b/Attrap_pref92.py
new file mode 100644
index 0000000000000000000000000000000000000000..2da3a7f1df1bee55203ff12793aaf9ebbe6b57d5
--- /dev/null
+++ b/Attrap_pref92.py
@@ -0,0 +1,90 @@
+import datetime
+import logging
+import re
+import urllib.parse
+
+from bs4 import BeautifulSoup
+
+from Attrap import Attrap
+
+logger = logging.getLogger(__name__)
+
+
+class Attrap_pref92(Attrap):
+
+    # Config
+    __USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
+    __HOST = 'https://www.hauts-de-seine.gouv.fr'
+    __FIRST_YEAR = 2016
+    __RAA_YEAR_PAGE_TEMPLATE = (
+        '/Publications/Annonces-avis/'
+        'Le-Recueil-des-actes-administratifs/RAA-{year}/'
+    )
+    __RAA_PAGER_SELECTOR = 'a.fr-pagination__link.fr-pagination__link--next'
+    __RAA_PDF_SELECTOR = '#main .fr-card__content a.fr-card__link.menu-item-link'
+    __RAA_PUB_DATE_RE = re.compile(r'(?P<d>\d{2})\/(?P<m>\d{2})\/(?P<y>\d{4})')
+    full_name = 'Préfecture des Hauts-de-Seine'
+    short_code = 'pref92'
+
+    def __init__(self, data_dir):
+        super().__init__(data_dir, self.__USER_AGENT)
+        self.enable_tor(10)
+
+    def get_raa(self, keywords):
+        # On récupère les pages des années. Pas besoin de fetch la page
+        # initiale, l'URL est prévisible pour chaque année.
+        year_pages = [
+            self.__HOST + self.__RAA_YEAR_PAGE_TEMPLATE.format(year=year)
+            for year in self._get_year_range(min_year=self.not_before.year)
+        ]
+        # On récupère tous les RAA en suivant la navigation.
+        elements = self.get_raa_with_pager(
+            year_pages,
+            self.__RAA_PAGER_SELECTOR,
+            self.__HOST
+        )
+
+        self.parse_raa(elements, keywords)
+        self.mailer()
+
+    def get_raa_elements(self, page_content):
+        soup = BeautifulSoup(page_content, 'html.parser')
+
+        elements = []
+        for a in soup.select(self.__RAA_PDF_SELECTOR):
+            # On ignore les RAA dont on a pu voir que la date de publication
+            # est avant notre limite.
+            link_title = a['title']
+            pub_date = self._get_pub_date_from_link_title(link_title)
+            if not pub_date:
+                logger.warning(f'Date non trouvée dans l\'attribut title : {link_title}')
+                continue
+            if pub_date < self.not_before:
+                continue
+
+            if (url := a.get('href')) and url.endswith('.pdf'):
+                if url.startswith('/'):
+                    url = self.__HOST + urllib.parse.quote(url)
+                name = a.get_text().strip()
+                raa = Attrap.RAA(url, pub_date, name)
+                elements.append(raa)
+
+        return elements
+
+    def _get_pub_date_from_link_title(self, title):
+        """C'est sympa il y a la date de publication du RAA dans le title du lien."""
+        if match := self.__RAA_PUB_DATE_RE.search(title):
+            parts = match.groupdict()
+            return datetime.datetime(
+                int(parts['y']), int(parts['m']), int(parts['d'])
+            )
+        return None
+
+    def _get_year_range(self, min_year=0):
+        """Renvoie une liste d'années avec des RAA."""
+        return list(
+            range(
+                max(self.__FIRST_YEAR, min_year),
+                datetime.datetime.now().year + 1
+            )
+        )
diff --git a/Makefile b/Makefile
index 56c154ca1959fdc502929df09f1a7a3055929d41..e6325a78b4234299fe87ba3680eb2c6f172efd0b 100644
--- a/Makefile
+++ b/Makefile
@@ -51,6 +51,8 @@ pref83:
 	bin/python3 cli.py pref83
 pref87:
 	bin/python3 cli.py pref87
+pref92:
+	bin/python3 cli.py pref92
 pref93:
 	bin/python3 cli.py pref93
 pref94:
diff --git a/README.md b/README.md
index 895623f6fe16683deb2571f83c4b0dec9e50985c..0ff8696e464d00917016181c61804f1f519d0c83 100644
--- a/README.md
+++ b/README.md
@@ -87,6 +87,7 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai
 - Préfecture du Tarn (identifiant : `pref81`)
 - Préfecture du Var (identifiant : `pref83`)
 - Préfecture de la Haute-Vienne (identifiant : `pref87`)
+- Préfecture des Hauts-de-Seine (identifiant : `pref92`)
 - Préfecture de Seine-Saint-Denis (identifiant : `pref93`)
 - Préfecture du Val-de-Marne (identifiant : `pref94`)
 - Préfecture de Mayotte (identifiant : `pref976`)
diff --git a/cli.py b/cli.py
index 8c1a1d8d021e46bbce3a82ee9114137e7ff1a168..38982c12d3d4802369709ecd4dd812e4c8e969b2 100755
--- a/cli.py
+++ b/cli.py
@@ -65,6 +65,7 @@ available_administrations = [
     'pref81',
     'pref83',
     'pref87',
+    'pref92',
     'pref93',
     'pref94',
     'pref976'