diff --git a/ExpressAPI/src/config/Config.ts b/ExpressAPI/src/config/Config.ts
index e3a1b78e2926f988b8a6d61675ea78f570987bc3..ebbad6729d8b9c8c420a7455a42218cd28421a2c 100644
--- a/ExpressAPI/src/config/Config.ts
+++ b/ExpressAPI/src/config/Config.ts
@@ -21,6 +21,11 @@ class Config {
         }
     }; // { version: { CLIENT: CONDITION } }
 
+    public readonly dojoCLI: {
+        versionUpdatePeriodMs: number
+        repositoryId: number
+    };
+
     public readonly jwtConfig: {
         secret: string; expiresIn: number;
     };
@@ -64,6 +69,11 @@ class Config {
 
         this.requestClientValidation = JSON5.parse(process.env.REQUEST_CLIENT_VALIDATION || '{"version": {}}');
 
+        this.dojoCLI = {
+            versionUpdatePeriodMs: Number(process.env.DOJO_CLI_VERSION_UPDATE_PERIOD_MS || 3600),
+            repositoryId         : Number(process.env.DOJO_CLI_GITLAB_REPOSITORY_ID || 0)
+        };
+
         this.jwtConfig = {
             secret   : process.env.JWT_SECRET_KEY || '',
             expiresIn: Number(process.env.SESSION_TIMEOUT || 0)
diff --git a/ExpressAPI/src/express/API.ts b/ExpressAPI/src/express/API.ts
index dcc801cee1bbfd160e60d0f3d8f7f63e70e25acf..0d61b88e4f9d007c26b7d1ef13f98a4fa5ae3e85 100644
--- a/ExpressAPI/src/express/API.ts
+++ b/ExpressAPI/src/express/API.ts
@@ -16,6 +16,7 @@ import compression                    from 'compression';
 import ClientVersionCheckerMiddleware from '../middlewares/ClientVersionCheckerMiddleware';
 import swaggerUi                      from 'swagger-ui-express';
 import path                           from 'path';
+import DojoCliVersionHelper           from '../helpers/DojoCliVersionHelper';
 
 
 class API implements WorkerTask {
@@ -25,7 +26,7 @@ class API implements WorkerTask {
     constructor() {
         this.backend = express();
 
-        this.initSwagger();
+        this.initOpenAPI();
         this.initBaseMiddlewares();
 
         this.backend.use(ClientVersionCheckerMiddleware.register());
@@ -43,9 +44,14 @@ class API implements WorkerTask {
         this.backend.use(helmet()); //Help to secure express, https://helmetjs.github.io/
         this.backend.use(cors()); //Allow CORS requests
         this.backend.use(compression()); //Compress responses
+
+        this.backend.use(async (req, res, next) => {
+            res.header('dojocli-latest-version', await DojoCliVersionHelper.getLatestVersion());
+            next();
+        });
     }
 
-    private initSwagger() {
+    private initOpenAPI() {
         const options = {
             customSiteTitle: 'Dojo API',
             explorer       : false,
diff --git a/ExpressAPI/src/helpers/DojoCliVersionHelper.ts b/ExpressAPI/src/helpers/DojoCliVersionHelper.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a44e1ec54ed64170f491339b5d91f39423372ba6
--- /dev/null
+++ b/ExpressAPI/src/helpers/DojoCliVersionHelper.ts
@@ -0,0 +1,33 @@
+import Config        from '../config/Config';
+import GitlabRelease from '../shared/types/Gitlab/GitlabRelease';
+import GitlabManager from '../managers/GitlabManager';
+
+
+class DojoCliVersionHelper {
+    private latestUpdate: Date | undefined;
+    private latestVersion: string | undefined;
+
+    constructor() { }
+
+    private async updateVersion(): Promise<void> {
+        const releases: Array<GitlabRelease> = await GitlabManager.getRepositoryReleases(Config.dojoCLI.repositoryId);
+        for ( const release of releases ) {
+            if ( !isNaN(+release.tag_name.replace('.', '')) ) {
+                this.latestVersion = release.tag_name;
+                this.latestUpdate = new Date();
+                return;
+            }
+        }
+    }
+
+    public async getLatestVersion(): Promise<string> {
+        if ( !this.latestVersion || !this.latestUpdate || (new Date()).getTime() - this.latestUpdate.getTime() >= Config.dojoCLI.versionUpdatePeriodMs ) {
+            await this.updateVersion();
+        }
+
+        return this.latestVersion!;
+    }
+}
+
+
+export default new DojoCliVersionHelper();
\ No newline at end of file