diff --git a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java
index f74ef5c4d9b62628e37ffd4d8d397dfbe79fb3a6..49289df3d04de0c901bceff43ec0947c54d2a472 100644
--- a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java
+++ b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java
@@ -7,10 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 @RestController
 public class ArtefactoController {
@@ -25,4 +28,15 @@ public class ArtefactoController {
         if(artefactos.isEmpty()) return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
         return ResponseEntity.ok(artefactos);
     }
+
+    @GetMapping("/artefacte/{id}")
+    @ResponseBody
+    public ResponseEntity<Artefacto> getArtefactoById(@PathVariable int id) {
+        Artefacto artefacto = artefactoService.getArtefactosbyId(id);
+        if (artefacto == null) {
+            return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); // Responde con 404 si no se encuentra
+        }
+        return ResponseEntity.ok(artefacto); // Responde con 200 OK si se encuentra
+    }
+
 }
diff --git a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java
index c780ac3efd935e150a2911af41bf27e76e8a2594..5c62e211640336d5b40aa7a3aae217feb018a7e8 100644
--- a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java
+++ b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java
@@ -27,6 +27,9 @@ public class Artefacto {
         this.estado = estado;
     }
 
+    public Artefacto(){
+
+    }
     public int getId() {
         return id;
     }
diff --git a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java
index 03bc6ff492fd456046a3015be41561d4f3767bff..16af6126c6cb53245512aa461d28716d3fb916d1 100644
--- a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java
+++ b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java
@@ -14,24 +14,39 @@ import java.util.List;
 @Service
 public class ArtefactoService {
 
+    private final List<Artefacto> artefactos = new ArrayList<>();
+
     @Autowired
     private ArtefactoRepository artefactoRepository;
 
+    public ArtefactoService() {
+        // Crear ubicación de ejemplo
+        Ubicacion ubicacion = new Ubicacion(1, "Barcelona", "En centro", 1);
+
+        // Crear lista de artefactos simulados
+        artefactos.add(new Artefacto(1, "Juguetes", "Juguetes de niños", ubicacion, 1));
+        artefactos.add(new Artefacto(2, "Libro antiguo", "Libro del siglo XVIII", ubicacion, 1));
+    }
+
     public ResponseEntity postArtefacte(Artefacto artefacto){
         artefactoRepository.save(artefacto);
         return ResponseEntity.status(HttpStatus.CREATED).build();
     }
 
+
     public List<Artefacto> getArtefactos() {
-        // Crear ubicación de ejemplo
-        Ubicacion ubicacion = new Ubicacion(1, "Barcelona", "En centro", 1);
+        return artefactos;
+    }
 
+    public Artefacto getArtefactosbyId(int id) {
         // Crear lista de artefactos
-        List<Artefacto> artefactos = new ArrayList<>();
-        artefactos.add(new Artefacto(1, "Juguetes", "Juguetes de niños", ubicacion, 1));
-        artefactos.add(new Artefacto(2, "Libro antiguo", "Libro del siglo XVIII", ubicacion, 1));
+        for(Artefacto artefacto: artefactos){
+            if(artefacto.getId() == id){
+                return artefacto;
+            }
+        }
 
-        return artefactos;
+        return null;
     }