Firmware API

← Back to Tools & Firmware

This is a small, read-only JSON API for the firmware list on the /services page, meant for outside scripts, apps, or devices that want to check for and download firmware without a browser. Every request needs an API key.

Getting a key

An admin creates keys from Settings → Admin → Services → Firmware API keys in the main app. There's no self-service signup — ask the admin for a key.

Authentication

Send your key on every request, either as a header or a query parameter:

X-API-Key: YOUR_KEY_HERE

# or

GET /api/public-services/firmware?api_key=YOUR_KEY_HERE

GET/api/public-services/firmware

List all firmware entries.

curl -H "X-API-Key: YOUR_KEY_HERE" \
  https://YOUR-HOST/api/public-services/firmware
[
  {
    "id": "a1b2c3d4e5f6a7b8",
    "name": "Main Board Firmware",
    "version": "v2.3.1",
    "description": "Stable release for X10 relay boards",
    "size": 1048576,
    "uploadedAt": 1752345600000
  }
]

GET/api/public-services/firmware/:id

Get one firmware entry's metadata by id.

curl -H "X-API-Key: YOUR_KEY_HERE" \
  https://YOUR-HOST/api/public-services/firmware/a1b2c3d4e5f6a7b8

GET/api/public-services/firmware/:id/download

Download the actual firmware file. The response has the file's real name in Content-Disposition and its exact size in Content-Length.

curl -H "X-API-Key: YOUR_KEY_HERE" \
  https://YOUR-HOST/api/public-services/firmware/a1b2c3d4e5f6a7b8/download \
  -o firmware.bin

Response fields

FieldTypeNotes
idstringStable identifier, used in the other two endpoints.
namestringDisplay name the admin gave it.
versionstringOptional, e.g. v2.3.1.
descriptionstringOptional notes.
sizenumberFile size in bytes.
uploadedAtnumberUnix ms timestamp.

Errors

StatusMeaning
401Missing or invalid API key.
404No firmware with that id.