diff --git a/api/src/main/java/no/freshify/api/controller/HouseholdController.java b/api/src/main/java/no/freshify/api/controller/HouseholdController.java
index 7fbcf9a5e22f211c23cd29a0c19c961fd4611677..36a272e2e128c7e1e59d4052c90ea3a84039bc04 100644
--- a/api/src/main/java/no/freshify/api/controller/HouseholdController.java
+++ b/api/src/main/java/no/freshify/api/controller/HouseholdController.java
@@ -6,6 +6,7 @@ import no.freshify.api.exception.InvalidHouseholdMemberRoleException;
 import no.freshify.api.exception.UserDoesNotBelongToHouseholdException;
 import no.freshify.api.exception.UserNotFoundException;
 import no.freshify.api.model.*;
+import no.freshify.api.model.dto.UserFull;
 import no.freshify.api.model.dto.UserTypeRequest;
 import no.freshify.api.repository.HouseholdMemberRepository;
 import no.freshify.api.repository.HouseholdRepository;
@@ -79,7 +80,7 @@ public class HouseholdController {
      * @return A list of users in the given household
      */
     @GetMapping("/{id}/users")
-    public ResponseEntity<List<User>> getUsers(@PathVariable("id") long householdId) throws HouseholdNotFoundException {
+    public ResponseEntity<List<UserFull>> getUsers(@PathVariable("id") long householdId) throws HouseholdNotFoundException {
         return ResponseEntity.ok(householdService.getUsers(householdId));
     }
 
diff --git a/api/src/main/java/no/freshify/api/controller/ShoppingListController.java b/api/src/main/java/no/freshify/api/controller/ShoppingListController.java
new file mode 100644
index 0000000000000000000000000000000000000000..54b8231e5c45c39cf3bf609d3a6d104ed8f4ead3
--- /dev/null
+++ b/api/src/main/java/no/freshify/api/controller/ShoppingListController.java
@@ -0,0 +1,60 @@
+package no.freshify.api.controller;
+
+import lombok.RequiredArgsConstructor;
+import no.freshify.api.exception.HouseholdNotFoundException;
+import no.freshify.api.exception.ItemTypeNotFoundException;
+import no.freshify.api.exception.ShoppingListEntryAlreadyExistsException;
+import no.freshify.api.model.*;
+import no.freshify.api.model.dto.ShoppingListEntryRequest;
+import no.freshify.api.service.HouseholdService;
+import no.freshify.api.service.ItemTypeService;
+import no.freshify.api.service.ShoppingListService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/household/{id}/shoppinglist")
+@RequiredArgsConstructor
+public class ShoppingListController {
+
+    private final HouseholdService householdService;
+    private final ShoppingListService shoppingListService;
+    private final ItemTypeService itemTypeService;
+
+    private final Logger logger = LoggerFactory.getLogger(InventoryController.class);
+
+
+    /**
+     * Adds an item to the given household's shopping list
+     * @param householdId The household whose shopping list we want to add an item to
+     * @param requestBody The item to be added
+     * @return
+     * @throws HouseholdNotFoundException If the household was not found
+     * @throws ItemTypeNotFoundException If the item type was not found
+     * @throws ShoppingListEntryAlreadyExistsException If the shopping list entry already exists in the shopping list
+     */
+    //TODO: legg til 'addedBy' i shoppingListEntry
+    @PostMapping()
+    public ResponseEntity<ShoppingListEntry> addItem(@PathVariable("id") long householdId,
+                                                       @RequestBody ShoppingListEntryRequest requestBody)
+            throws HouseholdNotFoundException, ItemTypeNotFoundException, ShoppingListEntryAlreadyExistsException {
+
+        // Find the household by ID
+        Household household = householdService.findHouseholdByHouseholdId(householdId);
+
+        // Create a new ShoppingListEntry object
+        ShoppingListEntry shoppingListEntry = new ShoppingListEntry();
+        shoppingListEntry.setType(itemTypeService.getItemTypeById(requestBody.getItemTypeId()));
+        shoppingListEntry.setCount(requestBody.getCount());
+        shoppingListEntry.setSuggested(requestBody.getSuggested());
+        shoppingListEntry.setHousehold(household);
+
+        // Add the new ShoppingListEntry to the household's shopping list
+        shoppingListService.addItem(shoppingListEntry);
+
+        // Return the updated shopping list
+        return ResponseEntity.ok(shoppingListEntry);
+    }
+}
diff --git a/api/src/main/java/no/freshify/api/exception/ShoppingListEntryAlreadyExistsException.java b/api/src/main/java/no/freshify/api/exception/ShoppingListEntryAlreadyExistsException.java
new file mode 100644
index 0000000000000000000000000000000000000000..c17daed0e3de3054621c0312003accfe3d9752de
--- /dev/null
+++ b/api/src/main/java/no/freshify/api/exception/ShoppingListEntryAlreadyExistsException.java
@@ -0,0 +1,9 @@
+package no.freshify.api.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.CONFLICT)
+public class ShoppingListEntryAlreadyExistsException extends Exception {
+    public ShoppingListEntryAlreadyExistsException() { super("Shopping list entry already exists in the shopping list"); }
+}
\ No newline at end of file
diff --git a/api/src/main/java/no/freshify/api/model/dto/ShoppingListEntryRequest.java b/api/src/main/java/no/freshify/api/model/dto/ShoppingListEntryRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..471ebf7e7f1f724392a258580acab78a2af5ee98
--- /dev/null
+++ b/api/src/main/java/no/freshify/api/model/dto/ShoppingListEntryRequest.java
@@ -0,0 +1,12 @@
+package no.freshify.api.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ShoppingListEntryRequest {
+    Long itemTypeId;
+    Long count;
+    Boolean suggested;
+}
diff --git a/api/src/main/java/no/freshify/api/model/dto/UserFull.java b/api/src/main/java/no/freshify/api/model/dto/UserFull.java
index 02c273f562e9ce8ebf92c4513d7cc83cca3e45ff..d9d2043eae51fde4afb3d1c37a38ed08d365893c 100644
--- a/api/src/main/java/no/freshify/api/model/dto/UserFull.java
+++ b/api/src/main/java/no/freshify/api/model/dto/UserFull.java
@@ -1,13 +1,13 @@
 package no.freshify.api.model.dto;
 
-import lombok.Getter;
-import lombok.Setter;
-import no.freshify.api.model.User;
+import lombok.*;
 
 @Getter
 @Setter
+@AllArgsConstructor
+@NoArgsConstructor
 public class UserFull {
-    private long id;
+    private Long id;
     private String firstName;
     private String email;
 }
diff --git a/api/src/main/java/no/freshify/api/service/HouseholdService.java b/api/src/main/java/no/freshify/api/service/HouseholdService.java
index b15f6e753109778827d22a53c4bd032d121dc598..b1d4e354590183a7d8219572919cce0ea4c7e981 100644
--- a/api/src/main/java/no/freshify/api/service/HouseholdService.java
+++ b/api/src/main/java/no/freshify/api/service/HouseholdService.java
@@ -6,6 +6,7 @@ import no.freshify.api.exception.UserNotFoundException;
 import no.freshify.api.model.Household;
 import no.freshify.api.model.HouseholdMember;
 import no.freshify.api.model.User;
+import no.freshify.api.model.dto.UserFull;
 import no.freshify.api.repository.HouseholdMemberRepository;
 import no.freshify.api.repository.HouseholdRepository;
 import no.freshify.api.repository.UserRepository;
@@ -15,6 +16,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Service
@@ -27,16 +29,22 @@ public class HouseholdService {
 
     private final Logger logger = LoggerFactory.getLogger(HouseholdService.class);
 
-    public List<User> getUsers(long householdId) throws HouseholdNotFoundException {
+    public List<UserFull> getUsers(long householdId) throws HouseholdNotFoundException {
         logger.info("Getting users in household with id: " + householdId);
         if (!householdRepository.existsById(householdId)) {
             logger.warn("Household with id " + householdId + " not found");
             throw new HouseholdNotFoundException();
         }
 
-        return householdMemberRepository.findHouseholdMembersByHouseholdId(householdId)
-                .stream()
-                .map(HouseholdMember::getUser).toList();
+        List<HouseholdMember> householdMembers = householdMemberRepository.findHouseholdMembersByHouseholdId(householdId);
+        List<UserFull> users = new ArrayList<>();
+        for (HouseholdMember householdMember : householdMembers) {
+            User user = householdMember.getUser();
+            UserFull userFull = new UserFull(user.getId(), user.getFirstName(), user.getEmail());
+            users.add(userFull);
+        }
+
+        return users;
     }
 
     public List<Household> getHouseholds(long userId) throws UserNotFoundException {
diff --git a/api/src/main/java/no/freshify/api/service/ShoppingListService.java b/api/src/main/java/no/freshify/api/service/ShoppingListService.java
new file mode 100644
index 0000000000000000000000000000000000000000..74b5f7fb8e2a28dbb6e8d5f32569b6500496c8b9
--- /dev/null
+++ b/api/src/main/java/no/freshify/api/service/ShoppingListService.java
@@ -0,0 +1,29 @@
+package no.freshify.api.service;
+
+import lombok.RequiredArgsConstructor;
+import no.freshify.api.exception.ShoppingListEntryAlreadyExistsException;
+import no.freshify.api.model.Item;
+import no.freshify.api.model.ShoppingListEntry;
+import no.freshify.api.repository.ShoppingListEntryRepository;
+import no.freshify.api.repository.UserRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+@RequiredArgsConstructor
+public class ShoppingListService {
+
+    private final ShoppingListEntryRepository shoppingListEntryRepository;
+
+    private final Logger logger = LoggerFactory.getLogger(UserService.class);
+
+    public void addItem(ShoppingListEntry shoppingListEntry) throws ShoppingListEntryAlreadyExistsException {
+        logger.info("Adding item to shopping list");
+        if (shoppingListEntryRepository.existsById(shoppingListEntry.getId())) {
+            logger.warn("Shopping list entry already exists in the shopping list");
+            throw new ShoppingListEntryAlreadyExistsException();
+        }
+        shoppingListEntryRepository.save(shoppingListEntry);
+    }
+}