diff --git a/lib/apiserver/routers/smstools.js b/lib/apiserver/routers/smstools.js
index 1884bf6..fe8a60a 100644
--- a/lib/apiserver/routers/smstools.js
+++ b/lib/apiserver/routers/smstools.js
@@ -44,7 +44,19 @@ function pageLog(req, res) {
     });
 }
 
+async function pageSpoolCount(req, res) {
+    const outgoingCount = await smstoolsUtil.fileCountOnDir('/var/spool/sms/outgoing');
+    const checkedCount = await smstoolsUtil.fileCountOnDir('/var/spool/sms/checked');
+
+    res.json({
+        outgoingCount,
+        checkedCount,
+        totalQueueCount: Number(outgoingCount) + Number(checkedCount),
+    });
+}
+
 router.get('/status', pageStatus);
 router.get('/status/raw', pageStatusRaw);
 router.get('/restart', pageRestart);
 router.get('/log', pageLog);
+router.get('/spool-count', pageSpoolCount);
diff --git a/lib/smstools-util.js b/lib/smstools-util.js
index 1c01cf9..aaf5adf 100644
--- a/lib/smstools-util.js
+++ b/lib/smstools-util.js
@@ -1,3 +1,4 @@
+const fs = require('fs');
 const childProcess = require('child_process');
 const config = require('komodo-sdk/config');
 
@@ -11,3 +12,12 @@ exports.restart = () => new Promise((resolve) => {
         });
     });
 });
+
+exports.fileCountOnDir = async (dirname) => {
+    try {
+        const files = fs.promises.readdir(dirname);
+        return files.filter((item) => item.search(/LOCK$/) >= 0).length;
+    } catch (e) {
+        return null;
+    }
+};