Doppler API API Reference

API for retrieving and writing data to the Doppler database

API Endpoint
https://api.nettec.no/v1
Contact: doppler@nettec.no
Response Content-Types: application/json
Schemes: https
Version: 1.3

Authentication

apiKeyRO

Per user API read only key for Doppler

type
apiKey
name
Authorization
in
header

apiKeyRW

Per user API read and write key for Doppler

type
apiKey
name
Authorization
in
header

routerExtId

Per router public key

type
apiKey
name
routerExtId
in
query

Paths

GET /router_by_ext_id/{ext_id}

Returns a router based on it's external public ID if it is available

ext_id: string
in path

ext_id of router to get

200 OK

Router response

default

unexpected error

Response Example (200 OK)
{
  "id": "integer (int64)",
  "slno": "string",
  "display_name": "string",
  "alias": "string",
  "online": "integer (int32)",
  "last_seen_unixtime": "integer (int64)",
  "uptime": "integer (int64)",
  "url": "string",
  "subscription_name": "string",
  "license_expiry": "string",
  "temperature": {
    "celsius": "number (float)",
    "fahrenheit": "number (float)"
  },
  "temperature_ext": {
    "celsius": "number (float)",
    "fahrenheit": "number (float)"
  },
  "cellular": {
    "signal": "number (float)",
    "technology": "string",
    "technology_group": "string",
    "network": "string",
    "mcc": "integer (int64)",
    "mnc": "integer (int64)",
    "cell_id": "integer (int64)",
    "iccid": "string",
    "msisdn": "string"
  },
  "data_usage": {
    "usage_today": "integer (int64)",
    "usage_current_month": "integer (int64)",
    "limit_month": "integer (int64)"
  },
  "wan": {
    "ping": "integer (int64)",
    "ip4": "string",
    "override": "string",
    "uptime_ppp": "integer (int64)",
    "ddns": "string",
    "default_route": "string"
  },
  "group": {
    "id": "integer (int32)",
    "name": "string",
    "path": "string",
    "logo": "string"
  },
  "location": {
    "latitude": "number",
    "longitude": "number",
    "from": "string",
    "range": "number",
    "heading": "number"
  },
  "lan_clients": [
    {
      "hwaddr": "string",
      "last_seen": {
        "router": "#/definitions/Router",
        "unixtime": "integer (int64)",
        "hostname": "string",
        "eth": "integer (int32)",
        "ip": "string"
      }
    }
  ],
  "dx_version": "string",
  "modem": {
    "manufacturer": "string",
    "model": "string"
  },
  "router_type": {
    "code": "string",
    "firmware_version": "string",
    "os": "string",
    "short": "string",
    "vendor": "string"
  }
}
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

GET /router

Returns all routers from the system that the user has access to

display_name: string
in query

filter by display_name

slno: string
in query

filter by slno

sets: string
in query

"all" for all sections, "short" for few sections, or a comma separated list with sections like "alias,cellular,data_usage,group,lan_clients,location,modem,router_type,temperature,temperature_ext,wan"

200 OK

List of Routers

default

unexpected error

Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "slno": "string",
    "display_name": "string",
    "online": "integer (int32)",
    "last_seen_unixtime": "integer (int64)",
    "group": {
      "id": "integer (int32)",
      "name": "string",
      "path": "string",
      "logo": "string"
    },
    "location": {
      "latitude": "number",
      "longitude": "number",
      "from": "string",
      "range": "number",
      "heading": "number"
    }
  }
]
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

GET /router/{id}

Returns a router based on it's ID, if the user has access to this router

id: integer (int64)
in path

ID of router to get

sets: string
in query

"short" for few sections or a comma separated list with sections like "alias,cellular,data_usage,group,lan_clients,location,modem,router_type,temperature,temperature_ext,wan"

200 OK

Router response

default

unexpected error

Response Example (200 OK)
{
  "id": "integer (int64)",
  "slno": "string",
  "display_name": "string",
  "alias": "string",
  "online": "integer (int32)",
  "last_seen_unixtime": "integer (int64)",
  "uptime": "integer (int64)",
  "url": "string",
  "subscription_name": "string",
  "license_expiry": "string",
  "temperature": {
    "celsius": "number (float)",
    "fahrenheit": "number (float)"
  },
  "temperature_ext": {
    "celsius": "number (float)",
    "fahrenheit": "number (float)"
  },
  "cellular": {
    "signal": "number (float)",
    "technology": "string",
    "technology_group": "string",
    "network": "string",
    "mcc": "integer (int64)",
    "mnc": "integer (int64)",
    "cell_id": "integer (int64)",
    "iccid": "string",
    "msisdn": "string"
  },
  "data_usage": {
    "usage_today": "integer (int64)",
    "usage_current_month": "integer (int64)",
    "limit_month": "integer (int64)"
  },
  "wan": {
    "ping": "integer (int64)",
    "ip4": "string",
    "override": "string",
    "uptime_ppp": "integer (int64)",
    "ddns": "string",
    "default_route": "string"
  },
  "group": {
    "id": "integer (int32)",
    "name": "string",
    "path": "string",
    "logo": "string"
  },
  "location": {
    "latitude": "number",
    "longitude": "number",
    "from": "string",
    "range": "number",
    "heading": "number"
  },
  "lan_clients": [
    {
      "hwaddr": "string",
      "last_seen": {
        "router": "#/definitions/Router",
        "unixtime": "integer (int64)",
        "hostname": "string",
        "eth": "integer (int32)",
        "ip": "string"
      }
    }
  ],
  "dx_version": "string",
  "modem": {
    "manufacturer": "string",
    "model": "string"
  },
  "router_type": {
    "code": "string",
    "firmware_version": "string",
    "os": "string",
    "short": "string",
    "vendor": "string"
  }
}
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

POST /router/{id}

Sets a router's values based on it's ID, if the user has access to this router

JSON data with values to set

id: integer (int64)
in path

ID of router to set

Request Content-Types: application/json
Request Example
{
  "alias": "string",
  "display_name": "string",
  "license_expiry": "string",
  "location_override": {
    "latitude": "number (float)",
    "longitude": "number (float)"
  },
  "cellular": {
    "msisdn": "string"
  },
  "notes": "string",
  "subscription_name": "string",
  "url": "string",
  "group": {
    "id": "integer (int32)"
  },
  "wan": {
    "override": "string"
  }
}

Router response

default

unexpected error

Response Example (200 OK)
{
  "changes": {
    "alias": "string",
    "display_name": "string",
    "license_expiry": "string",
    "location_override": {
      "latitude": "number (float)",
      "longitude": "number (float)"
    },
    "cellular": {
      "msisdn": "string"
    },
    "notes": "string",
    "subscription_name": "string",
    "url": "string",
    "group": {
      "id": "integer (int32)"
    },
    "wan": {
      "override": "string"
    }
  }
}
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

POST /router/add

Adds a new router object based on it's serial number, if the user has access to the provided group

JSON data with values to set. SLNO and group ID is required

Request Content-Types: application/json
Request Example
{
  "alias": "string",
  "display_name": "string",
  "license_expiry": "string",
  "location_override": {
    "latitude": "number (float)",
    "longitude": "number (float)"
  },
  "cellular": {
    "msisdn": "string"
  },
  "notes": "string",
  "slno": "string",
  "subscription_name": "string",
  "url": "string",
  "group": {
    "id": "integer (int32)"
  },
  "wan": {
    "override": "string"
  }
}

Router response

default

unexpected error

Response Example (200 OK)
{
  "values": {
    "alias": "string",
    "display_name": "string",
    "license_expiry": "string",
    "location_override": {
      "latitude": "number (float)",
      "longitude": "number (float)"
    },
    "cellular": {
      "msisdn": "string"
    },
    "notes": "string",
    "slno": "string",
    "subscription_name": "string",
    "url": "string",
    "group": {
      "id": "integer (int32)"
    },
    "wan": {
      "override": "string"
    }
  }
}
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

GET /router/{id}/lan_clients

Returns lan clients recently associated with the router

id: integer (int64)
in path

ID of router to get

200 OK

Router response

type
default

unexpected error

Response Example (200 OK)
[
  {
    "hwaddr": "string",
    "last_seen": {
      "router": {
        "id": "integer (int64)",
        "slno": "string",
        "display_name": "string",
        "alias": "string",
        "online": "integer (int32)",
        "last_seen_unixtime": "integer (int64)",
        "uptime": "integer (int64)",
        "url": "string",
        "subscription_name": "string",
        "license_expiry": "string",
        "temperature": {
          "celsius": "number (float)",
          "fahrenheit": "number (float)"
        },
        "temperature_ext": {
          "celsius": "number (float)",
          "fahrenheit": "number (float)"
        },
        "cellular": {
          "signal": "number (float)",
          "technology": "string",
          "technology_group": "string",
          "network": "string",
          "mcc": "integer (int64)",
          "mnc": "integer (int64)",
          "cell_id": "integer (int64)",
          "iccid": "string",
          "msisdn": "string"
        },
        "data_usage": {
          "usage_today": "integer (int64)",
          "usage_current_month": "integer (int64)",
          "limit_month": "integer (int64)"
        },
        "wan": {
          "ping": "integer (int64)",
          "ip4": "string",
          "override": "string",
          "uptime_ppp": "integer (int64)",
          "ddns": "string",
          "default_route": "string"
        },
        "group": {
          "id": "integer (int32)",
          "name": "string",
          "path": "string",
          "logo": "string"
        },
        "location": {
          "latitude": "number",
          "longitude": "number",
          "from": "string",
          "range": "number",
          "heading": "number"
        },
        "lan_clients": [
          "#/definitions/LANClient"
        ],
        "dx_version": "string",
        "modem": {
          "manufacturer": "string",
          "model": "string"
        },
        "router_type": {
          "code": "string",
          "firmware_version": "string",
          "os": "string",
          "short": "string",
          "vendor": "string"
        }
      },
      "unixtime": "integer (int64)",
      "hostname": "string",
      "eth": "integer (int32)",
      "ip": "string"
    }
  }
]
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

GET /lan_client/{hwaddr}

Returns a LAN Client based on it's hardware address (hwaddr)

hwaddr: string
in path

hwaddr (mac address) of device to search for specified in ":" or "-" separated MAC-48 format

200 OK

LANClient response

default

Unexpected error, or not found

Response Example (200 OK)
{
  "hwaddr": "string",
  "last_seen": {
    "router": {
      "id": "integer (int64)",
      "slno": "string",
      "display_name": "string",
      "alias": "string",
      "online": "integer (int32)",
      "last_seen_unixtime": "integer (int64)",
      "uptime": "integer (int64)",
      "url": "string",
      "subscription_name": "string",
      "license_expiry": "string",
      "temperature": {
        "celsius": "number (float)",
        "fahrenheit": "number (float)"
      },
      "temperature_ext": {
        "celsius": "number (float)",
        "fahrenheit": "number (float)"
      },
      "cellular": {
        "signal": "number (float)",
        "technology": "string",
        "technology_group": "string",
        "network": "string",
        "mcc": "integer (int64)",
        "mnc": "integer (int64)",
        "cell_id": "integer (int64)",
        "iccid": "string",
        "msisdn": "string"
      },
      "data_usage": {
        "usage_today": "integer (int64)",
        "usage_current_month": "integer (int64)",
        "limit_month": "integer (int64)"
      },
      "wan": {
        "ping": "integer (int64)",
        "ip4": "string",
        "override": "string",
        "uptime_ppp": "integer (int64)",
        "ddns": "string",
        "default_route": "string"
      },
      "group": {
        "id": "integer (int32)",
        "name": "string",
        "path": "string",
        "logo": "string"
      },
      "location": {
        "latitude": "number",
        "longitude": "number",
        "from": "string",
        "range": "number",
        "heading": "number"
      },
      "lan_clients": [
        "#/definitions/LANClient"
      ],
      "dx_version": "string",
      "modem": {
        "manufacturer": "string",
        "model": "string"
      },
      "router_type": {
        "code": "string",
        "firmware_version": "string",
        "os": "string",
        "short": "string",
        "vendor": "string"
      }
    },
    "unixtime": "integer (int64)",
    "hostname": "string",
    "eth": "integer (int32)",
    "ip": "string"
  }
}
Response Example (default )
{
  "code": "integer (int32)",
  "message": "string"
}

Schema Definitions

RouterSummary:

id: integer (int64)

ID identifying one router

slno: string

serial number, unique per device

display_name: string
online: integer (int32)

1 if online, 0 if offline

last_seen_unixtime: integer (int64)

when we last heard from the router, can be -1 in case not heard

group: Group
location: Location
Example
{
  "id": "integer (int64)",
  "slno": "string",
  "display_name": "string",
  "online": "integer (int32)",
  "last_seen_unixtime": "integer (int64)",
  "group": {
    "id": "integer (int32)",
    "name": "string",
    "path": "string",
    "logo": "string"
  },
  "location": {
    "latitude": "number",
    "longitude": "number",
    "from": "string",
    "range": "number",
    "heading": "number"
  }
}

Router:

id: integer (int64)

ID identifying one router

slno: string

serial number, unique per device

display_name: string
alias: string
online: integer (int32)

1 if online, 0 if offline

last_seen_unixtime: integer (int64)

when we last heard from the router, can be -1 in case not heard

uptime: integer (int64)

system uptime

ipsec: object

ipsec status, 1 if up, 0 if down, null if not defined

url: string

URL associated with router

subscription_name: string

Subscription name associated with router

license_expiry: string

Router license expiry date

temperature: Temperature
temperature_ext: Temperature
cellular: RouterCellular
data_usage: RouterDataUsage
wan: RouterWAN
group: Group
location: Location
lan_clients: LANClient
LANClient
dx_version: string
modem: Modem
router_type: RouterType
Example
{
  "id": "integer (int64)",
  "slno": "string",
  "display_name": "string",
  "alias": "string",
  "online": "integer (int32)",
  "last_seen_unixtime": "integer (int64)",
  "uptime": "integer (int64)",
  "url": "string",
  "subscription_name": "string",
  "license_expiry": "string",
  "temperature": {
    "celsius": "number (float)",
    "fahrenheit": "number (float)"
  },
  "temperature_ext": {
    "celsius": "number (float)",
    "fahrenheit": "number (float)"
  },
  "cellular": {
    "signal": "number (float)",
    "technology": "string",
    "technology_group": "string",
    "network": "string",
    "mcc": "integer (int64)",
    "mnc": "integer (int64)",
    "cell_id": "integer (int64)",
    "iccid": "string",
    "msisdn": "string"
  },
  "data_usage": {
    "usage_today": "integer (int64)",
    "usage_current_month": "integer (int64)",
    "limit_month": "integer (int64)"
  },
  "wan": {
    "ping": "integer (int64)",
    "ip4": "string",
    "override": "string",
    "uptime_ppp": "integer (int64)",
    "ddns": "string",
    "default_route": "string"
  },
  "group": {
    "id": "integer (int32)",
    "name": "string",
    "path": "string",
    "logo": "string"
  },
  "location": {
    "latitude": "number",
    "longitude": "number",
    "from": "string",
    "range": "number",
    "heading": "number"
  },
  "lan_clients": [
    {
      "hwaddr": "string",
      "last_seen": {
        "router": {
          "id": "integer (int64)",
          "slno": "string",
          "display_name": "string",
          "alias": "string",
          "online": "integer (int32)",
          "last_seen_unixtime": "integer (int64)",
          "uptime": "integer (int64)",
          "url": "string",
          "subscription_name": "string",
          "license_expiry": "string",
          "temperature": {
            "celsius": "number (float)",
            "fahrenheit": "number (float)"
          },
          "temperature_ext": {
            "celsius": "number (float)",
            "fahrenheit": "number (float)"
          },
          "cellular": {
            "signal": "number (float)",
            "technology": "string",
            "technology_group": "string",
            "network": "string",
            "mcc": "integer (int64)",
            "mnc": "integer (int64)",
            "cell_id": "integer (int64)",
            "iccid": "string",
            "msisdn": "string"
          },
          "data_usage": {
            "usage_today": "integer (int64)",
            "usage_current_month": "integer (int64)",
            "limit_month": "integer (int64)"
          },
          "wan": {
            "ping": "integer (int64)",
            "ip4": "string",
            "override": "string",
            "uptime_ppp": "integer (int64)",
            "ddns": "string",
            "default_route": "string"
          },
          "group": {
            "id": "integer (int32)",
            "name": "string",
            "path": "string",
            "logo": "string"
          },
          "location": {
            "latitude": "number",
            "longitude": "number",
            "from": "string",
            "range": "number",
            "heading": "number"
          },
          "lan_clients": [
            "#/definitions/LANClient"
          ],
          "dx_version": "string",
          "modem": {
            "manufacturer": "string",
            "model": "string"
          },
          "router_type": {
            "code": "string",
            "firmware_version": "string",
            "os": "string",
            "short": "string",
            "vendor": "string"
          }
        },
        "unixtime": "integer (int64)",
        "hostname": "string",
        "eth": "integer (int32)",
        "ip": "string"
      }
    }
  ],
  "dx_version": "string",
  "modem": {
    "manufacturer": "string",
    "model": "string"
  },
  "router_type": {
    "code": "string",
    "firmware_version": "string",
    "os": "string",
    "short": "string",
    "vendor": "string"
  }
}

RouterUpdate:

alias: string
display_name: string
license_expiry: string
location_override: object

fixed location latitude and longitude

latitude: number (float)
longitude: number (float)
cellular: object
msisdn: string
notes: string
subscription_name: string
url: string
group: object
id: integer (int32)
wan: object
override: string
Example
{
  "alias": "string",
  "display_name": "string",
  "license_expiry": "string",
  "location_override": {
    "latitude": "number (float)",
    "longitude": "number (float)"
  },
  "cellular": {
    "msisdn": "string"
  },
  "notes": "string",
  "subscription_name": "string",
  "url": "string",
  "group": {
    "id": "integer (int32)"
  },
  "wan": {
    "override": "string"
  }
}

RouterAdd:

alias: string
display_name: string
license_expiry: string
location_override: object

fixed location latitude and longitude

latitude: number (float)
longitude: number (float)
cellular: object
msisdn: string
notes: string
slno: string
subscription_name: string
url: string
group: object
id: integer (int32)
wan: object
override: string
Example
{
  "alias": "string",
  "display_name": "string",
  "license_expiry": "string",
  "location_override": {
    "latitude": "number (float)",
    "longitude": "number (float)"
  },
  "cellular": {
    "msisdn": "string"
  },
  "notes": "string",
  "slno": "string",
  "subscription_name": "string",
  "url": "string",
  "group": {
    "id": "integer (int32)"
  },
  "wan": {
    "override": "string"
  }
}

RouterUpdateResponse:

id: object

ID identifying the router being updated

changes: RouterUpdate

The properties which have been changed

Example
{
  "changes": {
    "alias": "string",
    "display_name": "string",
    "license_expiry": "string",
    "location_override": {
      "latitude": "number (float)",
      "longitude": "number (float)"
    },
    "cellular": {
      "msisdn": "string"
    },
    "notes": "string",
    "subscription_name": "string",
    "url": "string",
    "group": {
      "id": "integer (int32)"
    },
    "wan": {
      "override": "string"
    }
  }
}

RouterAddResponse:

id: object

ID identifying the new router object

values: RouterAdd

The properties which have been added to the new router object

Example
{
  "values": {
    "alias": "string",
    "display_name": "string",
    "license_expiry": "string",
    "location_override": {
      "latitude": "number (float)",
      "longitude": "number (float)"
    },
    "cellular": {
      "msisdn": "string"
    },
    "notes": "string",
    "slno": "string",
    "subscription_name": "string",
    "url": "string",
    "group": {
      "id": "integer (int32)"
    },
    "wan": {
      "override": "string"
    }
  }
}

Temperature:

celsius: number (float)

Router temperature in celsius

fahrenheit: number (float)

Router temperature in fahrenheit

Example
{
  "celsius": "number (float)",
  "fahrenheit": "number (float)"
}

RouterDataUsage:

usage_today: integer (int64)

Data usage today in bytes

usage_current_month: integer (int64)

Data usage current month in bytes

limit_month: integer (int64)

Monthly data limit for this router in bytes

Example
{
  "usage_today": "integer (int64)",
  "usage_current_month": "integer (int64)",
  "limit_month": "integer (int64)"
}

RouterWAN:

ping: integer (int64)

Latency measurement (ms)

ip4: string

IP4 address of WAN PPP interface

override: string

Override IP4 address of WAN PPP interface

uptime_ppp: integer (int64)

PPP uptime in seconds

ddns: string

dynamic dns hostname

default_route: string

default route reported by device

Example
{
  "ping": "integer (int64)",
  "ip4": "string",
  "override": "string",
  "uptime_ppp": "integer (int64)",
  "ddns": "string",
  "default_route": "string"
}

RouterCellular:

signal: number (float)

Signal strength in dBm

technology: string

Technology type reported by the modem

technology_group: string

Common technology definition (2G, 3G, 4G, etc.)

network: string

Network identifier provided by the cell tower

mcc: integer (int64)
mnc: integer (int64)
cell_id: integer (int64)
iccid: string
msisdn: string
Example
{
  "signal": "number (float)",
  "technology": "string",
  "technology_group": "string",
  "network": "string",
  "mcc": "integer (int64)",
  "mnc": "integer (int64)",
  "cell_id": "integer (int64)",
  "iccid": "string",
  "msisdn": "string"
}

RouterType:

code: string
firmware_version: string
os: string
short: string
vendor: string
Example
{
  "code": "string",
  "firmware_version": "string",
  "os": "string",
  "short": "string",
  "vendor": "string"
}

Group:

id: integer (int32)
name: string
path: string
logo: string
Example
{
  "id": "integer (int32)",
  "name": "string",
  "path": "string",
  "logo": "string"
}

Location:

latitude: number
longitude: number
from: string fixed, cellid, gps
range: number
heading: number

Heading in degrees

Example
{
  "latitude": "number",
  "longitude": "number",
  "from": "string",
  "range": "number",
  "heading": "number"
}

LANClient:

hwaddr: string
last_seen: LANClientLogEntry
Example
{
  "hwaddr": "string",
  "last_seen": {
    "router": {
      "id": "integer (int64)",
      "slno": "string",
      "display_name": "string",
      "alias": "string",
      "online": "integer (int32)",
      "last_seen_unixtime": "integer (int64)",
      "uptime": "integer (int64)",
      "url": "string",
      "subscription_name": "string",
      "license_expiry": "string",
      "temperature": {
        "celsius": "number (float)",
        "fahrenheit": "number (float)"
      },
      "temperature_ext": {
        "celsius": "number (float)",
        "fahrenheit": "number (float)"
      },
      "cellular": {
        "signal": "number (float)",
        "technology": "string",
        "technology_group": "string",
        "network": "string",
        "mcc": "integer (int64)",
        "mnc": "integer (int64)",
        "cell_id": "integer (int64)",
        "iccid": "string",
        "msisdn": "string"
      },
      "data_usage": {
        "usage_today": "integer (int64)",
        "usage_current_month": "integer (int64)",
        "limit_month": "integer (int64)"
      },
      "wan": {
        "ping": "integer (int64)",
        "ip4": "string",
        "override": "string",
        "uptime_ppp": "integer (int64)",
        "ddns": "string",
        "default_route": "string"
      },
      "group": {
        "id": "integer (int32)",
        "name": "string",
        "path": "string",
        "logo": "string"
      },
      "location": {
        "latitude": "number",
        "longitude": "number",
        "from": "string",
        "range": "number",
        "heading": "number"
      },
      "lan_clients": [
        {
          "hwaddr": "string",
          "last_seen": "#/definitions/LANClientLogEntry"
        }
      ],
      "dx_version": "string",
      "modem": {
        "manufacturer": "string",
        "model": "string"
      },
      "router_type": {
        "code": "string",
        "firmware_version": "string",
        "os": "string",
        "short": "string",
        "vendor": "string"
      }
    },
    "unixtime": "integer (int64)",
    "hostname": "string",
    "eth": "integer (int32)",
    "ip": "string"
  }
}

LANClientLogEntry:

router: Router
unixtime: integer (int64)
hostname: string
eth: integer (int32)
ip: string
Example
{
  "router": {
    "id": "integer (int64)",
    "slno": "string",
    "display_name": "string",
    "alias": "string",
    "online": "integer (int32)",
    "last_seen_unixtime": "integer (int64)",
    "uptime": "integer (int64)",
    "url": "string",
    "subscription_name": "string",
    "license_expiry": "string",
    "temperature": {
      "celsius": "number (float)",
      "fahrenheit": "number (float)"
    },
    "temperature_ext": {
      "celsius": "number (float)",
      "fahrenheit": "number (float)"
    },
    "cellular": {
      "signal": "number (float)",
      "technology": "string",
      "technology_group": "string",
      "network": "string",
      "mcc": "integer (int64)",
      "mnc": "integer (int64)",
      "cell_id": "integer (int64)",
      "iccid": "string",
      "msisdn": "string"
    },
    "data_usage": {
      "usage_today": "integer (int64)",
      "usage_current_month": "integer (int64)",
      "limit_month": "integer (int64)"
    },
    "wan": {
      "ping": "integer (int64)",
      "ip4": "string",
      "override": "string",
      "uptime_ppp": "integer (int64)",
      "ddns": "string",
      "default_route": "string"
    },
    "group": {
      "id": "integer (int32)",
      "name": "string",
      "path": "string",
      "logo": "string"
    },
    "location": {
      "latitude": "number",
      "longitude": "number",
      "from": "string",
      "range": "number",
      "heading": "number"
    },
    "lan_clients": [
      {
        "hwaddr": "string",
        "last_seen": {
          "router": "#/definitions/Router",
          "unixtime": "integer (int64)",
          "hostname": "string",
          "eth": "integer (int32)",
          "ip": "string"
        }
      }
    ],
    "dx_version": "string",
    "modem": {
      "manufacturer": "string",
      "model": "string"
    },
    "router_type": {
      "code": "string",
      "firmware_version": "string",
      "os": "string",
      "short": "string",
      "vendor": "string"
    }
  },
  "unixtime": "integer (int64)",
  "hostname": "string",
  "eth": "integer (int32)",
  "ip": "string"
}

Modem:

manufacturer: string
model: string
Example
{
  "manufacturer": "string",
  "model": "string"
}

Error:

code: integer (int32)
message: string
Example
{
  "code": "integer (int32)",
  "message": "string"
}