diff --git a/Pendu/GameEngine.swift b/Pendu/GameEngine.swift
index e99a54aed2060e237cf16568522c31fb489b48a7..56914995cddd9c00ce920b851df9944364053452 100644
--- a/Pendu/GameEngine.swift
+++ b/Pendu/GameEngine.swift
@@ -155,6 +155,10 @@ class GameEngine: NSObject {
         return false;
     }
     
+    public func getScore() -> Int {
+        return self.score;
+    }
+    
     public func saveScore() -> Void {
         // Enregistrement du score dans la base Core Data
         
@@ -179,5 +183,78 @@ class GameEngine: NSObject {
     
     static func getOnlineScoreboard() -> Void {
         // Récupération du classement depuis le serveur
+
+        // URL de l'API
+        let url = URL(string: "https://miscs.sl-projects.com/IUT-ORSAY/LP-PRISM/TP-iOS/")!
+
+        // Création de la tâche de session URLSessionDataTask pour récupérer les données
+        let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
+            // Vérification des erreurs et de la disponibilité des données
+            guard let data = data, error == nil else {
+                print("Erreur lors de la récupération des données : \(error?.localizedDescription ?? "Erreur inconnue")")
+                return
+            }
+            
+            // Récupération du contexte Core Data
+            guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
+                print("Impossible d'obtenir l'AppDelegate")
+                return
+            }
+            let managedContext = appDelegate.persistentContainer.viewContext
+            
+            do {
+                // Décodage du JSON en une liste de dictionnaires
+                guard let jsonArray = try JSONSerialization.jsonObject(with: data, options: []) as? [[String: Any]] else {
+                    print("Le JSON n'est pas au format attendu.")
+                    return
+                }
+                
+                // Utilisation des données JSON
+                for jsonScore in jsonArray {
+                    // Création d'une instance NSManagedObject pour le score
+                    let scoreObject = Score(context: managedContext)
+                    
+                    // Association des valeurs du JSON aux attributs du modèle Core Data
+                    scoreObject.categoryName = jsonScore["categoryName"] as? String ?? ""
+                    scoreObject.difficulty = jsonScore["difficulty"] as? String ?? ""
+                    scoreObject.playerName = jsonScore["playerName"] as? String ?? ""
+                    
+                    if let scoreValue = jsonScore["score"] as? Int {
+                        scoreObject.score = Int16(scoreValue)
+                    } else if let scoreValueString = jsonScore["score"] as? String,
+                              let scoreValue = Int(scoreValueString) {
+                        scoreObject.score = Int16(scoreValue)
+                    } else {
+                        scoreObject.score = 0 // Valeur par défaut si le score ne peut pas être extrait du JSON
+                    }
+                }
+                
+                // Sauvegarde du contexte Core Data
+                do {
+                    try managedContext.save()
+                } catch {
+                    print("Erreur lors de la sauvegarde du contexte Core Data : \(error.localizedDescription)")
+                }
+                
+                // Récupération des scores enregistrés dans une liste
+                let fetchRequest = NSFetchRequest<Score>(entityName: "Score")
+                let fetchedScores = try managedContext.fetch(fetchRequest)
+                
+                // Utilisation de la liste de scores
+                for fetchedScore in fetchedScores {
+                    print("Category: \(fetchedScore.categoryName)")
+                    print("Difficulty: \(fetchedScore.difficulty)")
+                    print("Player Name: \(fetchedScore.playerName)")
+                    print("Score: \(fetchedScore.score)")
+                    print("------------------------")
+                }
+            } catch {
+                print("Erreur lors du décodage JSON : \(error.localizedDescription)")
+            }
+        }
+
+        // Lancement de la tâche
+        task.resume()
+
     }
 }