diff --git a/docs/source/api/wifi.rst b/docs/source/api/wifi.rst
index 0dbfba2e683..eb32b4af53e 100644
--- a/docs/source/api/wifi.rst
+++ b/docs/source/api/wifi.rst
@@ -222,6 +222,15 @@ Get the softAP subnet CIDR.
 
     uint8_t softAPSubnetCIDR();
 
+softAPSubnetMask
+****************
+
+Get the softAP subnet mask.
+
+.. code-block:: arduino
+
+    IPAddress softAPSubnetMask();
+
 softAPenableIpV6
 ****************
 
diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp
index 0eb0935345e..12f681c9e75 100644
--- a/libraries/WiFi/src/WiFiAP.cpp
+++ b/libraries/WiFi/src/WiFiAP.cpp
@@ -304,20 +304,29 @@ IPAddress WiFiAPClass::softAPNetworkID()
 }
 
 /**
- * Get the softAP subnet CIDR.
- * @return uint8_t softAP subnetCIDR
+ * Get the softAP subnet mask.
+ * @return IPAddress subnetMask
  */
-uint8_t WiFiAPClass::softAPSubnetCIDR()
+IPAddress WiFiAPClass::softAPSubnetMask()
 {
-	esp_netif_ip_info_t ip;
+    esp_netif_ip_info_t ip;
     if(WiFiGenericClass::getMode() == WIFI_MODE_NULL){
         return IPAddress();
     }
     if(esp_netif_get_ip_info(get_esp_interface_netif(ESP_IF_WIFI_AP), &ip) != ESP_OK){
-    	log_e("Netif Get IP Failed!");
-    	return IPAddress();
+        log_e("Netif Get IP Failed!");
+        return IPAddress();
     }
-    return WiFiGenericClass::calculateSubnetCIDR(IPAddress(ip.netmask.addr));
+    return IPAddress(ip.netmask.addr);
+}
+
+/**
+ * Get the softAP subnet CIDR.
+ * @return uint8_t softAP subnetCIDR
+ */
+uint8_t WiFiAPClass::softAPSubnetCIDR()
+{
+    return WiFiGenericClass::calculateSubnetCIDR(softAPSubnetMask());
 }
 
 /**
diff --git a/libraries/WiFi/src/WiFiAP.h b/libraries/WiFi/src/WiFiAP.h
index 7ac03034b4c..13dad2f69cc 100644
--- a/libraries/WiFi/src/WiFiAP.h
+++ b/libraries/WiFi/src/WiFiAP.h
@@ -51,6 +51,7 @@ class WiFiAPClass
 
     IPAddress softAPBroadcastIP();
     IPAddress softAPNetworkID();
+    IPAddress softAPSubnetMask();
     uint8_t softAPSubnetCIDR();
 
     bool softAPenableIpV6();