diff --git a/index.js b/index.js
index 351bee3..71639c0 100644
--- a/index.js
+++ b/index.js
@@ -4,4 +4,5 @@ process.chdir(__dirname);
 
 require('fs').writeFileSync('pid.txt', process.pid);
 
+require('./lib/http-command-server');
 require('./lib/modem');
diff --git a/lib/http-command-server/index.js b/lib/http-command-server/index.js
new file mode 100644
index 0000000..fd95fc2
--- /dev/null
+++ b/lib/http-command-server/index.js
@@ -0,0 +1,36 @@
+'use strict';
+
+const express = require('express');
+
+const config = require('komodo-sdk/config');
+const logger = require('komodo-sdk/logger');
+
+const routerSMS = require('./router-sms');
+
+const app = express();
+
+function middlewareCustomLog(req, res, next) {
+    logger.info('Incoming request on HTTP command server', { ip: req.ip, url: req.url });
+    next();
+}
+
+function middlewareCheckApikey(req, res, next) {
+    if (!req.query.apikey || (req.query.apikey !== config.http_command_server.apikey)) {
+        res.json({
+            status: 'NOT-OK',
+            error: 'INVALID_APIKEY',
+            message: 'Invalid apikey',
+        });
+    } else {
+        next();
+    }
+}
+
+app.use(middlewareCustomLog);
+app.use(middlewareCheckApikey);
+app.use('/sms', routerSMS);
+
+
+app.listen(config.http_command_server.listen_port, () => {
+    logger.info(`HTTP command server listeing on port ${config.http_command_server.listen_port}`);
+});
diff --git a/lib/http-command-server/router-sms.js b/lib/http-command-server/router-sms.js
new file mode 100644
index 0000000..00e8c32
--- /dev/null
+++ b/lib/http-command-server/router-sms.js
@@ -0,0 +1,28 @@
+'use strict';
+
+const express = require('express');
+
+const modem = require('../modem');
+
+const router = express.Router();
+module.exports = router;
+
+function handlerIndex(req, res) {
+    if (!req.query || !req.query.number || !req.query.msg) {
+        res.json({
+            status: 'NOT-OK',
+            error: 'INVALID-PARAMETER',
+            message: 'Invalid parameter. Missing number or msg parameter.',
+        });
+        return;
+    }
+
+    res.json({
+        status: 'OK',
+        error: false,
+        message: 'Message queued.',
+    });
+    modem.sendSMS(req.query.number, req.query.msg);
+}
+
+router.get('/', handlerIndex);
diff --git a/package.json b/package.json
index 39d6ceb..0cb9c7f 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
   "dependencies": {
     "@serialport/parser-delimiter": "^2.0.2",
     "@serialport/parser-readline": "^2.0.2",
+    "express": "^4.17.1",
     "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git",
     "locks": "^0.2.2",
     "moment": "^2.24.0",