diff --git a/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/api/WorksApi.java b/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/api/WorksApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..20f668cf5e24a4babe256d0f4a1c7df0cc72064b
--- /dev/null
+++ b/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/api/WorksApi.java
@@ -0,0 +1,47 @@
+package eu.fairkom.faircommons.api_service.api;
+
+import eu.fairkom.faircommons.common.model.WorkCreateView;
+import eu.fairkom.faircommons.common.model.WorkView;
+import eu.fairkom.faircommons.common.rabbitmq.RabbitMqService;
+import eu.fairkom.faircommons.common.rabbitmq.message.HashingMessage;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/{userId}/works")
+public class WorksApi {
+
+    private final RabbitMqService rabbitMqService;
+
+    public WorksApi(RabbitMqService rabbitMqService) {
+        this.rabbitMqService = rabbitMqService;
+    }
+
+
+    @GetMapping
+    public ResponseEntity<List<WorkView>> getWorksByUserId(@PathVariable String userId) {
+        return null;
+    }
+
+    @GetMapping("/{workId}")
+    public ResponseEntity<WorkView> getWorkById(@PathVariable String userId, @PathVariable String workId) {
+        return null;
+    }
+
+    @PutMapping("/{workId}")
+    public ResponseEntity<Void> updateWork(@PathVariable String userId, @PathVariable String workId) {
+        return null;
+    }
+
+    @PostMapping("/register")
+    public ResponseEntity<Void> registerWork(@PathVariable String userId, @RequestBody WorkCreateView workCreateView) {
+        var message = new HashingMessage();
+        message.setName("Test Hashing Message");
+
+        rabbitMqService.sendMessage(message);
+
+        return ResponseEntity.ok().build();
+    }
+}