diff --git a/dev/gitlab_forge.R b/dev/gitlab_forge.R
index 3f6147a9e70454e0694222fd010f2458f872576e..c9baf8cb78189515bc9bde5d605e3ad448d2997a 100644
--- a/dev/gitlab_forge.R
+++ b/dev/gitlab_forge.R
@@ -10,18 +10,44 @@ set_gitlab_connection(
   private_token = Sys.getenv("GITLAB_COM_TOKEN")
 )
 
-response <- GET(
-  "https://gitlab-forge.din.developpement-durable.gouv.fr/api/v4/groups/1013/projects",
-  add_headers(`PRIVATE-TOKEN` = Sys.getenv("GITLAB_COM_TOKEN")),
-  query = list(
-    include_subgroups = "true",
-    per_page = 1000
-  ),
-  timeout(120)  # Timeout augmenté pour les projets
-)
+response <- data.frame()
+# on charge les projets du groupe CSD
+buildres <- function(i){
+  res_proj100 <- GET(
+    "https://gitlab-forge.din.developpement-durable.gouv.fr/api/v4/groups/1013/projects",
+    add_headers(`PRIVATE-TOKEN` = Sys.getenv("GITLAB_COM_TOKEN")),
+    query = list(
+      include_subgroups = "true",
+      per_page = 100,
+      page = i
+    ),
+    timeout(120)  # Timeout augmenté pour les projets
+  )
+  res <- content(res_proj100, as = "text", encoding = "UTF-8") %>% fromJSON()
+  return(res)
+}
+#on réalise une boucle si plus de 100 projets
+x <- 1
+repeat {
+  res <- buildres(x)
+  if (length(res) == 0) {
+    break
+  }
+  response <- bind_rows(response, res)
+  x <- x + 1
+}
+# response <- GET(
+#   "https://gitlab-forge.din.developpement-durable.gouv.fr/api/v4/groups/1013/projects",
+#   add_headers(`PRIVATE-TOKEN` = Sys.getenv("GITLAB_COM_TOKEN")),
+#   query = list(
+#     include_subgroups = "true",
+#     per_page = 1000
+#   ),
+#   timeout(120)  # Timeout augmenté pour les projets
+# )
 
 # Parse the JSON content
-projects <- content(response, as = "text", encoding = "UTF-8") %>% fromJSON()
+projects <- response
 
 # Extract the project IDs
 project_ids <- projects$id