GET /api/debug/settings/
Retrieve the state of both persistent settings banks, regardless of the source of the current runtime settings.
Auth: Bearer (powerUser).
Diagnostic mode is not required. In diagnostic mode, implicit powerUser access allows the banks to be inspected without a Bearer token.
Response 200
Section titled “Response 200”{ "runtimeSource": "builtIn", "bootBank": 2, "banks": [ { "bank": 1, "valid": false }, { "bank": 2, "valid": true, "sequence": 15, "isDefault": true, "savedAt": "2026-09-18T10:05:00Z", "dataLength": 512, "dataCrc32": "87654321", "headerCrc32": "10fedcba" } ]}Response fields
Section titled “Response fields”| Field | Type | Description |
|---|---|---|
runtimeSource | string | Source of the current runtime settings: builtIn, bank1, or bank2 |
bootBank | number | null | Bank selected during a normal boot: 1, 2, or null if both banks are invalid |
banks | array | State of the two physical settings banks |
banks[].bank | number | Bank number: 1 or 2 |
banks[].valid | boolean | Result of full validation of the header, firmware version, length, and data CRC |
banks[].sequence | number | Record sequence number; present only for a valid bank |
banks[].isDefault | boolean | Whether the payload matches the effective factory settings; present only for a valid bank |
banks[].savedAt | string | null | Save time in ISO 8601 UTC; present only for a valid bank |
banks[].dataLength | number | Payload length; present only for a valid bank |
banks[].dataCrc32 | string | Payload CRC32 as eight hex characters; present only for a valid bank |
banks[].headerCrc32 | string | Header CRC32 as eight hex characters; present only for a valid bank |
runtimeSource and bootBank may differ. For example, in diagnostic mode the runtime uses builtIn, while a normal boot selects the latest valid flash bank.
If both banks are valid, bootBank identifies the bank with the newer sequence, accounting for uint32_t wraparound. If the sequence values are equal, bank 1 is selected.
Header fields are not returned for an invalid bank because their values are not considered reliable.
Factory settings validation
Section titled “Factory settings validation”The saved settings are considered factory settings if bootBank is not null and the specified bank has valid: true and isDefault: true. The other, older bank may contain custom settings and does not affect the result.