diff --git a/docs/api.yml b/docs/api.yml
index e835c627acde04a78bdc50cfc3d775bc0b97c3f0..dbf8491e053e1597e6e932c34797154dae63b0b4 100644
--- a/docs/api.yml
+++ b/docs/api.yml
@@ -103,6 +103,34 @@ paths:
                 type: array
                 items:
                   $ref: '#/components/schemas/Sensor'
+  /device:
+    post:
+      tags:
+        - device
+      summary: Adds a new device. If a device with the provided name already exists an error response is returned.
+      operationId: addDevice
+      security:
+        - bearerAuth: []
+      requestBody:
+        description: Device to add
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/NewDevice'
+      responses:
+        '200':
+          description: success response
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/SuccessResponse'
+        default:
+          description: error response
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ErrorResponse'
 
   /sensors:
     get:
@@ -416,6 +444,15 @@ components:
           type: string
           example: "20.15"
 
+    NewDevice:
+      type: object
+      required:
+        - device
+      properties:
+        device:
+          type: string
+          example: "myDevice"
+
     SuccessResponse:
       required:
         - success
diff --git a/src/blueprints/Devices.py b/src/blueprints/Devices.py
index c2088ba31ad7a20f5424f2016f0bd668ffbe7cd1..4b84ea2e3d2e4e71851a5b7c9417ea94d6a33c2f 100644
--- a/src/blueprints/Devices.py
+++ b/src/blueprints/Devices.py
@@ -1,6 +1,8 @@
-from flask import Blueprint, jsonify
+from flask import Blueprint, jsonify, request
 
 from logic.AuthenticationWrapper import require_api_key
+from logic.Parameters import DeviceParameters
+from logic.RequestValidator import RequestValidator, ValidationError
 from logic.database.Database import Database
 
 
@@ -42,4 +44,23 @@ def construct_blueprint(settings):
 
         return jsonify({'success': True})
 
+    @devices.route('/device', methods=['POST'])
+    @require_api_key(password=settings['api']['key'])
+    def add_device():
+        try:
+            parameters = RequestValidator.validate(request, [DeviceParameters.DEVICE.value])
+            database = Database(settings['database']['databasePath'])
+
+            deviceName = parameters[DeviceParameters.DEVICE.value]
+            existingDevice = database.deviceAccess.get_device_by_name(deviceName)
+            if existingDevice:
+                return jsonify({'success': False,
+                                'msg': f'A device called "{deviceName}" already exists (ID: {existingDevice["id"]})'})
+
+            database.deviceAccess.add_device(deviceName)
+        except ValidationError as e:
+            return e.response, 400
+
+        return jsonify({'success': True})
+
     return devices
diff --git a/src/blueprints/Measurements.py b/src/blueprints/Measurements.py
index 536b8eef06d27ad068fc845a045ed6be2cd7ca0c..535c9db976a8b5f790966d42943179390c26c631 100644
--- a/src/blueprints/Measurements.py
+++ b/src/blueprints/Measurements.py
@@ -23,7 +23,7 @@ def construct_blueprint(settings):
 
     @measurements.route('/measurements', methods=['POST'])
     @require_api_key(password=settings['api']['key'])
-    def addMeasurement():
+    def add_measurement():
         try:
             parameters = RequestValidator.validate(request, DeviceParameters.get_values())
             database = Database(settings['database']['databasePath'])