diff --git a/pom.xml b/pom.xml
index 324ed29fd331b76639d29f5bf5275dd1b464a7eb..c5f359c4464b11cfa4881eb0c3a34f6824016120 100644
--- a/pom.xml
+++ b/pom.xml
@@ -293,6 +293,23 @@
             <version>${scala.release.version}</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-api</artifactId>
+            <version>0.10.5</version>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-impl</artifactId>
+            <version>0.10.5</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-jackson</artifactId>
+            <version>0.10.5</version>
+            <scope>runtime</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/src/main/java/eu/hbp/mip/controllers/JWTApi.java b/src/main/java/eu/hbp/mip/controllers/JWTApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..fa27e5b381c670d08cc8326a31854fa9cb235a36
--- /dev/null
+++ b/src/main/java/eu/hbp/mip/controllers/JWTApi.java
@@ -0,0 +1,56 @@
+package eu.hbp.mip.controllers;
+
+import static org.springframework.http.MediaType.TEXT_PLAIN_VALUE;
+import java.security.Key;
+import java.util.Date;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.bind.DatatypeConverter;
+import eu.hbp.mip.model.UserInfo;
+import org.slf4j.Logger;
+import eu.hbp.mip.model.User;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import io.jsonwebtoken.*;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@RestController
+@RequestMapping(value = "/jwt", produces = { TEXT_PLAIN_VALUE })
+@Api(value = "/jwt", description = "the jwt API")
+public class JWTApi {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(JWTApi.class);
+
+    @Autowired
+    private UserInfo userInfo;
+
+    @ApiOperation(value = "Create a JSON Web Token", response = String.class)
+    @RequestMapping(method = RequestMethod.POST)
+    public ResponseEntity<String> createJWT() {
+
+        LOGGER.info("Create a JSON Web Token");
+
+        SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
+        String apiKey = "6v2oxpJMzU14U-dqVireln5AUKTtx5fBPSEgaBZiI983d98cfa6";
+        byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary(apiKey);
+        Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());
+
+        long nowMillis = System.currentTimeMillis();
+        Date now = new Date(nowMillis);
+
+        User user = userInfo.getUser();
+
+        // Set the JWT Claims
+        JwtBuilder builder = Jwts.builder().setIssuedAt(now)
+                .setIssuer("mip.humanbrainproject.eu").setSubject(user.getEmail()).signWith(signatureAlgorithm, signingKey);
+
+        long expMillis = nowMillis + 86400 * 24;
+        Date exp = new Date(expMillis);
+        builder.setExpiration(exp);
+
+        return ResponseEntity.status(HttpStatus.CREATED).body(builder.compact());
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/eu/hbp/mip/model/UserInfo.java b/src/main/java/eu/hbp/mip/model/UserInfo.java
index f4671b634d152244ed79976ffe2a170b9130492e..293ce9534cf78c0f27b5f742ca924540072e2fea 100644
--- a/src/main/java/eu/hbp/mip/model/UserInfo.java
+++ b/src/main/java/eu/hbp/mip/model/UserInfo.java
@@ -52,6 +52,7 @@ public class UserInfo {
                 user = new User();
                 user.setUsername("anonymous");
                 user.setFullname("anonymous");
+                user.setEmail("anonymous@anonymous.com");
                 user.setPicture("images/users/default_user.png");
             } else {
                 user = new User(getUserInfos());