diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d6bf7dc89040b630c18ac3b09a401a717d03025b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,125 @@
+# Dokumentation
+## Einleitung
+Das Boarder-Gateway stellt zwei CoAP Ressourcen zur Verfügung. Die Ressource **/register** wird dabei von CoAP Clients verwendet, um sich am BG zu registrieren.
+Im einfachsten Fall wählt der CoAP Client selbst eine ID, um den Kommunikationsoverhead als auch den Programmieraufwand auf clientseitig zu minimieren. Hierbei ist
+selbstverständlich wichtig, dass die verschiedenen CoAP Client Gruppen miteinander kommunizieren, um eine doppelte Belegung der Registrations-ID auszuschließen.
+Bei der Registrierung eines CoAP Clients muss neben der ID eine Liste von Parameternamen mitgesendet werden, bspw. *["Temperatur vorne", "Temperatur hinten", "Luftfeuchtigkeit"]*. 
+    
+  
+Nach der Registrierung kann ein CoAP Client die Ressource **/data** dafür verwenden, um regelmäßig Werte den entsprechend registrierten Parameter zuzuweisen. Dazu muss
+der CoAP Client ausschließlich seine ID angeben und die Werte in der Reihenfolge übersenden, in welcher die Parameter registriert wurden.
+  
+  
+Alle Ressourcen erwarten als Payload JSON formatierte Strings. 
+
+## Schnittstelle 
+### Registrierung
+```
+coap://<adresse>:5683/register
+```
+
+#### POST
+##### Schema
+```
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "type": "object",
+  "title": "Register Schema",
+  "description": "Die Ressource /register erwartet ein JSON via POST im folgenden Format",
+  "properties": {
+    "name": {
+      "type": "string",
+      "title": "Name des Services/Geräts",
+      "description": "Dies ist der Name des entsprechenden Dienstes oder Geräts, der im Dashboard angezeigt wird."
+    },
+    "id": {
+      "type": "integer",
+      "title": "Registrierungs ID",
+      "description": "Unter dieser ID wird das Gerät/Dienst registiert. Entsprechend später gesendete Werte, die im Dashboard angezeigt werden sollen, müssen sich auf diese ID beziehen."
+    },
+    "parameter": {
+      "type": "array",
+      "title": "Parameter Beschreibung",
+      "description": "In diesem Array werden die später gesendeten Werte beschrieben. Die Reihenfolge bei der Registrierung muss mit der Reihenfolge der gesendeten Werte übereinstimmen",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": [
+    "name",
+    "id",
+    "parameter"
+  ]
+}
+```
+##### Beispiel
+```
+{ 
+  "name": "Smart Environment", 
+  "id" : 1, 
+  "parameter" : [
+     "Temp-Sensor 1", 
+     "Temp-Sensor2", 
+     "Irgendein-Anderer-Wert"
+  ]
+}
+```
+##### Response Codes
+```
+2.01 = Registrierung erfolgreich
+4.00 = Anfrage konnte nicht verarbeitet werden (JSON fehlerhaft?)
+4.04 = Ressource nicht bekannt
+4.05 = Methode nicht erlaubt
+5.00 = Server- / Datenbankfehler
+```
+
+### Datenübertragung
+```
+coap://<adresse>:5683/data
+```
+#### PUT
+##### Schema
+```
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "type": "object",
+  "title": "Data schema.",
+  "description": "Schema zur Datenübertragung, z.B. von Messwerten",
+  "properties": {
+    "id": {
+      "type": "integer",
+      "title": "Registrierungs ID",
+      "description": "ID des registrierten Geräts/Dienst, für den Daten übertragen werden sollen."
+    },
+    "values": {
+      "type": "array",
+      "title": "Parameterwerte",
+      "description": "Parameterwerte in derselben Reihenfolge, wie die Parameter registriert wurden.",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": [
+    "id",
+    "values"
+  ]
+}
+```
+##### Beispiel
+```
+{ 
+  "id" : "1", 
+  "values" : ["21°C","37°C","4.13 km/h"]
+}
+```
+##### Response Codes
+```
+2.04 = Werte gespeichert
+4.00 = Anfrage konnte nicht verarbeitet werden (JSON fehlerhaft?)
+4.01 = ID nicht registriert
+4.04 = Ressource nicht bekannt
+4.05 = Methode nicht erlaubt
+5.00 = Server- / Datenbankfehler
+```
\ No newline at end of file