> For the complete documentation index, see [llms.txt](https://docs.efento.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.efento.io/nb-iot-loggers/integrations/efento-coap-loader/api-reference/device-info.md).

# Device Info

Endpoint for receiving device hardware and diagnostics information

## Receive device information

> \## Overview\
> \
> This endpoint provides detailed hardware specifications, firmware versions, and technical diagnostics regarding the device's health and modem performance.\
> \
> \*\*Important:\*\* The endpoint paths shown in this documentation (\`/measurements\`, \`/configuration\`, \`/device-info\`) are \*\*examples only\*\*.\
> \
> The actual endpoint URLs are fully configurable in the CoAP Loader's \`application.yml\` file\
> \
> \*\*When is it called?\*\*\
> \- During the \*\*first communication\*\* after sensor boot/reset\
> \- Periodically (frequency depends on sensor configuration)\
> \- After firmware updates\
> \
> \*\*What data do you receive?\*\*\
> \- \*\*Software information\*\*: firmware version, commit ID\
> \- \*\*Runtime diagnostics\*\*: uptime, MCU temperature, battery voltage, message statistics\
> \- \*\*Modem information\*\*: modem type, network quality parameters (34 values for BC66 modem)\
> \- \*\*Memory statistics\*\*: internal memory usage/allocation\
> \- \*\*Error tracking\*\*: runtime error codes (if any)\
> \
> \*\*Use cases:\*\*\
> \- Monitor device health and battery status\
> \- Track firmware versions across your sensor fleet\
> \- Diagnose connectivity issues using modem parameters\
> \- Alert on critical conditions (low battery, high temperature, errors)\
> \
> \## Request Structure\
> \
> \*\*Method:\*\* \`POST\`\
> \
> \*\*Endpoint:\*\* Configurable in \`application.yml\` under the \`endpointDeviceInfo\` key. The path \`/device-info\` shown here is just an example.\
> \
> \*\*Headers:\*\*\
> \- \`Content-Type: application/json\`\
> \- \`charset: UTF-8\`\
> \- \`X-Api-Token: "optional api token"\` (if configured on sensor via CLOUD\_TOKEN parameter)\
> \
> \*\*Body:\*\* JSON object containing device information fields (see DeviceInfo schema below for complete structure)\
> \
> \## Response\
> \
> Your platform must respond with HTTP status code \*\*2xx\*\* (e.g., 200, 201, or 204) with an \*\*empty body\*\* to confirm receipt.\
> \
> \*\*Note:\*\* This endpoint does NOT support returning configuration updates in the response.<br>

```json
{"openapi":"3.0.3","info":{"title":"CoAP Loader API Documentation","version":"3.0.0"},"tags":[{"name":"Device Info","description":"Endpoint for receiving device hardware and diagnostics information"}],"paths":{"/device-info":{"post":{"tags":["Device Info"],"summary":"Receive device information","description":"## Overview\n\nThis endpoint provides detailed hardware specifications, firmware versions, and technical diagnostics regarding the device's health and modem performance.\n\n**Important:** The endpoint paths shown in this documentation (`/measurements`, `/configuration`, `/device-info`) are **examples only**.\n\nThe actual endpoint URLs are fully configurable in the CoAP Loader's `application.yml` file\n\n**When is it called?**\n- During the **first communication** after sensor boot/reset\n- Periodically (frequency depends on sensor configuration)\n- After firmware updates\n\n**What data do you receive?**\n- **Software information**: firmware version, commit ID\n- **Runtime diagnostics**: uptime, MCU temperature, battery voltage, message statistics\n- **Modem information**: modem type, network quality parameters (34 values for BC66 modem)\n- **Memory statistics**: internal memory usage/allocation\n- **Error tracking**: runtime error codes (if any)\n\n**Use cases:**\n- Monitor device health and battery status\n- Track firmware versions across your sensor fleet\n- Diagnose connectivity issues using modem parameters\n- Alert on critical conditions (low battery, high temperature, errors)\n\n## Request Structure\n\n**Method:** `POST`\n\n**Endpoint:** Configurable in `application.yml` under the `endpointDeviceInfo` key. The path `/device-info` shown here is just an example.\n\n**Headers:**\n- `Content-Type: application/json`\n- `charset: UTF-8`\n- `X-Api-Token: \"optional api token\"` (if configured on sensor via CLOUD_TOKEN parameter)\n\n**Body:** JSON object containing device information fields (see DeviceInfo schema below for complete structure)\n\n## Response\n\nYour platform must respond with HTTP status code **2xx** (e.g., 200, 201, or 204) with an **empty body** to confirm receipt.\n\n**Note:** This endpoint does NOT support returning configuration updates in the response.\n","operationId":"receiveDeviceInfo","parameters":[{"name":"X-Api-Token","in":"header","description":"Optional API token for authentication (if configured)","required":false,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string","default":"application/json"}},{"name":"charset","in":"header","required":true,"schema":{"type":"string","default":"UTF-8"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceInfo"}}}},"responses":{"401":{"description":"Unauthorized.\n\n**HTTP to CoAP mapping:** HTTP 401 or 403 will be converted to CoAP 4.01 UNAUTHORIZED.\n"},"403":{"description":"Forbidden.\n\n**HTTP to CoAP mapping:** HTTP 401 or 403 will be converted to CoAP 4.01 UNAUTHORIZED.\n"},"2XX":{"description":"Success - Device information received successfully.\nResponse body should be empty.\n\n**HTTP to CoAP mapping:** Any 2xx HTTP status code (200, 201, 204, etc.) will be converted to CoAP 2.01 CREATED.\n\n**Note:** This endpoint does NOT support returning configuration updates to the sensor. The sensor only sends device information and does not expect configuration in response.\n","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"3XX":{"description":"Redirection.\n\n**HTTP to CoAP mapping:** Any 3xx HTTP status code (301, 302, 304, etc.) will be converted to CoAP 5.00 INTERNAL SERVER ERROR.\n"},"4XX":{"description":"Client Error.\n\n**HTTP to CoAP mapping:** Any 4xx HTTP status code (except 401/403) will be converted to CoAP 4.00 BAD REQUEST.\n"},"5XX":{"description":"Server Error.\n\n**HTTP to CoAP mapping:** Any 5xx HTTP status code (500, 502, 503, etc.) will be converted to CoAP 5.00 INTERNAL SERVER ERROR.\n"}}}}},"components":{"schemas":{"DeviceInfo":{"type":"object","required":["serialNumber","softwareVersion","commitId","cloudToken","memoryStatistics","updateTimestamp","updateStatus"],"properties":{"serialNumber":{"type":"string","description":"Unique serial number of the sensor"},"softwareVersion":{"type":"string","description":"Current firmware version"},"runtimeInfo":{"$ref":"#/components/schemas/RuntimeInfo"},"modemInfo":{"$ref":"#/components/schemas/ModemInfo"},"commitId":{"type":"string","description":"Unique identifier of the specific software build"},"cloudToken":{"type":"string","description":"Unique token used for cloud authentication"},"memoryStatistics":{"type":"array","description":"A list of numbers representing internal memory usage/allocation","items":{"type":"integer"}},"updateTimestamp":{"type":"integer","format":"int64","description":"The timestamp of the last firmware or configuration update"},"updateStatus":{"type":"integer","description":"Numeric code representing the status of the last update attempt"}}},"RuntimeInfo":{"type":"object","description":"Diagnostic data regarding the device's stability and power","properties":{"uptime":{"type":"integer","description":"Total seconds the device has been running since the last boot"},"confirmableMessagesAttempts":{"type":"integer","description":"(Optional) Number of attempts to send messages requiring an ACK"},"nonConfirmableMessagesAttempts":{"type":"integer","description":"(Optional) Number of attempts to send messages without an ACK"},"succeededMessages":{"type":"integer","description":"(Optional) Number of messages successfully delivered to the platform"},"mcuTemperature":{"type":"integer","description":"Current temperature of the processor in Celsius"},"minBatteryVoltage":{"type":"integer","description":"Minimum recorded battery voltage in mV"},"minBatteryMcuTemperature":{"type":"integer","description":"Processor temperature at the time the minimum battery voltage was recorded"},"batteryResetTimestamp":{"type":"integer","format":"int64","description":"Unix timestamp of the last battery replacement or manual reset (Polish00)"},"maxMcuTemperature":{"type":"integer","description":"Highest recorded processor temperature in Celsius"},"minMcuTemperature":{"type":"integer","description":"Lowest recorded processor temperature in Celsius"},"runtimeErrors":{"type":"array","description":"A list of internal system error codes (max length 20)","items":{"type":"integer"}}}},"ModemInfo":{"type":"object","description":"Low-level parameters from the cellular modem, crucial for analyzing network performance.\n\n## Modem Info Parameters\n\nThe `parameters` array contains 34 numeric values representing detailed network and modem diagnostics (for BC66 modem type).\nEach index in the array corresponds to a specific parameter:\n\n| Index | Parameter Name | Description | Range | Unknown Value |\n|-------|----------------|-------------|-------|---------------|\n| 0 | sc_EARFCN | Serving cell E-UTRA Absolute Radio Frequency Channel Number | [0:262143] | -1 |\n| 1 | sc_EARNFCN_offset | Serving cell frequency offset (mapped to [-2, -1, -0.5, 0, 1]) | [0:4] | -1 |\n| 2 | sc_PCI | Serving cell Physical Cell ID | [0:502] | -1 |\n| 3 | sc_Cell_id | Serving cell ID | [1:268435456] | 0 |\n| 4 | sc_RSRP | Serving cell Reference Signal Received Power [dBm] | [-140:-44] | 0 |\n| 5 | sc_RSRQ | Serving cell Reference Signal Received Quality [dB] | [-20:-3] | 0 |\n| 6 | sc_RSSI | Serving cell Received Signal Strength Indicator [dBm] | [-110:-3] | 0 |\n| 7 | sc_SINR | Serving cell Signal to Interference plus Noise Ratio [dB] | [-10:30] | 31 |\n| 8 | sc_Band | The current serving cell band | [see module supported bands] | -1 |\n| 9 | sc_TAC | Serving cell Tracking Area Code | [0:65536] | -1 |\n| 10 | sc_ECL | Serving cell Extended Coverage Level | [0:2] | -1 |\n| 11 | sc_TX_PWR | Serving cell Transmit Power [0.1cBm] | [-440:230] | -1000 |\n| 12 | OP_MODE | Operation Mode | [0:3] | -1 |\n| 13 | nc_EARFCN | Neighbor cell E-UTRA Absolute Radio Frequency Channel Number | [0:262143] | -1 |\n| 14 | nc_EARNFCN_offset | Neighbor cell frequency offset (mapped to [-2, -1, -0.5, 0, 1]) | [0:4] | -1 |\n| 15 | nc_PCI | Neighbor cell Physical Cell ID | [0:502] | -1 |\n| 16 | nc_RSRP | Neighbor cell Reference Signal Received Power [dBm] | [-140:-44] | 0 |\n| 17 | RLC_UL_BLER | Radio Link Control Uplink Block Error Rate | [0:100] | -1 |\n| 18 | RLC_DL_BLER | Radio Link Control Downlink Block Error Rate | [0:100] | -1 |\n| 19 | MAC_UL_BLER | Medium Access Control Uplink Block Error Rate | [0:100] | -1 |\n| 20 | MAC_DL_BLER | Medium Access Control Downlink Block Error Rate | [0:100] | -1 |\n| 21 | MAC_UL_TOTAL_BYTES | Medium Access Control Uplink Total Bytes | [0:2147483647] | -1 |\n| 22 | MAC_DL_TOTAL_BYTES | Medium Access Control Downlink Total Bytes | [0:2147483647] | -1 |\n| 23 | MAC_UL_total_HARQ_Tx | Medium Access Control Uplink Total HARQ Transmissions | [0:2147483647] | -1 |\n| 24 | MAC_DL_total_HARQ_Tx | Medium Access Control Downlink Total HARQ Transmissions | [0:2147483647] | -1 |\n| 25 | MAC_UL_HARQ_re_Tx | Medium Access Control Uplink HARQ Retransmissions | [0:2147483647] | -1 |\n| 26 | MAC_DL_HARQ_re_Tx | Medium Access Control Downlink HARQ Retransmissions | [0:2147483647] | -1 |\n| 27 | RLC_UL_tput | Radio Link Control Uplink Throughput | [0:2147483647] | -1 |\n| 28 | RLC_DL_tput | Radio Link Control Downlink Throughput | [0:2147483647] | -1 |\n| 29 | MAC_UL_tput | Medium Access Control Uplink Throughput | [0:2147483647] | -1 |\n| 30 | MAC_DL_tput | Medium Access Control Downlink Throughput | [0:2147483647] | -1 |\n| 31 | sleep_duration | Sleep Duration [0.1s] | [0:2147483647] | -1 |\n| 32 | Rx_time | Receive Time [0.1s] | [0:2147483647] | -1 |\n| 33 | Tx_time | Transmit Time [0.1s] | [0:2147483647] | -1 |\n\n**Note:** \"Unknown value\" indicates the value used when the parameter is unavailable or not applicable.\n","properties":{"modemType":{"type":"string","description":"The model identification of the modem","enum":["MODEM_TYPE_UNSPECIFIED","MODEM_TYPE_BC66","MODEM_TYPE_BC66NA","MODEM_TYPE_SHARED_MODEM","MODEM_TYPE_BC660"]},"parameters":{"type":"array","description":"An array of 34 numeric values representing network quality and modem diagnostics (for BC66 modem). See the table above for detailed parameter descriptions.","items":{"type":"integer"}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.efento.io/nb-iot-loggers/integrations/efento-coap-loader/api-reference/device-info.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
