User Tools

Site Tools


api:networkmanagement:device:update

API : Network Device Update

Introduction

This request will update a network device on a given customer.

A successful update queues a provisioning job that pushes the changes to the device, so the returned device is in state PROVISIONING until the job completes.

Request

URL https://api.telecomx.dk/network/device/DEVICE_ID
Method POST
Access level MANAGER or OWNER if user belongs to the customer.
RESELLER if customer belongs to the reseller or a sub reseller.
ADMIN.
The customer must have the NETWORK_MANAGEMENT feature.
Param DEVICE_ID ID of network device
Property Type Description
Body name String Name of device - max 64 characters.
notes String Free text note field - max 4096 characters.
wifi Object WiFi settings - set to null if not used.
wifi.enabled Boolean True if wifi is enabled on 2.4GHz.
wifi.ssid String SSID of the 2.4GHz network - 1-32 characters, null if unused.
wifi.password String Password of the 2.4GHz network - 8-63 characters, null if unused.
wifi.enabled5G Boolean True if wifi is enabled on 5GHz.
wifi.ssid5G String SSID of the 5GHz network - 1-32 characters, null if unused.
wifi.password5G String Password of the 5GHz network - 8-63 characters, null if unused.
wifi.enabled6G Boolean True if wifi is enabled on 6GHz.
wifi.ssid6G String SSID of the 6GHz network - 1-32 characters, null if unused.
wifi.password6G String Password of the 6GHz network - 8-63 characters, null if unused.
wifi.bandsteering Boolean True to enable bandsteering (all bands have same SSID and clients will move freely between bands).
dhcp Object DHCP settings - set to null if not used.
dhcp.enable Boolean True to enable DHCP.
dhcp.ipPoolStart String First IP address to assign to DHCP clients. Must be a usable host address within the device's LAN subnet, and not after ipPoolEnd.
dhcp.ipPoolEnd String Last IP address to assign to DHCP clients. Must be a usable host address within the device's LAN subnet.
dhcp.leaseTime Number Number of minutes DHCP leases last - 1 to 2880.
dhcp.primaryDnsServer String IP address of DNS server clients shall use.
dhcp.reservedClients[] Array List of DHCP clients with reservations.
dhcp.reservedClients[].mac String MAC address of the client.
dhcp.reservedClients[].ip String IP address to assign to the client.
dhcp.reservedClients[].enable Boolean True if reservation is active.
dhcp.reservedClients[].id Number Optional id of the reservation, as assigned by the device.

Only properties to update needs to be provided.

Query examples

{
  "name": "My Primary Router",
  "wifi": {
    "ssid": "SkyNet",
    "password": "1NT3RN3T!"
  }
}

Response

Property Type Description
_id Id Unique id of the device.
state String Which state the device is in: ACTIVE, PROVISIONING, DELETING. A successful update leaves the device in PROVISIONING.
name String Name of device
model Id Id of the network device model
modelType String Model type
modelBrand String Brand name
modelDescription String Description of model
modelPicture Id Id of picture of the device model, on the image servers.
customer Id Customer the device belongs to
macAddress String MAC address
serialNumber String Serial number
mvnoAccount Id MVNO account that it is linked to. Used when the router is uplinked through a SIM-card.
activeSim String Number of the active SIM card in the device.
jobs Number Number of provisioning jobs currently in progress.
notes String Free text note field.
createdAt Date When the device was created.
wifi Object WiFi settings - set to null if not used.
wifi.enabled Boolean True if wifi is enabled on 2.4GHz.
wifi.ssid String SSID of the 2.4GHz network.
wifi.password String Password of the 2.4GHz network.
wifi.enabled5G Boolean True if wifi is enabled on 5GHz.
wifi.ssid5G String SSID of the 5GHz network.
wifi.password5G String Password of the 5GHz network.
wifi.enabled6G Boolean True if wifi is enabled on 6GHz.
wifi.ssid6G String SSID of the 6GHz network.
wifi.password6G String Password of the 6GHz network.
wifi.bandsteering Boolean True to enable bandsteering (all bands have same SSID and clients will move freely between bands.
dhcp Object DHCP settings - set to null if not used.
dhcp.enable Boolean True to enable DHCP.
dhcp.ipPoolStart String First IP address to assign to DHCP clients.
dhcp.ipPoolEnd String Last IP address to assign to DHCP clients.
dhcp.leaseTime Number Number of minutes DHCP leases last.
dhcp.primaryDnsServer String IP address of DNS server clients shall use.
dhcp.reservedClients[] Array List of DHCP clients with reservations.
dhcp.reservedClients[].mac String MAC address of the client.
dhcp.reservedClients[].ip String IP address to assign to the client.
dhcp.reservedClients[].enable Boolean True if reservation is active.
dhcp.reservedClients[].id Number Optional id of the reservation, as assigned by the device.
status Object Status info (read only)
status.provisioned Boolean True if the device is provisioned.
status.lastComm Date Timestamp of the last time this device was communicated with, either directly or through a third-party service
status.online Boolean True if the device is online.
status.lanIp String LAN IP address.
status.subnetMask String Subnet mask.
status.gateway String Default gateway IP address.
status.wanIp String WAN IP address.
status.publicIp String Public IP address (may differ from WAN).
status.upTime Number Number of seconds the device has been running.
status.dns String IP address of primary DNS server.
status.dns2 String IP address of secondary DNS server.
status.ipv6 String IPv6 address, if available.
status.ipv6Dns String IPv6 primary DNS server.
status.ipv6Dns2 String Ipv6 secondary DNS server.
status.simStatus String SIM status (mobile router): 1 = ready, 2 = pin_verified, 3 = pin_lock, 4 = puk_lock, 5 = blocked, 6 = no_sim, 7 = unknown
status.networkType String Type of network connection (mobile router only): 1 = none, 2 = gsm, 4 = wcdma, 8 = lte, 16 = lte_plus, 32 = nr
status.signalStrength Number 4G signal strength (mobile router only) - 0-100
status.ssSignalStrength Number 5G signal strength (mobile router only) - 0-100
status.uplinkRate Number Uplink speed in Kbps.
status.downlinkRate Number Downlink speed in Kbps.
status.connectionTime Number Number of seconds device has been connected to the mobile network (mobile router only).
status.provisionError Object Latest permanent provisioning-job failure. Only present after a job has permanently failed; cleared when a later CREATE or UPDATE job succeeds.
status.provisionError.message String Human-readable error message from the failed job.
status.provisionError.action String The job that failed: CREATE, UPDATE, DELETE, REBOOT_DEVICE.
status.provisionError.errorCode Number Error code from the device vendor's cloud, when available. May be null or absent.
status.provisionError.at Date When the job permanently failed.

Note that properties holding no value may be omitted from the object.

Example

{
  "_id": "12345678901234567890ABCD",
  "state": "PROVISIONING",
  "name": "My Primary Router",
  "model": "12345678901234567890AAAA",
  "modelType": "ROUTER",
  "modelBrand": "TP-LINK",
  "modelDescription": "5G router with 2.4/5GHz wifi and 3 ethernet ports",
  "modelPicture": "12345678901234567890BBBB",
  "customer": "12345678901234567890CCCC",
  "macAddress": "123456789012",
  "serialNumber": "484T563TYEHFCU38HCNB4",
  "mvnoAccount": "12345678901234567890DDDD",
  "jobs": 1,
  "notes": "Note about device",
  "createdAt": "2026-08-05T12:00:00.000Z",
  "wifi": {
    "enabled": true,
    "ssid": "SkyNet",
    "password": "1NT3RN3T!",
    "enabled5G": true,
    "ssid5G": "Need4Speed",
    "password5G": "SarahConner",
    "enabled6G": false,
    "ssid6G": null,
    "password6G": null,
    "bandsteering": false
  },
  "dhcp": {
    "enable": true,
    "ipPoolStart": "192.168.0.100",
    "ipPoolEnd": "192.168.0.200",
    "leaseTime": 1440,
    "primaryDnsServer": "8.8.8.8",
    "reservedClients": [
      {
        "mac": "123456789013",
        "ip": "192.168.0.10",
        "enable": true,
        "id": 1
      }
    ]
  },
  "status": {
    "provisioned": true,
    "lastComm": "2025-01-01T00:00:00.000Z",
    "online": true,
    "lanIp": "192.168.0.1",
    "subnetMask": "255.255.255.0",
    "gateway": "100.64.0.1",
    "wanIp": "100.64.0.123",
    "publicIp": "203.0.113.232",
    "upTime": 123456,
    "dns": "8.8.8.8",
    "dns2": "1.1.1.1",
    "ipv6": "",
    "ipv6Dns": "",
    "ipv6Dns2": "",
    "simStatus": "1",
    "networkType": "32",
    "signalStrength": 0,
    "ssSignalStrength": 50,
    "uplinkRate": 1234,
    "downlinkRate": 5432,
    "connectionTime": 1234567
  }
}

Errors

Error code Message Description
400 dhcp.ipPool IP pool addresses must be valid IPv4 addresses, the start must not be after the end, and both must be usable host addresses within the device's LAN subnet.
400 dhcp.leaseTime Lease time must be between 1 and 2880 minutes.
403 access_denied Insufficient access level
404 not_found Network device not found
404 <field> A required field is missing after the update is applied - e.g. a partial dhcp object sent to a device that has no DHCP configuration yet.
422 <field> A field value is invalid.
500 internal_error <Unspecified>
api/networkmanagement/device/update.txt · Last modified: by Mikkel Meerwaldt Jørgensen

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki