Undocumented API Endpoints - Discovery Report

Collection of articles for working with Multitech devices in LoRaWAN networks.

Undocumented API Endpoints - Discovery Report

Date: December 17, 2025
Gateway: MTCAP3 (172.16.33.111)
Firmware: 7.4.0-BETA2-7-g7e2e653f
API Version: 7.2.0-86-g5ae2b66c

Summary

During live testing against an MTCAP3 gateway, 19 previously undocumented API endpoints were discovered. All endpoints are accessible via GET /api?fields=<endpoint> and support standard CRUD operations where applicable.

Newly Discovered Endpoints

1. autoReboot - Automatic Reboot Scheduler

Purpose: Configure automatic device reboots on a schedule

Example Response:

{
  "autoReboot": {
    "hour": 0,
    "minute": 0,
    "interval": 0,
    "mode": "DISABLED"
  }
}

Fields:

Use Cases:


2. backOffTimers - Cellular Retry Backoff Timers

Purpose: Configure exponential backoff timers for cellular connection retries

Example Response:

{
  "backOffTimers": {
    "enabled": true,
    "timers": [
      {
        "carrierName": "AT&T",
        "data": [60, 60, 60, 60, 600, 900, 1800, 3600],
        "dataReset": [60, 60, 60, 60, 600, 900, 1800, 3600],
        "modemReset": [300, 300, 300, 300, 600, 1800, 3600],
        "sms": [30, 30, 30, 30, 900, 900, 1800, 3600],
        "readOnly": true
      }
    ]
  }
}

Fields:

Use Cases:


3. bootloader - Bootloader Configuration

Purpose: Configure bootloader console access and security

Example Response:

{
  "bootloader": {
    "console": {
      "access": true,
      "silent": false
    },
    "lock": {
      "enabled": false,
      "supported": false
    }
  }
}

Fields:

Use Cases:


4. brand - White-Label Branding Configuration

Purpose: Configure custom branding for OEM/white-label deployments

Example Response:

{
  "brand": {
    "__v": 2,
    "companyName": "",
    "address1": "",
    "address2": "",
    "city": "",
    "state": "",
    "country": "",
    "zipCode": "",
    "phoneNumbers": [],
    "fax": "",
    "website": "",
    "logo": "",
    "icon": "",
    "image": "",
    "buttonColor": "",
    "buttonFontColor": "",
    "buttonHighlightColor": "",
    "buttonHighlightFontColor": "",
    "showOnDashboard": false,
    "links": []
  }
}

Fields:

Use Cases:


5. cellTimeSync - Cellular Time Synchronization

Purpose: Synchronize device time from cellular network

Example Response:

{
  "cellTimeSync": {
    "enabled": false,
    "pollingTime": 120
  }
}

Fields:

Use Cases:


6. ddns - Dynamic DNS Configuration

Purpose: Configure Dynamic DNS for devices with changing IP addresses

Example Response:

{
  "ddns": {
    "enabled": false,
    "mode": "PROVIDER",
    "server": "dyndns.org",
    "domain": "",
    "authentication": {
      "username": "",
      "password": ""
    },
    "updateInterval": 5,
    "checkIpPeriod": 15,
    "checkIp": {
      "enabled": true,
      "mode": "DEFAULT",
      "custom": {
        "server": "checkip.dyndns.org",
        "port": 80,
        "path": "/",
        "ssl": false
      }
    },
    "custom": {
      "server": "",
      "port": 443,
      "path": "/nic/update?hostname=%h",
      "ssl": true
    }
  }
}

Fields:

Use Cases:


7. ipPassthrough - IP Passthrough Configuration

Purpose: Configure IP passthrough mode (bridge mode for cellular/WAN IP)

Example Response:

{
  "ipPassthrough": {
    "ipMode": "IPv4",
    "ip": "192.168.2.1",
    "mask": "255.255.255.0",
    "gateway": "",
    "publicIpMask": "255.255.255.255",
    "ipv6": {
      "ip": "",
      "prefixlen": ""
    }
  }
}

Fields:

Use Cases:


Purpose: Configure LLDP for network device discovery

Example Response:

{
  "lldp": {
    "enabled": false,
    "sysName": "",
    "sysDescr": "",
    "txInterval": 30,
    "txHold": 4
  }
}

Fields:

Use Cases:


9. mdns - Multicast DNS (mDNS/Bonjour)

Purpose: Configure mDNS for local network service discovery

Example Response:

{
  "mdns": {
    "enabled": false,
    "allowInterfaces": []
  }
}

Fields:

Use Cases:


10. radius - RADIUS Authentication

Purpose: Configure RADIUS server for centralized authentication

Example Response:

{
  "radius": {
    "authEnabled": false,
    "authPort": 1812,
    "authType": "PAP",
    "acctEnabled": false,
    "acctPort": 1813,
    "host": "",
    "secondaryHost": "",
    "secondaryAuthPort": 1812,
    "secondaryAcctPort": 1813,
    "secret": "",
    "timeout": 2,
    "retries": 3,
    "checkServer": true,
    "anonymousEnabled": false,
    "anonymousId": "anonymous"
  }
}

Fields:

Use Cases:


11. remoteAccess - Remote Access Security

Purpose: Configure remote access security settings (HTTP, HTTPS, SSH, SNMP)

Example Response:

{
  "remoteAccess": {
    "__v": 1,
    "http": {
      "enabled": true,
      "port": 80,
      "lan": true,
      "wan": true,
      "redirectToHttps": true
    },
    "https": {
      "enabled": true,
      "port": 443,
      "lan": true,
      "wan": true
    },
    "ssh": {
      "enabled": true,
      "port": 22,
      "lan": true,
      "wan": true,
      "passwordAuthentication": true,
      "publicKeyAuthentication": true,
      "idleTimeoutSeconds": 3600,
      "userLockout": {
        "enabled": true,
        "failAttempts": 3,
        "lockoutSeconds": 300
      }
    },
    "snmp": {
      "lan": true,
      "wan": false
    },
    "icmp": {
      "enabled": true,
      "respondToLan": true,
      "respondToWan": false
    },
    "modbusSlave": {
      "enabled": false,
      "port": 1502,
      "lan": true
    },
    "reverseSsh": {
      "enabled": false,
      "serverAddress": "",
      "serverPort": 22,
      "remotePort": 2222,
      "username": "",
      "password": "",
      "privateKey": "",
      "authMode": "PASSWORD"
    },
    "bruteForcePrevention": {
      "enabled": true,
      "failAttempts": 3,
      "lockoutSeconds": 300
    },
    "dosAttackPrevention": {
      "enabled": true,
      "limitPerMinute": 60,
      "limitBurst": 100
    },
    "pingLimit": {
      "enabled": true,
      "limitPerSecond": 10,
      "limitBurst": 30
    },
    "timeoutSeconds": 3000,
    "privateWan": false
  }
}

Fields:

Use Cases:


12. remoteMgmt - Remote Management (Cloud)

Purpose: Configure Multi-Tech cloud management integration

Example Response:

{
  "remoteMgmt": {
    "enabled": true,
    "serverName": "api.multitech.com",
    "checkInIntervals": {
      "enabled": true,
      "interval": 14400
    },
    "checkInDayTime": {
      "enabled": false,
      "mode": "DAILY",
      "dailyTime": "",
      "customTime": "",
      "customDays": []
    },
    "allowFirmwareUpgrade": true,
    "allowRadioFirmwareUpgrade": true,
    "allowConfigurationUpgrade": true,
    "allowConfigurationUpload": true
  }
}

Fields:

Use Cases:


13. resetButton - Physical Reset Button Configuration

Purpose: Configure physical reset button behavior

Example Response:

{
  "resetButton": {
    "enabled": true,
    "resetToFactoryDefault": true,
    "resetToUserDefinedDefault": false
  }
}

Fields:

Use Cases:


14. smtp - SMTP Email Configuration

Purpose: Configure SMTP for email notifications

Example Response:

{
  "smtp": {
    "enabled": false,
    "serverAddress": "",
    "serverPort": 465,
    "sourceEmailAddress": "",
    "authEnabled": false,
    "username": "",
    "password": "",
    "tls": {
      "enabled": true,
      "startTls": false,
      "certCheck": false
    },
    "maxNumberOfEntries": 50
  }
}

Fields:

Use Cases:


15. sntp - SNTP/NTP Time Synchronization

Purpose: Configure NTP time synchronization

Example Response:

{
  "sntp": {
    "enabled": true,
    "servers": ["time.nist.gov"],
    "pool": {
      "enabled": true,
      "server": "north-america.pool.ntp.org"
    },
    "minpoll": 6,
    "maxpoll": 10,
    "timeZone": "UTC",
    "timeZones": ["Africa/Abidjan", "America/New_York", ...]
  }
}

Fields:

Use Cases:


16. waninfo - WAN Interface Status

Purpose: Get real-time WAN interface status (read-only)

Example Response:

{
  "waninfo": {
    "wans": [
      {
        "name": "eth0",
        "interface": "eth0",
        "type": "ETHERNET",
        "enabled": true,
        "available": true,
        "current": true,
        "ip": "172.16.33.111",
        "subnet": "255.255.0.0",
        "gateway": ""
      },
      {
        "name": "ppp0",
        "interface": "ppp0",
        "type": "CELLULAR",
        "enabled": true,
        "available": true,
        "current": false,
        "ip": "",
        "subnet": "",
        "gateway": ""
      }
    ]
  }
}

Fields:

Use Cases:


17. wanmngr - WAN Manager (Failover/Load Balancing)

Purpose: Configure WAN failover and load balancing

Example Response:

{
  "wanmngr": {
    "mode": "FAILOVER",
    "wans": [
      {
        "interface": "eth0",
        "priority": 1,
        "weight": 1,
        "monitor": {
          "mode": "ACTIVE",
          "checkInterval": 60,
          "active": {
            "type": "ICMP",
            "hostname": "www.google.com",
            "icmpCount": 5,
            "tcpPort": 80
          }
        }
      }
    ]
  }
}

Fields:

Use Cases:


18. ipPipes - IP Pipes (Port Forwarding/Tunneling)

Purpose: Configure IP pipe tunnels for advanced routing

Example Response:

{
  "ipPipes": []
}

Fields:

Use Cases:


19. notificationEventGroup - Event Notification Groups

Purpose: Configure event notifications via email, SMS, and SNMP

Example Response:

{
  "notificationEventGroup": {
    "groups": [],
    "eventsGroups": [
      {
        "eventGroup": "Authentication",
        "enabled": false,
        "email": false,
        "sms": false,
        "snmp": false,
        "notifyGroup": ""
      },
      {
        "eventGroup": "Chassis",
        "enabled": false,
        "email": false,
        "sms": false,
        "snmp": false,
        "notifyGroup": ""
      },
      {
        "eventGroup": "Configuration",
        "enabled": false,
        "email": false,
        "sms": false,
        "snmp": false,
        "notifyGroup": ""
      },
      {
        "eventGroup": "Link",
        "enabled": false,
        "email": false,
        "sms": false,
        "snmp": false,
        "notifyGroup": ""
      },
      {
        "eventGroup": "Security",
        "enabled": false,
        "email": false,
        "sms": false,
        "snmp": false,
        "notifyGroup": ""
      },
      {
        "eventGroup": "Wan",
        "enabled": false,
        "email": false,
        "sms": false,
        "snmp": false,
        "notifyGroup": ""
      }
    ]
  }
}

Fields:

Use Cases:


20. customAppsConfig - Custom Applications Configuration

Purpose: Configure custom application installation settings

Example Response:

{
  "customAppsConfig": {
    "enabled": true,
    "allowed": true,
    "backupOnInstall": true
  }
}

Fields:

Use Cases:


Additional Endpoints to Investigate

The following endpoints from the manifest were not fully tested but may contain additional functionality:

Schema Availability

All discovered endpoints have corresponding JSON schemas in:

Testing Notes

Recommendations

  1. Update API Documentation: Add all 19+ endpoints to the main API documentation
  2. Schema Validation: Review JSON schemas for complete field documentation
  3. Permission Testing: Test each endpoint with different user roles (admin/user/guest)
  4. CRUD Testing: Test PUT/POST/DELETE operations where applicable
  5. Device Compatibility: Test on other device models (MTCDT, Conduit, etc.)
  6. Command Endpoints: Check for associated command endpoints (e.g., /api/command/...)

Next Steps

  1. Generate OpenAPI specs for new endpoints
  2. Create Postman collection examples
  3. Document permission requirements per endpoint
  4. Add to quick reference guide
  5. Test modification operations (PUT/POST)
  6. Verify on multiple device models