diff --git a/src/main/java/hdm/mi/growbros/controllers/PlantsController.java b/src/main/java/hdm/mi/growbros/controllers/PlantsController.java
index 9c751ce26ce94ca58870ec263f953519f0f7724e..9a466c17fd4d73a0e7c8f36b0b7f8834f736649b 100644
--- a/src/main/java/hdm/mi/growbros/controllers/PlantsController.java
+++ b/src/main/java/hdm/mi/growbros/controllers/PlantsController.java
@@ -1,5 +1,6 @@
 package hdm.mi.growbros.controllers;
 
+import hdm.mi.growbros.exceptions.PlantNotFoundException;
 import hdm.mi.growbros.models.dto.CustomPageDto;
 import hdm.mi.growbros.models.plant.Plant;
 import hdm.mi.growbros.models.search.SearchRequest;
@@ -12,12 +13,12 @@ import java.util.Collection;
 
 @RestController
 @CrossOrigin
-@RequestMapping("/api/v1")
+@RequestMapping("/api/v1/plants")
 @RequiredArgsConstructor
 public class PlantsController {
     private final PlantsService plantsService;
 
-    @GetMapping("/plants")
+    @GetMapping
     public CustomPageDto<Plant> getAllPlants(
             @RequestParam(value = "page", defaultValue = "0") int page,
             @RequestParam(value = "pageSize", defaultValue = "25") int pageSize
@@ -25,17 +26,22 @@ public class PlantsController {
         return plantsService.getPlants(page, pageSize);
     }
 
-    @GetMapping("/plants/randomPlants/{numberOfPlants}")
+    @GetMapping("/{id}")
+    public Plant getPlant(@PathVariable long id) {
+        return plantsService.findById(id).orElseThrow(() -> new PlantNotFoundException(id));
+    }
+
+    @GetMapping("/randomPlants/{numberOfPlants}")
     public Collection<Plant> getRandomPlants(@PathVariable Integer numberOfPlants) {
         return plantsService.getRandomPlants(numberOfPlants);
     }
 
-    @GetMapping("/plants/search")
+    @GetMapping("/search")
     public Collection<Plant> getPlantsSearchedFor(@RequestBody @Valid SearchRequest searchRequest) {
         return plantsService.getPlantsSearchedFor(searchRequest);
     }
 
-    @PostMapping("/plants")
+    @PostMapping
     public void createPlant(@RequestBody @Valid Plant plant) {
         plantsService.createPlant(plant);
     }
diff --git a/src/main/java/hdm/mi/growbros/service/PlantsService.java b/src/main/java/hdm/mi/growbros/service/PlantsService.java
index 41ac6c79fa8b33bfd4326e3d8f239a4ef64f7750..1d6c0fda032984276520e838e944438d89948761 100644
--- a/src/main/java/hdm/mi/growbros/service/PlantsService.java
+++ b/src/main/java/hdm/mi/growbros/service/PlantsService.java
@@ -3,8 +3,8 @@ package hdm.mi.growbros.service;
 import hdm.mi.growbros.models.dto.CustomPageDto;
 import hdm.mi.growbros.models.plant.Plant;
 import hdm.mi.growbros.models.search.PlantSpecification;
-import hdm.mi.growbros.repositories.PlantRepository;
 import hdm.mi.growbros.models.search.SearchRequest;
+import hdm.mi.growbros.repositories.PlantRepository;
 import lombok.RequiredArgsConstructor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,4 +55,8 @@ public class PlantsService {
         log.info("Saving plant '{}' to repository.", plant.getName());
         plantRepository.save(plant);
     }
+
+    public Optional<Plant> findById(long id) {
+        return plantRepository.findById(id);
+    }
 }