diff --git a/full/Changes b/full/Changes
index 816abfd..cda6540 100644
--- a/full/Changes
+++ b/full/Changes
@@ -1,6 +1,8 @@
 # version 0.62.4
 24/01/2020
-   - Removed salt from config and updated config files.
+   - Removed salt from config and updated config files (margaretha)
+03/02/2020
+   - Added an admin API for clearing access token cache (margaretha)
    
 # version 0.62.3
 03/12/2019
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java b/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java
index 47cc265..dcbcafe 100644
--- a/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java
@@ -9,6 +9,7 @@
 import java.util.Set;
 
 import javax.persistence.NoResultException;
+import javax.servlet.ServletContext;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.oltu.oauth2.as.request.AbstractOAuthTokenRequest;
@@ -509,5 +510,23 @@
         return dtoList;
     }
 
-   
+    public String clearAccessTokenCache (String adminToken, String accessToken,
+            ServletContext context) throws KustvaktException {
+        if (adminToken != null && !adminToken.isEmpty()
+                && adminToken.equals(context.getInitParameter("adminToken"))) {
+            
+            if (accessToken == null) {
+                tokenDao.clearCache();
+                return "Cache has been cleared";
+            }
+            else {
+                tokenDao.removeCacheEntry(accessToken);
+                return "Access token has been removed from the cache";
+            }
+        }
+        else {
+            throw new KustvaktException(StatusCodes.INCORRECT_ADMIN_TOKEN,
+                    "Admin token is incorrect");
+        }
+    }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
index 6ba63fb..68f991c 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
@@ -3,6 +3,7 @@
 import java.time.ZonedDateTime;
 import java.util.List;
 
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.FormParam;
@@ -357,4 +358,21 @@
         }
 
     }
+    
+    @POST
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Path("token/clear")
+    public Response clearAccessTokenCache (
+            @FormParam("token") String adminToken,
+            @FormParam("access_token") String accessToken,
+            @Context ServletContext context) {
+        try {
+            String response = tokenService.clearAccessTokenCache(adminToken, accessToken,
+                    context);
+            return Response.ok(response).build();
+        }
+        catch (KustvaktException e) {
+            throw responseHandler.throwit(e);
+        }
+    }
 }
