Skip to main content

Manager Resources

Manager resources are used to discover device managers, and to query, clear, or export BMC management logs.

The APIs on this page support HTTP Basic Auth and session tokens. The token is carried in the `X-Xsrf-Token` request header, not in the request body. In the examples, `` is `http` or `https` depending on the service configuration.

1 Manager Resource Collection

1.1 Querying the Manager Resource Collection

Query the manager resources accessible to the current account.

ItemContent
MethodGET
Path/redfish/v1/Managers
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Request bodyNone
Success status code200 OK
Basic Auth Token ```bash title="Query the Manager Resource Collection" curl --user ':' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers' ``` ```bash title="Query the Manager Resource Collection with a Token" curl --header 'X-Xsrf-Token: ' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers' ```

Response Example

The following is a real response returned by a test device.

200 OK
{
"@odata.id": "/redfish/v1/Managers",
"@odata.type": "#ManagersCollection.ManagersCollection",
"Name": "Managers Collection",
"Members@odata.count": 11,
"Members": [
{ "@odata.id": "/redfish/v1/Managers/bmc" },
{ "@odata.id": "/redfish/v1/Managers/sub01" },
{ "@odata.id": "/redfish/v1/Managers/sub02" },
{ "@odata.id": "/redfish/v1/Managers/sub03" },
{ "@odata.id": "/redfish/v1/Managers/sub04" },
{ "@odata.id": "/redfish/v1/Managers/sub05" },
{ "@odata.id": "/redfish/v1/Managers/sub06" },
{ "@odata.id": "/redfish/v1/Managers/sub07" },
{ "@odata.id": "/redfish/v1/Managers/sub08" },
{ "@odata.id": "/redfish/v1/Managers/sub09" },
{ "@odata.id": "/redfish/v1/Managers/sub10" }
]
}

Response Fields

FieldTypeDescription
@odata.idstringPath of the manager resource collection.
@odata.typestringOData type of the manager resource collection.
NamestringName of the manager resource collection.
Members@odata.countnumberNumber of managers accessible to the current account.
MembersarrayList of manager members.
Members[].@odata.idstringResource path of a specific manager.

1.2 Querying a Specific Manager Resource

Query the status, time, linked resources, and console capabilities of a specific manager. The following example uses the manager identifier bmc.

ItemContent
MethodGET
Path/redfish/v1/Managers/{ManagerId}
Path parameterManagerId: manager identifier, for example bmc
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Request bodyNone
Success status code200 OK
Basic Auth Token ```bash title="Query the bmc Manager Resource" curl --user ':' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc' ``` ```bash title="Query the bmc Manager Resource with a Token" curl --header 'X-Xsrf-Token: ' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc' ```

Response Example

The following is an excerpt of the key fields from a real response.

200 OK · Real Response Excerpt
{
"@odata.id": "/redfish/v1/Managers/bmc",
"@odata.type": "#Managers.v1_20_0.Managers",
"Actions": null,
"DateTime": "2026-08-05T02:06:31+00:00",
"DateTimeLocalOffset": "UTC+08:00",
"Description": "Managers",
"Id": "bmc",
"Links": {
"AccountService": [{ "Id": "/redfish/v1/AccountService" }],
"Chassis": [{ "Id": "/redfish/v1/Chassis" }],
"Oem": [{ "Id": "/redfish/v1/Oem" }],
"Switch": [{ "Id": "/redfish/v1/Switch" }],
"Systems": [{ "Id": "/redfish/v1/Systems" }],
"UpdateFwService": [{ "Id": "/redfish/v1/UpdateFwService" }],
"UpdateFwService_V2": [{ "Id": "/redfish/v1/UpdateFwService_V2" }]
},
"Manufacturer": "Firefly",
"Name": "Computer System Managers",
"PowerState": "On",
"SerialConsole": {
"ConnectTypesSupported": ["Shell"],
"MaxConcurrentSessions": 1,
"ServiceEnabled": true
},
"Status": {
"Health": "Critical",
"HealthRollup": "",
"State": ""
},
"TimeZoneName": "UTC"
}

Response Fields

FieldTypeDescription
@odata.idstringResource path of the specific manager.
@odata.typestringOData type of the manager resource.
Actionsobject | nullSet of actions currently exposed by the manager.
DateTimestringCurrent date and time of the manager.
DateTimeLocalOffsetstringLocal time zone offset reported by the manager.
DescriptionstringDescription of the manager resource.
IdstringManager identifier.
LinksobjectEntries to resources linked to the manager.
Links.AccountServicearrayList of user account service entries.
Links.AccountService[].IdstringUser account service path.
Links.ChassisarrayList of chassis resource entries.
Links.Chassis[].IdstringChassis resource path.
Links.OemarrayList of OEM resource entries.
Links.Oem[].IdstringOEM resource path.
Links.SwitcharrayList of switch resource entries.
Links.Switch[].IdstringSwitch resource path.
Links.SystemsarrayList of system resource entries.
Links.Systems[].IdstringSystem resource path.
Links.UpdateFwServicearrayList of firmware upgrade service entries.
Links.UpdateFwService[].IdstringFirmware upgrade service path.
Links.UpdateFwService_V2arrayList of entries to the second version of the firmware upgrade service.
Links.UpdateFwService_V2[].IdstringPath of the second version of the firmware upgrade service.
ManufacturerstringManager manufacturer.
NamestringManager name.
PowerStatestringManager power state.
SerialConsoleobjectSerial console capabilities.
SerialConsole.ConnectTypesSupportedarraySupported console connection types.
SerialConsole.MaxConcurrentSessionsnumberMaximum number of concurrent console sessions.
SerialConsole.ServiceEnabledbooleanWhether the serial console service is enabled.
StatusobjectManager status.
Status.HealthstringManager health status.
Status.HealthRollupstringManager rollup health status.
Status.StatestringManager operating state.
TimeZoneNamestringTime zone name reported by the manager.

2 Log Resources

Management logs are divided into four types.

LogServiceIdDescription
OperateLogManagement operation logs.
RunLogManagement service run logs.
SecurityLogSecurity-related logs such as login and authentication.
UpgradeLogFirmware or software upgrade logs.

2.1 Querying the Log Service Collection

Query all management log types supported by a specific manager.

ItemContent
MethodGET
Path/redfish/v1/Managers/{ManagerId}/LogServices
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Required privilegeOemDebug
Request bodyNone
Success status code200 OK
Basic Auth Token ```bash title="Query the Management Log Service Collection" curl --user ':' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices' ``` ```bash title="Query the Management Log Service Collection with a Token" curl --header 'X-Xsrf-Token: ' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices' ```

Response Example

200 OK
{
"@odata.context": "/redfish/v1/$metadata#Managers/Members/bmc/LogServices/$entity",
"@odata.id": "/redfish/v1/Managers/bmc/LogServices",
"@odata.type": "#LogServiceCollection.LogServiceCollection",
"Members": [
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog" },
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/RunLog" },
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/SecurityLog" },
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/UpgradeLog" }
],
"Members@odata.count": 4,
"Name": "LogService Collection"
}

Response Fields

FieldTypeDescription
@odata.contextstringOData metadata context of the log service collection.
@odata.idstringPath of the log service collection.
@odata.typestringOData type of the log service collection.
MembersarrayList of log service members.
Members[].@odata.idstringAccess path of a specific log service.
Members@odata.countnumberNumber of log services.
NamestringName of the log service collection.

2.2 Querying a Specific Log Service

Query the status, entry point, and clear and export action entries of a specific log type.

ItemContent
MethodGET
Path/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}
Path parameterLogServiceId: OperateLog, RunLog, SecurityLog, or UpgradeLog
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Success status code200 OK
Basic Auth Token ```bash title="Query the Operation Log Service" curl --user ':' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog' ``` ```bash title="Query the Operation Log Service with a Token" curl --header 'X-Xsrf-Token: ' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog' ```

Response Example

200 OK
{
"@odata.context": "/redfish/v1/$metadata#Managers/Members/bmc/LogServices/Members/$entity",
"@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog",
"@odata.type": "#LogService.v1_4_0.LogService",
"Actions": {
"#LogService.ClearLog": {
"ClearType@Redfish.AllowableValue": [""],
"target": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/LogService.ClearLog"
},
"Oem": {
"Firefly": {
"#LogService.ExportLog": {
"@Redfish.ActionInfo": "/redfish/v1/Managers/bmc/LogServices/OperateLog/ExportLogActionInfo",
"target": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/Oem/Firefly/LogService.ExportLog"
}
}
}
},
"DateTime": "2026-08-05T10:06:08.292+08:00",
"DateTimeLocalOffset": "+08:00",
"Description": "Collection of log services for this manager",
"Entries": {
"@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries"
},
"Id": "OperateLog",
"Name": "System Service Log",
"OverWritePolicy": "NeverOverWrites",
"OverWritePolicy@Redfish.AllowableValues": [
"Unknown",
"WrapsWhenFull",
"NeverOverWrites"
],
"ServiceEnabled": true
}

Response Fields

FieldTypeDescription
@odata.contextstringOData metadata context of the specific log service.
@odata.idstringPath of the specific log service.
@odata.typestringOData type of the log service.
ActionsobjectSet of actions supported by the log service.
Actions.#LogService.ClearLogobjectClear log action.
Actions.#LogService.ClearLog.ClearType@Redfish.AllowableValuearrayAllowable values for the clear type; currently returns an empty string.
Actions.#LogService.ClearLog.targetstringPOST path for clearing logs.
Actions.OemobjectSet of OEM actions.
Actions.Oem.FireflyobjectSet of Firefly log actions.
Actions.Oem.Firefly.#LogService.ExportLogobjectExport log action.
Actions.Oem.Firefly.#LogService.ExportLog.@Redfish.ActionInfostringActionInfo path of the export action.
Actions.Oem.Firefly.#LogService.ExportLog.targetstringPOST path for exporting logs.
DateTimestringLocal date and time when the server generated the response.
DateTimeLocalOffsetstringOffset of local time from UTC.
DescriptionstringDescription of the log service.
EntriesobjectEntry point of the log entry collection.
Entries.@odata.idstringPath of the log entry collection.
IdstringLog service identifier.
NamestringLog service name.
OverWritePolicystringCurrent log overwrite policy.
OverWritePolicy@Redfish.AllowableValuesarraySupported log overwrite policies.
ServiceEnabledbooleanWhether the log service is enabled.

2.3 Querying the Log Entry Collection

Query the entry paths of a specific log service with pagination.

ItemContent
MethodGET
Path/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Entries
Query parameterskip: number of entries to skip, starting from zero; default 0
Query parametertop: end ordinal of the returned range; defaults to the current total number of logs when omitted
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Success status code200 OK
The current backend generates members from the ordinal range `skip + 1` to `top`. For example, `skip=0&top=3` returns entries 1 through 3; `skip=1&top=3` returns only entries 2 through 3. `top` is currently not the "return count" found in common pagination semantics. Basic Auth Token ```bash title="Query the First Three Operation Log Entries" curl --user ':' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries?skip=0&top=3' ``` ```bash title="Query the First Three Operation Log Entries with a Token" curl --header 'X-Xsrf-Token: ' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries?skip=0&top=3' ```

Response Example

200 OK
{
"@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection",
"@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries",
"@odata.type": "#LogEntryCollection.LogEntryCollection",
"Description": "Collection of entries for this log service",
"Members": [
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1" },
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/2" },
{ "@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/3" }
],
"Members@odata.count": 3,
"Name": "Log Service Entries Collection",
"Oem": {
"Firefly": {
"MaxCount": 30
}
}
}

Response Fields

FieldTypeDescription
@odata.contextstringOData metadata context of the log entry collection.
@odata.idstringPath of the log entry collection; does not include the query string.
@odata.typestringOData type of the log entry collection.
DescriptionstringDescription of the log entry collection.
MembersarrayList of log entries within the current query range.
Members[].@odata.idstringAccess path of a specific log entry.
Members@odata.countnumberNumber of members actually returned in the current response.
NamestringName of the log entry collection.
OemobjectOEM extension information.
Oem.FireflyobjectFirefly log extension information.
Oem.Firefly.MaxCountnumberTotal number of logs currently stored for the specific log service.

2.4 Querying a Specific Log Entry

Query the content of one management log entry by its ordinal number.

ItemContent
MethodGET
Path/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Entries/{EntryId}
Path parameterEntryId: obtained from Members[].@odata.id of the log entry collection
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Success status code200 OK
Basic Auth Token ```bash title="Query Operation Log Entry 1" curl --user ':' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1' ``` ```bash title="Query Operation Log Entry 1 with a Token" curl --header 'X-Xsrf-Token: ' \ --header 'Accept: application/json' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1' ```

Response Example

The following response comes from a real log entry, with the client address replaced by a placeholder.

200 OK · Client Address Masked
{
"@odata.context": "/redfish/v1/$metadata#Managers/Members/bmc/LogServices/OperateLog/Entries/Members/$entity",
"@odata.id": "/redfish/v1/Managers/bmc/LogServices/OperateLog/Entries/1",
"@odata.type": "#LogEntry.v1_1_4.LogEntry",
"Created": "2026-05-14T10:22:16.795+08:00",
"Description": "Manager OperateLog Log",
"EventTimestamp": "2026-05-14T10:22:16.795+08:00",
"Id": "1",
"Message": "Access: /redfish/v1/UpdateFwService/Actions/UpdateFwService.SimpleUpdate; operation: control SimpleUpdate_Queue fail; reason: The property 'ImageURI' is a required property and must be included in the request.",
"Name": "Log Entry 1",
"Oem": {
"Firefly": {
"Client": "<client-ip>",
"Interface": "LAN",
"User": ""
}
},
"Severity": "Critical"
}

Response Fields

FieldTypeDescription
@odata.contextstringOData metadata context of the log entry.
@odata.idstringPath of the specific log entry.
@odata.typestringOData type of the log entry.
CreatedstringTime when the log record was created.
DescriptionstringDescription of the log entry.
EventTimestampstringTime when the logged event occurred.
IdstringOrdinal number of the log entry in the current query.
MessagestringLog message body.
NamestringLog entry name.
OemobjectOEM extension information.
Oem.FireflyobjectFirefly log extension information.
Oem.Firefly.ClientstringClient address that initiated the related request.
Oem.Firefly.InterfacestringInterface the request came from; currently always returns LAN.
Oem.Firefly.UserstringUsername that initiated the related request.
SeveritystringLog severity level; can be OK, Warning, or Critical.

2.5 Clearing Logs

Permanently deletes all records under a specific manager and log type.

ItemContent
MethodPOST
Path/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Actions/LogService.ClearLog
Request bodyEmpty JSON object {}
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Required privilegeOemDebug
Success status code200 OK
This API permanently deletes all logs of the specified type from the database and compacts the log database space. Back up the logs via the export API before executing it. The clear operation was not performed during this on-device verification. Basic Auth Token ```bash title="Clear Operation Logs" curl --request POST \ --user ':' \ --header 'Content-Type: application/json' \ --data '{}' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/LogService.ClearLog' ``` ```bash title="Clear Operation Logs with a Token" curl --request POST \ --header 'X-Xsrf-Token: ' \ --header 'Content-Type: application/json' \ --data '{}' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/LogService.ClearLog' ```

Response Example

200 OK
{
"@odata.type": "#Message.v1_1_1.Message",
"Timestamp": "1785836138",
"MessageId": "Base.1.11.0.Success",
"Message": "The request completed successfully.",
"MessageArgs": [],
"MessageSeverity": "OK",
"Severity": "",
"Oem": null,
"RelatedProperties": null,
"Resolution": "None"
}

Response Fields

FieldTypeDescription
@odata.typestringOData type of the Redfish message resource.
TimestampstringTimestamp recorded when the server generated the response.
MessageIdstringMessage identifier; Base.1.11.0.Success on success.
MessagestringDescription of the request processing result.
MessageArgsarrayList of message formatting arguments; an empty array in this response.
MessageSeveritystringMessage severity level; OK on success.
SeveritystringSeverity field retained for compatibility; an empty string in this response.
Oemobject | nullOEM extension message; null in this response.
RelatedPropertiesarray | nullProperty paths related to the message; null in this response.
ResolutionstringRecommended resolution; None on success.

2.7 Exporting Logs

Export a specific log type as a .xlsx file in Microsoft Excel 2007+ format.

ItemContent
MethodPOST
Path/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/Actions/Oem/Firefly/LogService.ExportLog
ActionInfo/redfish/v1/Managers/{ManagerId}/LogServices/{LogServiceId}/ExportLogActionInfo
Request bodyEmpty request body
AuthenticationHTTP Basic Auth or X-Xsrf-Token
Required privilegeOemDebug
Success status code200 OK
Response typeXLSX binary file
The current proxy rejects POST requests without `Content-Length` and returns `502 POST or PUT without Content-Length`. The curl example uses `--data ''` to send a zero-length request body, ensuring the request includes `Content-Length: 0`. Basic Auth Token ```bash title="Export Operation Logs" curl --request POST \ --user ':' \ --header 'Content-Type: application/json' \ --data '' \ --output 'bmc_OperateLog.xlsx' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/Oem/Firefly/LogService.ExportLog' ``` ```bash title="Export Operation Logs with a Token" curl --request POST \ --header 'X-Xsrf-Token: ' \ --header 'Content-Type: application/json' \ --data '' \ --output 'bmc_OperateLog.xlsx' \ '://:/redfish/v1/Managers/bmc/LogServices/OperateLog/Actions/Oem/Firefly/LogService.ExportLog' ```

Response Example

On the real device, both Basic Auth and Token returned 200 OK; the downloaded file passed ZIP structure inspection and was identified as a Microsoft Excel 2007+ file. The following are the real response headers from the Basic Auth verification:

200 OK
Content-Disposition: attachment;filename=bmc_OperateLog.xlsx
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Length: 7561

Response Fields

Response HeaderTypeDescription
Content-DispositionstringDownload filename, in the format {ManagerId}_{LogServiceId}.xlsx.
Content-TypestringMedia type of the XLSX file.
Content-LengthnumberSize of the exported file in bytes; varies with log content.
The first row of the XLSX contains eight columns: `ID`, `CreatedAt`, `Level`, `caller`, `msg`, `type`, `log_id`, and `corename`. The export operation adds a new operation log entry, so querying the total log count again may show an increase compared to before the export.