Firmware
The firmware catalogue and the installed BIOS and BMC versions.
10 endpoints
Firmware catalogue
#GET/api/v1/firmware/catalog
Admin only
Example
curl "https://panel.example.com/api/v1/firmware/catalog" \
-H "Authorization: Bearer $TRIXOS_TOKEN"Add a catalogue entry
#POST/api/v1/firmware/catalog
Admin only
match is a case-insensitive piece of the BIOS family/version plus server model (BIOS) or of the BMC model (BMC); the longest match wins.
Request body
componentstringrequiredone of
bios,bmcmatchstringrequiredmin. 2 chars, max. 100 chars
latestVersionstringrequiredmin. 1 chars, max. 100 chars
releaseDatestring | nullmax. 40 chars
urlstringmax. 1000 chars, default
""imageUrlstringmax. 1000 chars, default
""notesstringmax. 2000 chars, default
""
Example
curl -X POST "https://panel.example.com/api/v1/firmware/catalog" \
-H "Authorization: Bearer $TRIXOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"component":"bios","match":"P89","latestVersion":"P89 v3.40","releaseDate":"2024-08-29","url":"https://support.example.com/p89","notes":""}'Update a catalogue entry
#PATCH/api/v1/firmware/catalog/{id}
Admin only
Path parameters
idinteger> 0
Request body
componentstringone of
bios,bmcmatchstringmin. 2 chars, max. 100 chars
latestVersionstringmin. 1 chars, max. 100 chars
releaseDatestring | nullmax. 40 chars
urlstringmax. 1000 chars
imageUrlstringmax. 1000 chars
notesstringmax. 2000 chars
Example
curl -X PATCH "https://panel.example.com/api/v1/firmware/catalog/42" \
-H "Authorization: Bearer $TRIXOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"component":"bios","match":"match","latestVersion":"latestVersion"}'Delete a catalogue entry
#DELETE/api/v1/firmware/catalog/{id}
Admin only
Path parameters
idinteger> 0
Example
curl -X DELETE "https://panel.example.com/api/v1/firmware/catalog/42" \
-H "Authorization: Bearer $TRIXOS_TOKEN"Firmware overview
#GET/api/v1/firmware/overview
Admin only
Every server with installed and newest versions and its state, catalogue usage, and suggestions for hardware without an entry.
Example
curl "https://panel.example.com/api/v1/firmware/overview" \
-H "Authorization: Bearer $TRIXOS_TOKEN"Read firmware from the BMCs
#POST/api/v1/firmware/refresh
Admin only
Runs in the background and returns 202 with the number of servers.
Request body
serverIdsinteger[]max. 1000 items
Example
curl -X POST "https://panel.example.com/api/v1/firmware/refresh" \
-H "Authorization: Bearer $TRIXOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Firmware version changes and update jobs of all servers
#GET/api/v1/firmware/history
Admin only
Firmware changes of all servers, newest first: every version a server reported (from the BMC or hardware collect) with the version it replaced (from: null = first reading), and the firmware update jobs with their result.
Query parameters
limitinteger≥ 1, ≤ 1000, default200
Example
curl "https://panel.example.com/api/v1/firmware/history" \
-H "Authorization: Bearer $TRIXOS_TOKEN"Update all outdated servers of a catalogue entry (one job per server)
#POST/api/v1/firmware/catalog/{id}/rollout
Admin onlyNeeds confirm with the hostname
Update every server that a catalogue entry marks as outdated (or only the given ones) to the entry's version: one firmware_update job per server (protected servers, maintenance, dry-run and the per-server job lock apply; refused servers are listed in skipped). Confirm by typing the entry's "Applies to" (e.g. iLO 4).
Path parameters
idinteger> 0
Request body
serverIdsinteger[]min. 1 items, max. 500 items
confirmstringrequiredmax. 100 chars
Example
curl -X POST "https://panel.example.com/api/v1/firmware/catalog/42/rollout" \
-H "Authorization: Bearer $TRIXOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"confirm":"web-01"}'Update BIOS or BMC firmware
#POST/api/v1/servers/{id}/firmware/update
Admin onlyNeeds confirm with the hostname
Update BIOS or BMC firmware through the BMC (Redfish SimpleUpdate). Without imageUrl the catalogue entry that matches the server provides image and target version.
Path parameters
idinteger> 0
Request body
componentstringrequiredone of
bios,bmcimageUrlstringmax. 1000 chars, pattern
^https?:\/\/versionstringmax. 100 chars
forcebooleandefault
falseconfirmstringmax. 253 chars
Example
curl -X POST "https://panel.example.com/api/v1/servers/42/firmware/update" \
-H "Authorization: Bearer $TRIXOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"component":"bios"}'Firmware state of a server
#GET/api/v1/servers/{id}/firmware
Installed BIOS and BMC versions, the newest catalogue version and state (current, outdated, unknown), plus the version history.
Path parameters
idinteger> 0
Example
curl "https://panel.example.com/api/v1/servers/42/firmware" \
-H "Authorization: Bearer $TRIXOS_TOKEN"