diff --git a/lib/document_handler.js b/lib/document_handler.js
index 68985ec..376aeb1 100644
--- a/lib/document_handler.js
+++ b/lib/document_handler.js
@@ -52,6 +52,7 @@ DocumentHandler.prototype.handlePost = function (request, response) {
   var _this = this;
   var buffer = '';
   var cancelled = false;
+  var ct = request.headers['content-type'];
 
   // What to do when done
   var onSuccess = function () {
@@ -65,6 +66,19 @@ DocumentHandler.prototype.handlePost = function (request, response) {
       );
       return;
     }
+    
+    //added support for json data
+    if (ct && ct.split(';')[0] === 'application/json') {
+        try {
+            let json = JSON.parse(buffer);
+            buffer = json.data;
+        } catch(e) {
+          winston.verbose('error adding document');
+          response.writeHead(500, { 'content-type': 'application/json' });
+          response.end(JSON.stringify({ message: 'invalid JSON received.' }));
+        }
+    }
+
     // And then save if we should
     _this.chooseKey(function (key) {
       _this.store.set(key, buffer, function (res) {
@@ -83,7 +97,6 @@ DocumentHandler.prototype.handlePost = function (request, response) {
   };
 
   // If we should, parse a form to grab the data
-  var ct = request.headers['content-type'];
   if (ct && ct.split(';')[0] === 'multipart/form-data') {
     var busboy = new Busboy({ headers: request.headers });
     busboy.on('field', function (fieldname, val) {