diff --git a/docs/api.yml b/docs/api.yml
index 99b4147ea12e03bcfcf280e438ad67aeda200b58..0bc3a2a5c4da5c611091946f20c782c44c5e49be 100644
--- a/docs/api.yml
+++ b/docs/api.yml
@@ -50,6 +50,44 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Device'
+  /device/{deviceName}/sensors/{sensorName}:
+    get:
+      summary: Gets a specific device
+      operationId: device
+      parameters:
+        - in: path
+          name: deviceName
+          description: The device name
+          required: true
+          schema:
+            type: string
+        - in: path
+          name: sensorName
+          description: The sensor name
+          required: true
+          schema:
+            type: string
+      responses:
+        '200':
+          description: The sensor
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Sensor'
+
+  /sensors:
+    get:
+      summary: Gets all sensors
+      operationId: sensors
+      responses:
+        '200':
+          description: All available sensors
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/Sensor'
 
 components:
   schemas:
@@ -74,16 +112,41 @@ components:
     Device:
       type: object
       required:
-        - ID
+        - id
         - name
       properties:
-        ID:
+        id:
           type: integer
           example: 1
-        Projectname:
+        name:
           type: string
           example: "My Device"
 
+    Sensor:
+      type: object
+      required:
+        - id
+        - device_id
+        - name
+        - sensor_type
+        - value
+      properties:
+        id:
+          type: integer
+          example: 1
+        device_id:
+          type: integer
+          example: 1
+        name:
+          type: string
+          example: "My Device"
+        sensor_type:
+          type: string
+          example: "temperature"
+        value:
+          type: string
+          example: "20.15"
+
     SuccessResponse:
       required:
         - success
diff --git a/src/blueprints/Routes.py b/src/blueprints/Routes.py
index e0191cf82afc0a0dc4b48fb59f26bee705f2e7f0..3ae54e1db5b47ef300f045efc656641114780c4a 100644
--- a/src/blueprints/Routes.py
+++ b/src/blueprints/Routes.py
@@ -55,6 +55,20 @@ def construct_blueprint(settings, version):
         database = Database(settings['database']['databasePath'])
         return jsonify(database.get_device(deviceName))
 
+    @routes.route('/sensors', methods=['GET'])
+    def get_all_sensors():
+        database = Database(settings['database']['databasePath'])
+        return jsonify(database.get_all_sensors())
+
+    @routes.route('/device/<deviceName>/sensors/<sensorName>', methods=['GET'])
+    def get_sensor(deviceName, sensorName):
+        database = Database(settings['database']['databasePath'])
+        device = database.get_device(deviceName)
+        if not device:
+            return jsonify({'success': False, 'msg': f'No device with name "{deviceName}" existing'})
+
+        return jsonify(database.get_sensor(device['id'], sensorName))
+
     @routes.route('/device/<deviceName>', methods=['POST'])
     def postSensorData(deviceName):
         try:
@@ -80,7 +94,7 @@ def construct_blueprint(settings, version):
         sensorName = sensorParams[SensorParameters.NAME.value]
         sensorType = sensorParams[SensorParameters.TYPE.value]
         sensorValue = sensorParams[SensorParameters.VALUE.value]
-        sensor = database.get_sensor(device[0], sensorName)
+        sensor = database.get_sensor(device['id'], sensorName)
         if sensor:
             database.update_sensor(device, sensorName, sensorType, sensorValue)
         else:
diff --git a/src/logic/Database.py b/src/logic/Database.py
index c291030180542e4ce073c5dd954c949bab30334e..cdf0843b23cd1a7a96ff6cdbfc641d41a3b1f848 100644
--- a/src/logic/Database.py
+++ b/src/logic/Database.py
@@ -1,7 +1,7 @@
 import sqlite3
 from datetime import datetime
 from enum import Enum
-from typing import Tuple
+from typing import Tuple, Dict
 
 from TheCodeLabs_BaseUtils import DefaultLogger
 
@@ -87,18 +87,18 @@ class Database:
                             deviceID, name,
                             fetch_type=FetchType.ONE)
 
-    def add_sensor(self, device: Tuple[int, str], name: str, sensorType: str, value: str):
-        LOGGER.debug(f'Inserting new sensor "{name}" for device "{device[1]}" '
+    def add_sensor(self, device: Dict[str, str], name: str, sensorType: str, value: str):
+        LOGGER.debug(f'Inserting new sensor "{name}" for device "{device["name"]}" '
                      f'(type: "{sensorType}", value: "{value}")')
         self.__query(f'INSERT INTO {self.TABLE_SENSOR}(name, device_id, type, value, timestamp ) '
                      f'VALUES(?, ?, ?, ?, ?)',
-                     name, device[0], sensorType, value, self.__get_current_datetime(),
+                     name, device['id'], sensorType, value, self.__get_current_datetime(),
                      fetch_type=FetchType.NONE)
 
-    def update_sensor(self, device: Tuple[int, str], name: str, sensorType: str, value: str):
-        LOGGER.debug(f'Updating sensor "{name}" for device "{device[1]}" '
+    def update_sensor(self, device: Dict[str, str], name: str, sensorType: str, value: str):
+        LOGGER.debug(f'Updating sensor "{name}" for device "{device["name"]}" '
                      f'(type: "{sensorType}", value: "{value}")')
         self.__query(f'UPDATE {self.TABLE_SENSOR} SET value = ?, timestamp = ? '
                      f'WHERE device_id = ? AND name = ?',
-                     value, self.__get_current_datetime(), device[0], name,
+                     value, self.__get_current_datetime(), device['id'], name,
                      fetch_type=FetchType.NONE)