{ "components": { "schemas": { "ApiVersion": { "properties": { "major": { "format": "int64", "minimum": 0, "type": "integer" }, "minor": { "format": "int64", "minimum": 0, "type": "integer" }, "patch": { "format": "int64", "minimum": 0, "type": "integer" } }, "required": [ "major", "minor", "patch" ], "type": "object" }, "ApplyContractKeyRequest": { "properties": { "contract_key": { "description": "Licence contract key string", "type": "string" } }, "required": [ "contract_key" ], "type": "object" }, "ApplyContractKeyResponse": { "properties": { "successful": { "description": "Flag if custom license was successfully installed", "type": "boolean" } }, "required": [ "successful" ], "type": "object" }, "AutoPauseMode": { "description": "Automatic pause mode starts with fans going with last fan speed used for mining and slowly decreases speed down to 0%", "type": "object" }, "AutoUpgradeSchedule": { "properties": { "schedule_type": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ScheduleType" } ] } }, "type": "object" }, "BasesPoints": { "description": "Structure representing Basis Points", "properties": { "bsp": { "description": "A basis point is one hundredth of 1 percentage point.\nFor example: 1bps = 0.01%, 250bps = 2.5%", "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "bsp" ], "type": "object" }, "BooleanConstraint": { "properties": { "default": { "type": "boolean" } }, "required": [ "default" ], "type": "object" }, "BosVersion": { "description": "Structure to handle BOS version", "properties": { "bos_plus": { "type": "boolean" }, "current": { "type": "string" }, "major": { "type": "string" } }, "required": [ "current", "major", "bos_plus" ], "type": "object" }, "Component": { "properties": { "index": { "format": "int32", "minimum": 0, "type": "integer" }, "name": { "type": "string" } }, "required": [ "name", "index" ], "type": "object" }, "CoolingAutoMode": { "description": "The temperature control modes.\nMiner software tries to regulate the fan speed so that miner temperature is approximately at the target temperature.\nThe allowed temperature range is 0-200 degree Celsius.", "properties": { "dangerous_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature threshold at which BOSMiner shuts down in order to prevent overheating and damaging the miner." } ] }, "hot_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature threshold at which the fans start to run at 100%." } ] }, "max_fan_speed": { "description": "Maximum fan speed expressed as a value between 0 and 100. max_fan_speed must be greater than min_fan_speed.", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "min_fan_speed": { "description": "Minimum fan speed expressed as a value between 0 and 100. min_fan_speed must be less than max_fan_speed.", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "minimum_required_fans": { "description": "Minimum number of fans required to have BOSminer operational.", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "pause_mode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PauseMode", "description": "Pause mode used for fans when the miner is paused" } ] }, "target_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature that the miner will try to maintain" } ] } }, "type": "object" }, "CoolingConfiguration": { "properties": { "minimum_required_fans": { "deprecated": true, "description": "Minimum number of fans required to have BOSminer operational.", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "mode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CoolingConfigurationMode" } ] } }, "type": "object" }, "CoolingConfigurationMode": { "oneOf": [ { "properties": { "auto": { "$ref": "#/components/schemas/CoolingAutoMode" } }, "required": [ "auto" ], "type": "object" }, { "properties": { "manual": { "$ref": "#/components/schemas/CoolingManualMode" } }, "required": [ "manual" ], "type": "object" }, { "properties": { "disabled": { "$ref": "#/components/schemas/CoolingDisabledMode" } }, "required": [ "disabled" ], "type": "object" }, { "properties": { "immersion": { "$ref": "#/components/schemas/CoolingImmersionMode" } }, "required": [ "immersion" ], "type": "object" }, { "properties": { "hydro": { "$ref": "#/components/schemas/CoolingHydroMode" } }, "required": [ "hydro" ], "type": "object" } ] }, "CoolingConstraints": { "properties": { "dangerous_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TemperatureConstraints" } ] }, "default_cooling_mode": { "format": "int32", "type": "integer" }, "default_fan_pause_mode": { "format": "int32", "type": [ "integer", "null" ] }, "default_fan_pause_runtime": { "format": "int32", "type": [ "integer", "null" ] }, "fan_pause_runtime_limited_duration_s": { "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "fan_speed_ratio": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DoubleConstraints" } ] }, "hot_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TemperatureConstraints" } ] }, "max_fan_speed": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UInt32Constraints" } ] }, "min_fan_speed": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UInt32Constraints" } ] }, "minimum_required_fans": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UInt32Constraints" } ] }, "pause_cooldown_fan_speed_ratio": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DoubleConstraints" } ] }, "target_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TemperatureConstraints" } ] } }, "required": [ "default_cooling_mode" ], "type": "object" }, "CoolingDisabledMode": { "description": "Disable temperature control. May be dangerous.\nDEPRECATED: Since Braiins OS 24.XX it is not possible to disable cooling mode.", "properties": { "fan_speed_ratio": { "description": "User defined fan speed expressed as a ratio between 0.0 and 1.0\nwhere 0.0 means completely turned off and\n1.0 means running at full speed possible", "format": "double", "type": [ "number", "null" ] } }, "type": "object" }, "CoolingHydroMode": { "properties": { "dangerous_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] }, "hot_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] }, "target_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] } }, "type": "object" }, "CoolingImmersionMode": { "properties": { "dangerous_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] }, "hot_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] }, "target_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] } }, "type": "object" }, "CoolingManualMode": { "description": "Fans are kept at a fixed, user-defined speed, no matter the temperature.", "properties": { "dangerous_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature threshold at which BOSMiner shuts down in order to prevent overheating and damaging the miner." } ] }, "fan_speed_ratio": { "description": "User defined fan speed expressed as a ratio between 0.0 and 1.0\nwhere 0.0 means completely turned off and\n1.0 means running at full speed possible", "format": "double", "type": [ "number", "null" ] }, "hot_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature threshold at which the fans start to run at 100%." } ] }, "minimum_required_fans": { "description": "Minimum number of fans required to have BOSminer operational.", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "pause_mode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PauseMode", "description": "Pause mode" } ] }, "target_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature that the miner will try to maintain when power scaling is enabled" } ] } }, "type": "object" }, "DPSTargetTarget": { "oneOf": [ { "description": "Power target settings for Dynamic Performance Scaling", "properties": { "powertarget": { "$ref": "#/components/schemas/DpsPowerTarget", "description": "Power target settings for Dynamic Performance Scaling" } }, "required": [ "powertarget" ], "type": "object" }, { "description": "Hashrate target settings for Dynamic Performance Scaling", "properties": { "hashratetarget": { "$ref": "#/components/schemas/DpsHashrateTarget", "description": "Hashrate target settings for Dynamic Performance Scaling" } }, "required": [ "hashratetarget" ], "type": "object" } ] }, "DailySchedule": { "properties": { "time": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UpgradeTime" } ] } }, "type": "object" }, "Dhcp": { "type": "object" }, "DoubleConstraints": { "properties": { "default": { "format": "double", "type": "number" }, "max": { "format": "double", "type": "number" }, "min": { "format": "double", "type": "number" } }, "required": [ "default", "min", "max" ], "type": "object" }, "DpsConfiguration": { "properties": { "enabled": { "description": "Flag if Dynamic Performance Scaling is enabled", "type": [ "boolean", "null" ] }, "hashrate_step": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Dynamic Performance Scaling hashrate step" } ] }, "min_hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Dynamic Performance Scaling minimal hashrate target" } ] }, "min_power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Dynamic Performance Scaling minimal power target" } ] }, "mode": { "description": "Dynamic Performance Scaling mode", "format": "int32", "type": [ "integer", "null" ] }, "on_start_target_percent": { "description": "Initial target for Dynamic Performance Scaling in percent", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "power_step": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Dynamic Performance Scaling power step" } ] }, "shutdown_duration": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Hours", "description": "Dynamic Performance Scaling shutdown duration" } ] }, "shutdown_enabled": { "description": "Flag if shutdown for Dynamic Performance Scaling is enabled", "type": [ "boolean", "null" ] } }, "type": "object" }, "DpsConstraints": { "properties": { "enabled": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BooleanConstraint", "description": "Dynamic Performance Scaling enabled default value" } ] }, "hashrate_step": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HashrateConstraints", "description": "Dynamic Performance Scaling hashrate step constraints" } ] }, "min_hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HashrateConstraints", "description": "Dynamic Performance Scaling minimal hashrate target constraints" } ] }, "min_power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PowerConstraints", "description": "Dynamic Performance Scaling minimal power target constraints" } ] }, "mode": { "description": "Dynamic Performance Scaling default mode", "format": "int32", "type": "integer" }, "on_start_target_percent": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UInt32Constraints", "description": "Initial target for Dynamic Performance Scaling in percent" } ] }, "power_step": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PowerConstraints", "description": "Dynamic Performance Scaling power step constraints" } ] }, "shutdown_duration": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DurationConstraints", "description": "Dynamic Performance Scaling shutdown duration constraints" } ] }, "shutdown_enabled": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BooleanConstraint", "description": "Dynamic Performance Scaling enabled shutdown default value" } ] } }, "required": [ "mode" ], "type": "object" }, "DpsHashrateTarget": { "properties": { "hashrate_step": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Dynamic Performance Scaling hashrate step" } ] }, "min_hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Dynamic Performance Scaling minimal hashrate target" } ] } }, "type": "object" }, "DpsPowerTarget": { "properties": { "min_power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Dynamic Performance Scaling minimal power target" } ] }, "power_step": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Dynamic Performance Scaling power step" } ] } }, "type": "object" }, "DpsTarget": { "properties": { "target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DPSTargetTarget" } ] } }, "type": "object" }, "DurationConstraints": { "properties": { "default": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Hours" } ] }, "max": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Hours" } ] }, "min": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Hours" } ] } }, "type": "object" }, "EnableHashboardsResponse": { "properties": { "hashboards": { "description": "Hashboards enable state", "items": { "$ref": "#/components/schemas/HashboardEnableState" }, "type": "array" } }, "required": [ "hashboards" ], "type": "object" }, "ErrorCode": { "properties": { "code": { "type": "string" }, "hint": { "type": "string" }, "reason": { "type": "string" } }, "required": [ "code", "reason", "hint" ], "type": "object" }, "ExpiredLicense": { "properties": { "contract_name": { "description": "Contract name", "type": "string" }, "dev_fee": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BasesPoints", "description": "Defines how much DevFee should be generated by the device." } ] }, "type": { "description": "License type", "format": "int32", "type": "integer" } }, "required": [ "type", "contract_name" ], "type": "object" }, "FanState": { "description": "Structure which contain info about one specific miner fan.", "properties": { "position": { "description": "Fan positions/ID", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "rpm": { "description": "Actual fan RPM (Revolutions/Rotation Per Minute)", "format": "int32", "minimum": 0, "type": "integer" }, "target_speed_ratio": { "description": "Actual fan speed ratio(PWM) in range 0.0 - 1.0", "format": "double", "type": [ "number", "null" ] } }, "required": [ "rpm" ], "type": "object" }, "FixedShareRatio": { "description": "Structure for fixed share ratio load balance strategy\nFixed share ratio is value between 0.0 to 1.0 where 1.0 represents that all work is\ngenerated from the group", "properties": { "value": { "format": "double", "type": "number" } }, "required": [ "value" ], "type": "object" }, "Frequency": { "properties": { "hertz": { "format": "double", "type": "number" } }, "required": [ "hertz" ], "type": "object" }, "FrequencyConstraints": { "properties": { "default": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency" } ] }, "max": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency" } ] }, "min": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency" } ] } }, "type": "object" }, "GetAutoUpgradeStatusResponse": { "properties": { "enabled": { "type": "boolean" }, "last_execution": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Timestamp" } ] }, "next_execution": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Timestamp" } ] }, "schedule": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/AutoUpgradeSchedule" } ] } }, "required": [ "enabled" ], "type": "object" }, "GetConstraintsResponse": { "properties": { "cooling_constraints": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CoolingConstraints", "description": "Cooling constraints" } ] }, "dps_constraints": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DpsConstraints", "description": "Dynamic Performance scaling constraints" } ] }, "hashboards_constraints": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HashboardConstraints", "description": "Hashboard constraints" } ] }, "tuner_constraints": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TunerConstraints", "description": "Tuner constraints" } ] } }, "type": "object" }, "GetCoolingStateResponse": { "description": "Response to get current fan states and\ntemperature measurements", "properties": { "fans": { "description": "All Fans state", "items": { "$ref": "#/components/schemas/FanState" }, "type": "array" }, "highest_temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TemperatureSensor", "description": "Sensor with current highest temperature" } ] } }, "required": [ "fans" ], "type": "object" }, "GetErrorsResponse": { "properties": { "errors": { "description": "Array of errors", "items": { "$ref": "#/components/schemas/MinerError" }, "type": "array" } }, "required": [ "errors" ], "type": "object" }, "GetHashboardsResponse": { "properties": { "hashboards": { "description": "All HB details", "items": { "$ref": "#/components/schemas/Hashboard" }, "type": "array" } }, "required": [ "hashboards" ], "type": "object" }, "GetLicenseStateResponse": { "properties": { "state": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/State" } ] } }, "type": "object" }, "GetMinerConfigurationResponse": { "description": "Structure to return miner configuration", "properties": { "dps": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DpsConfiguration", "description": "DPS configuration" } ] }, "hashboard_config": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HashboardPerformanceConfiguration", "description": "Hashchain configuration" } ] }, "pool_groups": { "description": "Pool groups configuration", "items": { "$ref": "#/components/schemas/PoolGroupConfiguration" }, "type": "array" }, "temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CoolingConfiguration", "description": "Cooling configuration" } ] }, "tuner": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TunerConfiguration", "description": "Tuner configuration" } ] } }, "required": [ "pool_groups" ], "type": "object" }, "GetMinerDetailsResponse": { "description": "Structure to handle system details", "properties": { "bos_mode": { "description": "BOS Mode", "format": "int32", "type": "integer" }, "bos_version": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BosVersion", "description": "OS Version" } ] }, "bosminer_uptime_s": { "description": "Bosminer uptime. `0` means bosminer is not running", "format": "int64", "minimum": 0, "type": "integer" }, "control_board_soc_family": { "description": "Control board soc family", "format": "int32", "type": "integer" }, "hostname": { "description": "Hostname", "type": "string" }, "kernel_version": { "description": "Kernel version", "type": "string" }, "mac_address": { "description": "MAC address", "type": "string" }, "miner_identity": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/MinerIdentity", "description": "Miner identity" } ] }, "platform": { "description": "Miner platform", "format": "int32", "type": "integer" }, "psu_info": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PsuInfo", "description": "PSU details" } ] }, "serial_number": { "description": "Miner serial number", "type": [ "string", "null" ] }, "status": { "description": "Miner status", "format": "int32", "type": "integer" }, "sticker_hashrate": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate", "description": "Miner hashrate declared by manufacturer" } ] }, "system_uptime": { "deprecated": true, "description": "Deprecated: Use system_uptime_s", "format": "int64", "minimum": 0, "type": "integer" }, "system_uptime_s": { "description": "System uptime", "format": "int64", "minimum": 0, "type": "integer" }, "uid": { "description": "Miner ID", "type": "string" } }, "required": [ "uid", "platform", "bos_mode", "hostname", "mac_address", "system_uptime", "bosminer_uptime_s", "system_uptime_s", "status", "kernel_version", "control_board_soc_family" ], "type": "object" }, "GetMinerStatsResponse": { "properties": { "miner_stats": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/WorkSolverStats", "description": "Miner hashrate statistics" } ] }, "pool_stats": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PoolStats", "description": "Aggregate pool statistic" } ] }, "power_stats": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/MinerPowerStats", "description": "Miner power stats" } ] } }, "type": "object" }, "GetMinerStatusResponse": { "properties": { "status": { "format": "int32", "type": "integer" } }, "required": [ "status" ], "type": "object" }, "GetNetworkInfoResponse": { "description": "Response message for GetCurrentNetworkConfiguration\nRepresents the current network configuration for the default network interface.\nOnly IPv4 is supported.", "properties": { "default_gateway": { "description": "Default gateway/route for the interface", "type": [ "string", "null" ] }, "dns_servers": { "description": "List of configured DNS servers", "items": { "type": "string" }, "type": "array" }, "hostname": { "description": "Miner hostname", "type": [ "string", "null" ] }, "mac_address": { "description": "MAC address of the network interface", "type": [ "string", "null" ] }, "name": { "description": "Name of the network interface", "type": "string" }, "networks": { "description": "List of assigned IP addresses", "items": { "$ref": "#/components/schemas/IpNetwork" }, "type": "array" }, "protocol": { "description": "Network protocol", "format": "int32", "type": [ "integer", "null" ] } }, "required": [ "name", "dns_servers", "networks" ], "type": "object" }, "GetSupportArchive": { "properties": { "format": { "$ref": "#/components/schemas/SupportArchiveFormat" } }, "required": [ "format" ], "type": "object" }, "GetTunerStateResponse": { "description": "Response with the current tuner details", "properties": { "mode_state": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ModeState" } ] }, "overall_tuner_state": { "description": "Tuner state", "format": "int32", "type": "integer" } }, "required": [ "overall_tuner_state" ], "type": "object" }, "GigaHashrate": { "properties": { "gigahash_per_second": { "format": "double", "type": "number" } }, "required": [ "gigahash_per_second" ], "type": "object" }, "Hashboard": { "description": "Structure to handle HB details", "properties": { "board_name": { "description": "Hashboard board name", "type": [ "string", "null" ] }, "board_temp": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Board temperature" } ] }, "chip_type": { "description": "Hashboard chip type", "type": [ "string", "null" ] }, "chips_count": { "description": "Number of chips", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "current_frequency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency", "description": "Current HB frequency in Hz" } ] }, "current_voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Current HB voltage in volts" } ] }, "enabled": { "description": "Flag if HB is enabled", "type": "boolean" }, "highest_chip_temp": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TemperatureSensor", "description": "Highest chip temperature" } ] }, "highest_outlet_temp": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Highest outlet temperature" } ] }, "id": { "description": "Hashboard ID", "type": "string" }, "lowest_inlet_temp": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Lowest inlet temperature" } ] }, "model": { "description": "Hashboard model", "type": [ "string", "null" ] }, "serial_number": { "description": "Hashboard serial number", "type": [ "string", "null" ] }, "stats": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/WorkSolverStats", "description": "Hashboard stats" } ] } }, "required": [ "id", "enabled" ], "type": "object" }, "HashboardConfig": { "properties": { "enabled": { "description": "Flag if HB si enabled", "type": [ "boolean", "null" ] }, "frequency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency", "description": "Hashboard frequency" } ] }, "id": { "description": "Hashboard id", "type": "string" }, "voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Hashboard voltage" } ] } }, "required": [ "id" ], "type": "object" }, "HashboardConstraints": { "properties": { "enabled": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BooleanConstraint", "description": "Default value for flag if hashboards are enabled" } ] }, "frequency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/FrequencyConstraints", "description": "HB frequency constraints" } ] }, "hashboard_ids": { "description": "List of possible HB indices", "items": { "type": "string" }, "type": "array" }, "quick_ramping_time_s": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UInt32Constraints", "description": "Quick ramping time constraints in seconds. Used in curtailments" } ] }, "voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/VoltageConstraints", "description": "HB frequency constraints" } ] } }, "required": [ "hashboard_ids" ], "type": "object" }, "HashboardEnableState": { "properties": { "id": { "description": "Hashboard ID", "type": "string" }, "is_enabled": { "description": "Flag if hashboard is enabled or not", "type": "boolean" } }, "required": [ "id", "is_enabled" ], "type": "object" }, "HashboardPerformanceConfiguration": { "properties": { "global_frequency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency", "description": "Common frequency for all HB" } ] }, "global_voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Common voltage for all HB" } ] }, "hashboards": { "description": "Per hashboard frequency/voltage. It has higher priority than global one", "items": { "$ref": "#/components/schemas/HashboardConfig" }, "type": "array" }, "quick_ramping_time_down_s": { "description": "Quick ramping time down in seconds. Used in curtailments", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "quick_ramping_time_up_s": { "description": "Quick ramping time up in seconds. Used in curtailments", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] } }, "required": [ "hashboards" ], "type": "object" }, "HashboardPerformanceSettings": { "properties": { "frequency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency", "description": "Hashboard frequency" } ] }, "id": { "description": "Hashboard id", "type": "string" }, "voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Hashboard voltage" } ] } }, "required": [ "id" ], "type": "object" }, "HashrateConstraints": { "properties": { "default": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate" } ] }, "max": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate" } ] }, "min": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate" } ] } }, "type": "object" }, "HashrateTargetMode": { "properties": { "hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Hashrate target" } ] } }, "type": "object" }, "HashrateTargetModeState": { "properties": { "current_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Current hashrate target" } ] }, "profile": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HashrateTargetProfile", "description": "Currently used profile" } ] } }, "type": "object" }, "HashrateTargetProfile": { "description": "Structure to handle hashrate target profile", "properties": { "created": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Timestamp", "description": "Creation timestamp" } ] }, "estimated_power_consumption": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Estimated power consumption" } ] }, "measured_hashrate": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate", "description": "Measured hashrate" } ] }, "target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Tuned hashrate target" } ] } }, "type": "object" }, "Hours": { "properties": { "hours": { "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "hours" ], "type": "object" }, "IpNetwork": { "properties": { "address": { "type": "string" }, "netmask": { "type": "string" } }, "required": [ "address", "netmask" ], "type": "object" }, "LimitedLicense": { "type": "object" }, "ListTargetProfilesRequest": { "type": "object" }, "LoadBalanceStrategy": { "description": "Group load balance strategy", "oneOf": [ { "properties": { "quota": { "$ref": "#/components/schemas/Quota" } }, "required": [ "quota" ], "type": "object" }, { "properties": { "fixedshareratio": { "$ref": "#/components/schemas/FixedShareRatio" } }, "required": [ "fixedshareratio" ], "type": "object" } ] }, "LoginRequest": { "description": "Request for login action.", "properties": { "password": { "type": "string" }, "username": { "type": "string" } }, "required": [ "username", "password" ], "type": "object" }, "LoginResponse": { "description": "Response for login action.", "properties": { "timeout_s": { "description": "Authentication token validity/timeout in seconds.\nToken validity refreshed to this value with each request.", "format": "int32", "minimum": 0, "type": "integer" }, "token": { "description": "Token to be used for authentication", "type": "string" } }, "required": [ "token", "timeout_s" ], "type": "object" }, "ManualPauseMode": { "description": "Manual pause mode runs with defined fixed fans speed and either turns off after a certain period of time\nor runs indefinitely according to fan_runtime settings", "properties": { "fan_pause_runtime": { "description": "Controls how long fans run at the fixed speed before turning off.
\n1 = FAN_PAUSE_RUNTIME_LIMITED - fans run for a limited duration (see `fan_pause_runtime_limited_duration_s` in `CoolingConstraints`) then turn off
\n2 = FAN_PAUSE_RUNTIME_INDEFINITE - fans run indefinitely at the fixed speed until miner is resumed", "format": "int32", "type": [ "integer", "null" ] }, "pause_cooldown_fan_speed_ratio": { "description": "User defined pause cooldown fan speed expressed as a ratio between 0.0 and 1.0\nwhere 0.0 means completely turned off and\n1.0 means running at full speed possible", "format": "double", "type": [ "number", "null" ] } }, "type": "object" }, "ManualPerformanceMode": { "properties": { "global_frequency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Frequency", "description": "Global hashboard frequency" } ] }, "global_voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Global hashboard voltage" } ] }, "hashboards": { "description": "Per hashboard frequency/voltage. It has higher priority than global one", "items": { "$ref": "#/components/schemas/HashboardPerformanceSettings" }, "type": "array" } }, "required": [ "hashboards" ], "type": "object" }, "MegaHashrate": { "properties": { "megahash_per_second": { "format": "double", "type": "number" } }, "required": [ "megahash_per_second" ], "type": "object" }, "MinerError": { "properties": { "components": { "items": { "$ref": "#/components/schemas/Component" }, "type": "array" }, "error_codes": { "items": { "$ref": "#/components/schemas/ErrorCode" }, "type": "array" }, "message": { "type": "string" }, "timestamp": { "type": "string" } }, "required": [ "timestamp", "message", "error_codes", "components" ], "type": "object" }, "MinerIdentity": { "properties": { "brand": { "format": "int32", "type": "integer" }, "miner_model": { "type": "string" }, "model": { "deprecated": true, "description": "Deprecated: Use miner_model instead.\nThis field is no longer supported.", "format": "int32", "type": "integer" }, "name": { "type": "string" } }, "required": [ "brand", "model", "name", "miner_model" ], "type": "object" }, "MinerPowerStats": { "properties": { "approximated_consumption": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Miner approximated power consumption." } ] }, "efficiency": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PowerEfficiency", "description": "Miner power efficiency" } ] } }, "type": "object" }, "ModeState": { "oneOf": [ { "properties": { "powertargetmodestate": { "$ref": "#/components/schemas/PowerTargetModeState" } }, "required": [ "powertargetmodestate" ], "type": "object" }, { "properties": { "hashratetargetmodestate": { "$ref": "#/components/schemas/HashrateTargetModeState" } }, "required": [ "hashratetargetmodestate" ], "type": "object" } ] }, "MonthlySchedule": { "properties": { "day_of_month": { "description": "Artificially limited to 1-28 to cover all months", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "time": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UpgradeTime" } ] } }, "type": "object" }, "NetworkConfiguration": { "properties": { "hostname": { "description": "Hostname", "type": "string" }, "protocol": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/NetworkConfigurationProtocol", "description": "Network protocol" } ] } }, "required": [ "hostname" ], "type": "object" }, "NetworkConfigurationProtocol": { "description": "Network protocol", "oneOf": [ { "properties": { "dhcp": { "$ref": "#/components/schemas/Dhcp" } }, "required": [ "dhcp" ], "type": "object" }, { "properties": { "static": { "$ref": "#/components/schemas/Static" } }, "required": [ "static" ], "type": "object" } ] }, "NoneLicense": { "properties": { "time_to_restricted": { "description": "BOS Initialization timeout - number of seconds elapsed since bosminer start\ni.e., number of seconds BOS will start mining in restricted mode burning 5% of hashrate\nFor more, see Section 3.10 of ", "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "time_to_restricted" ], "type": "object" }, "PauseMode": { "description": "Pause mode to control fans behaviour after you pause the miner", "properties": { "mode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PauseModeMode" } ] } }, "type": "object" }, "PauseModeMode": { "oneOf": [ { "properties": { "auto": { "$ref": "#/components/schemas/AutoPauseMode" } }, "required": [ "auto" ], "type": "object" }, { "properties": { "manual": { "$ref": "#/components/schemas/ManualPauseMode" } }, "required": [ "manual" ], "type": "object" } ] }, "PerformanceModeMode": { "oneOf": [ { "properties": { "manualmode": { "$ref": "#/components/schemas/ManualPerformanceMode" } }, "required": [ "manualmode" ], "type": "object" }, { "properties": { "tunermode": { "$ref": "#/components/schemas/TunerPerformanceMode" } }, "required": [ "tunermode" ], "type": "object" } ] }, "Pool": { "description": "Structure handle information about configured pool", "properties": { "active": { "description": "Flag if pool is active (running)", "type": "boolean" }, "alive": { "description": "Flag if pool is alive", "type": "boolean" }, "enabled": { "description": "Flag if pool connection is enabled", "type": "boolean" }, "stats": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PoolStats", "description": "Pool stats" } ] }, "uid": { "description": "Pool connection id", "type": "string" }, "url": { "description": "Pool connection URL", "type": "string" }, "user": { "description": "Pool connection user", "type": "string" } }, "required": [ "uid", "url", "user", "enabled", "alive", "active" ], "type": "object" }, "PoolConfiguration": { "description": "Structure handle information about configured pool", "properties": { "enabled": { "description": "Flag if pool connection is enabled", "type": [ "boolean", "null" ] }, "password": { "description": "Pool connection password if set", "type": [ "string", "null" ] }, "uid": { "description": "Pool connection id
\nIf this struct is used when creating a new Pool Configuration, this field must not be specified (it will be generated)
\nIf this struct is used when updating an existing configuration, this field must be specified and represents unique id of pool which will be updated", "type": [ "string", "null" ] }, "url": { "description": "Pool connection URL", "type": "string" }, "user": { "description": "Pool connection user", "type": "string" } }, "required": [ "url", "user" ], "type": "object" }, "PoolGroup": { "description": "Structure handle all pool group details", "properties": { "name": { "description": "Group name", "type": "string" }, "pools": { "description": "Group pools", "items": { "$ref": "#/components/schemas/Pool" }, "type": "array" }, "strategy": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Strategy", "description": "Load balancing strategy" } ] }, "uid": { "description": "Group id", "type": "string" } }, "required": [ "name", "pools", "uid" ], "type": "object" }, "PoolGroupConfiguration": { "description": "Structure handle configured mining group", "properties": { "load_balance_strategy": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/LoadBalanceStrategy", "description": "Group load balance strategy" } ] }, "name": { "description": "Group name", "type": "string" }, "pools": { "description": "Group pools", "items": { "$ref": "#/components/schemas/PoolConfiguration" }, "type": "array" }, "uid": { "description": "Group id
\ngRPC: If this struct is used when creating a new Pool Group, this field must not be specified (it will be generated)
\ngRPC: If this struct is used when updating an existing Pool Group, this field must be specified and represents unique id of Pool group which will be updated
\nREST: If this struct is used when creating a new Pool Group, this field must not be specified (it will be generated)
\nREST: If this struct is used when updating an existing Pool Group, this field must not be specified, uid in URL must be specified and represents unique id of Pool group which will be updated", "type": [ "string", "null" ] } }, "required": [ "name", "pools" ], "type": "object" }, "PoolStats": { "description": "Structure handle pool statistics", "properties": { "accepted_shares": { "description": "Accepted shares", "format": "int64", "minimum": 0, "type": "integer" }, "best_share": { "deprecated": true, "description": "Best share (deprecated: may overflow for values > 2^64-1, use best_share_str instead)", "format": "int64", "minimum": 0, "type": "integer" }, "best_share_str": { "description": "Best share as decimal string", "type": "string" }, "generated_work": { "description": "Generated work", "format": "int64", "minimum": 0, "type": "integer" }, "last_difficulty": { "description": "Last difficulty", "format": "int64", "minimum": 0, "type": "integer" }, "last_share_time": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Timestamp", "description": "Last share time" } ] }, "rejected_shares": { "description": "Rejected shares", "format": "int64", "minimum": 0, "type": "integer" }, "stale_shares": { "description": "Stale shares", "format": "int64", "minimum": 0, "type": "integer" } }, "required": [ "accepted_shares", "rejected_shares", "stale_shares", "last_difficulty", "best_share", "generated_work", "best_share_str" ], "type": "object" }, "Power": { "properties": { "watt": { "format": "int64", "minimum": 0, "type": "integer" } }, "required": [ "watt" ], "type": "object" }, "PowerConstraints": { "properties": { "default": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power" } ] }, "max": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power" } ] }, "min": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power" } ] } }, "type": "object" }, "PowerEfficiency": { "properties": { "joule_per_terahash": { "format": "double", "type": "number" } }, "required": [ "joule_per_terahash" ], "type": "object" }, "PowerTargetMode": { "properties": { "power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Power target" } ] } }, "type": "object" }, "PowerTargetModeState": { "properties": { "current_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Current power target" } ] }, "profile": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PowerTargetProfile", "description": "current power target profile" } ] } }, "type": "object" }, "PowerTargetProfile": { "description": "Structure to handle power target profile", "properties": { "created": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Timestamp", "description": "Creation timestamp" } ] }, "estimated_power_consumption": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Estimated power consumption" } ] }, "measured_hashrate": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate", "description": "Measured hashrate" } ] }, "target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Tuned power target" } ] } }, "type": "object" }, "PsuInfo": { "properties": { "fw_version": { "description": "PSU firmware version identifier", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "max_voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Maximal voltage that can be set in volts" } ] }, "min_voltage": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage", "description": "Minimal voltage that can be set in volts" } ] }, "model_name": { "description": "PSU model/version name in human-readable form (e.g. \"APW121215b\")", "type": [ "string", "null" ] }, "serial_number": { "description": "PSU serial number (e.g. \"DGAH335BDJDJG0782\")", "type": [ "string", "null" ] }, "version": { "description": "PSU hardware version identifier", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] } }, "type": "object" }, "QuickRampingResponse": { "properties": { "down_s": { "description": "Quick ramping time down in seconds when PAUSING the miner. Sets how fast the miner will power off. Used in curtailments", "format": "int32", "minimum": 0, "type": "integer" }, "up_s": { "description": "Quick ramping time up in seconds when RESUMING the miner. Sets how fast the miner will power up. Used in curtailments", "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "up_s", "down_s" ], "type": "object" }, "Quota": { "description": "Structure for quota load balance strategy", "properties": { "value": { "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "value" ], "type": "object" }, "RealHashrate": { "description": "Structure which contains HB real hashrate stats.", "properties": { "last_15m": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_15s": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_1h": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_1m": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_24h": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_30m": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_30s": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_5m": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "last_5s": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] }, "since_restart": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate" } ] } }, "type": "object" }, "ScheduleType": { "oneOf": [ { "properties": { "daily": { "$ref": "#/components/schemas/DailySchedule" } }, "required": [ "daily" ], "type": "object" }, { "properties": { "weekly": { "$ref": "#/components/schemas/WeeklySchedule" } }, "required": [ "weekly" ], "type": "object" }, { "properties": { "monthly": { "$ref": "#/components/schemas/MonthlySchedule" } }, "required": [ "monthly" ], "type": "object" } ] }, "SetCoolingModeRequestMode": { "description": "Cooling mode to set. If the cooling mode is changed, all fields that aren't relevant to the new mode are reset to default values.\nIf the cooling mode values are updated, the new values are applied to the current mode.", "oneOf": [ { "properties": { "auto": { "$ref": "#/components/schemas/CoolingAutoMode" } }, "required": [ "auto" ], "type": "object" }, { "properties": { "manual": { "$ref": "#/components/schemas/CoolingManualMode" } }, "required": [ "manual" ], "type": "object" }, { "properties": { "immersion": { "$ref": "#/components/schemas/CoolingImmersionMode" } }, "required": [ "immersion" ], "type": "object" }, { "properties": { "hydro": { "$ref": "#/components/schemas/CoolingHydroMode" } }, "required": [ "hydro" ], "type": "object" } ] }, "SetCoolingModeResponseMode": { "description": "The resulting cooling mode", "oneOf": [ { "properties": { "auto": { "$ref": "#/components/schemas/CoolingAutoMode" } }, "required": [ "auto" ], "type": "object" }, { "properties": { "manual": { "$ref": "#/components/schemas/CoolingManualMode" } }, "required": [ "manual" ], "type": "object" }, { "properties": { "immersion": { "$ref": "#/components/schemas/CoolingImmersionMode" } }, "required": [ "immersion" ], "type": "object" }, { "properties": { "hydro": { "$ref": "#/components/schemas/CoolingHydroMode" } }, "required": [ "hydro" ], "type": "object" } ] }, "SetDpsRequestRest": { "properties": { "enable": { "description": "Flag if Dynamic Performance Scaling should be enabled", "type": [ "boolean", "null" ] }, "enable_shutdown": { "description": "Flag if shutdown for Dynamic Performance Scaling should be enabled", "type": [ "boolean", "null" ] }, "mode": { "description": "Dynamic Performance Scaling mode", "format": "int32", "type": [ "integer", "null" ] }, "on_start_target_percent": { "description": "Initial target for Dynamic Performance Scaling in percent", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "save_action": { "deprecated": true, "description": "Save action (deprecated, value is ignored)", "format": "int32", "type": [ "integer", "null" ] }, "shutdown_duration": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Hours", "description": "Dynamic Performance Scaling shutdown duration" } ] }, "target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DpsTarget", "description": "Dynamic Performance Scaling target" } ] } }, "type": "object" }, "SetDpsResponse": { "properties": { "enabled": { "description": "Flag if Dynamic Performance Scaling is enabled", "type": [ "boolean", "null" ] }, "hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DpsHashrateTarget", "description": "Dynamic Performance Scaling hashrate target" } ] }, "mode": { "description": "Dynamic Performance Scaling mode", "format": "int32", "type": [ "integer", "null" ] }, "on_start_target_percent": { "description": "Initial target for Dynamic Performance Scaling in percent", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DpsPowerTarget", "description": "Dynamic Performance Scaling Power target" } ] }, "shutdown_duration": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Hours", "description": "Dynamic Performance Scaling shutdown duration" } ] }, "shutdown_enabled": { "description": "Flag if shutdown for Dynamic Performance Scaling should be enabled", "type": [ "boolean", "null" ] } }, "type": "object" }, "SetNetworkConfigurationRequest": { "properties": { "hostname": { "description": "Hostname. Existing value will be preserved if this field is not set.", "type": [ "string", "null" ] }, "protocol": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/SetNetworkConfigurationRequestProtocol", "description": "Network protocol. Existing value will be preserved if this field is not set." } ] } }, "type": "object" }, "SetNetworkConfigurationRequestProtocol": { "description": "Network protocol. Existing value will be preserved if this field is not set.", "oneOf": [ { "properties": { "dhcp": { "$ref": "#/components/schemas/Dhcp" } }, "required": [ "dhcp" ], "type": "object" }, { "properties": { "static": { "$ref": "#/components/schemas/Static" } }, "required": [ "static" ], "type": "object" } ] }, "SetPasswordRequest": { "description": "Request for set password action.", "properties": { "password": { "type": [ "string", "null" ] } }, "type": "object" }, "SetQuickRampingRequestRest": { "properties": { "down_s": { "format": "int32", "minimum": 0, "type": "integer" }, "up_s": { "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "up_s", "down_s" ], "type": "object" }, "SetRelativeTargetRequestRest": { "properties": { "percentage": { "description": "Percentage value to set (e.g., 85.5 for 85.5%)", "format": "double", "type": "number" }, "reference": { "description": "Reference point from which the percentage is calculated
\n1 = nominal - use nominal (sticker) power/hashrate target as the reference
\n2 = min - use minimal power/hashrate target as the reference
\n3 = max - use maximal power/hashrate target as the reference
\n4 = current - use current power/hashrate target as the reference
", "format": "int32", "type": "integer" } }, "required": [ "percentage", "reference" ], "type": "object" }, "State": { "oneOf": [ { "properties": { "none": { "$ref": "#/components/schemas/NoneLicense" } }, "required": [ "none" ], "type": "object" }, { "properties": { "limited": { "$ref": "#/components/schemas/LimitedLicense" } }, "required": [ "limited" ], "type": "object" }, { "properties": { "valid": { "$ref": "#/components/schemas/ValidLicense" } }, "required": [ "valid" ], "type": "object" }, { "properties": { "expired": { "$ref": "#/components/schemas/ExpiredLicense" } }, "required": [ "expired" ], "type": "object" } ] }, "Static": { "properties": { "address": { "description": "IP address", "type": "string" }, "dns_servers": { "description": "DNS servers", "items": { "type": "string" }, "type": "array" }, "gateway": { "description": "Gateway", "type": "string" }, "netmask": { "description": "Netmask", "type": "string" } }, "required": [ "address", "netmask", "gateway", "dns_servers" ], "type": "object" }, "Strategy": { "description": "Load balancing strategy", "oneOf": [ { "properties": { "quota": { "$ref": "#/components/schemas/Quota" } }, "required": [ "quota" ], "type": "object" }, { "properties": { "fixedshareratio": { "$ref": "#/components/schemas/FixedShareRatio" } }, "required": [ "fixedshareratio" ], "type": "object" } ] }, "SupportArchiveFormat": { "description": "Enumeration for support archive format", "enum": [ "unspecified", "zip", "bos", "zipencrypted" ], "type": "string" }, "SystemUpgradeMetadata": { "properties": { "disable_cleanup": { "description": "Flag if should disable cleanup of directory, in which uploaded firmware is stored (default is false and do cleanup)", "type": "boolean" }, "discard_settings": { "description": "Flag if should discard settings (default is false and keep settings)", "type": "boolean" }, "hash": { "description": "Firmware hash (SHA256 hex encoded)", "type": "string" }, "size": { "description": "Firmware size (bytes)", "format": "int64", "minimum": 0, "type": "integer" } }, "required": [ "size", "hash", "discard_settings", "disable_cleanup" ], "type": "object" }, "SystemUpgradeRequestRest": { "properties": { "data": { "items": { "items": { "format": "int32", "minimum": 0, "type": "integer" }, "type": "array" }, "type": "array" }, "metadata": { "$ref": "#/components/schemas/SystemUpgradeMetadata" } }, "required": [ "metadata", "data" ], "type": "object" }, "Temperature": { "properties": { "degree_c": { "format": "double", "type": "number" } }, "required": [ "degree_c" ], "type": "object" }, "TemperatureConstraints": { "properties": { "default": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] }, "max": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] }, "min": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature" } ] } }, "type": "object" }, "TemperatureSensor": { "properties": { "id": { "description": "Sensor id", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] }, "location": { "description": "Sensor location", "format": "int32", "type": "integer" }, "temperature": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Temperature", "description": "Temperature" } ] } }, "required": [ "location" ], "type": "object" }, "TeraHashrate": { "properties": { "terahash_per_second": { "format": "double", "type": "number" } }, "required": [ "terahash_per_second" ], "type": "object" }, "Timestamp": { "description": "Custom version of google.protobuf.Timestamp\nIt is used only during compilation to replace google.protobuf.Timestamp to\nenable traits for de/serialization and for generating documentation", "properties": { "nanos": { "format": "int32", "type": "integer" }, "seconds": { "format": "int64", "type": "integer" } }, "required": [ "seconds", "nanos" ], "type": "object" }, "TunerConfiguration": { "properties": { "enabled": { "description": "Flag if tuner is enabled", "type": [ "boolean", "null" ] }, "hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TeraHashrate", "description": "Tuner hashrate target" } ] }, "power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Power", "description": "Tuner power target" } ] }, "tuner_mode": { "description": "Tuner mode", "format": "int32", "type": [ "integer", "null" ] } }, "type": "object" }, "TunerConstraints": { "properties": { "default_mode": { "description": "Default tuner mode", "format": "int32", "type": "integer" }, "enabled": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BooleanConstraint", "description": "Tuner enabled enabled default value" } ] }, "hashrate_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/HashrateConstraints", "description": "Tuner hashrate target mode constraints" } ] }, "power_target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PowerConstraints", "description": "Tuner power target mode constraints" } ] } }, "required": [ "default_mode" ], "type": "object" }, "TunerPerformanceMode": { "properties": { "target": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TunerPerformanceModeTarget" } ] } }, "type": "object" }, "TunerPerformanceModeTarget": { "oneOf": [ { "description": "Tuner power target", "properties": { "powertarget": { "$ref": "#/components/schemas/PowerTargetMode", "description": "Tuner power target" } }, "required": [ "powertarget" ], "type": "object" }, { "description": "Tuner hashrate target", "properties": { "hashratetarget": { "$ref": "#/components/schemas/HashrateTargetMode", "description": "Tuner hashrate target" } }, "required": [ "hashratetarget" ], "type": "object" } ] }, "UInt32Constraints": { "properties": { "default": { "format": "int32", "minimum": 0, "type": "integer" }, "max": { "format": "int32", "minimum": 0, "type": "integer" }, "min": { "format": "int32", "minimum": 0, "type": "integer" } }, "required": [ "default", "min", "max" ], "type": "object" }, "UpdateAutoUpgradeConfigRequest": { "properties": { "enabled": { "type": "boolean" }, "schedule": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/AutoUpgradeSchedule" } ] } }, "required": [ "enabled" ], "type": "object" }, "UpdateHashboards": { "properties": { "enable": { "type": "boolean" }, "hashboard_ids": { "items": { "type": "string" }, "type": "array" } }, "required": [ "hashboard_ids", "enable" ], "type": "object" }, "UpgradeTime": { "properties": { "hours": { "description": "Hours of day in 24 hour format. Must be from 0 to 23.", "format": "int32", "minimum": 0, "type": "integer" }, "minutes": { "description": "Minutes of hour of day. Must be from 0 to 59.", "format": "int32", "minimum": 0, "type": "integer" }, "seconds": { "description": "Seconds of minutes of the time. Can be from 0 to 59.", "format": "int32", "minimum": 0, "type": [ "integer", "null" ] } }, "required": [ "hours", "minutes" ], "type": "object" }, "ValidLicense": { "properties": { "contract_name": { "description": "Contract name", "type": "string" }, "dev_fee": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BasesPoints", "description": "Defines how much DevFee should be generated by the device." } ] }, "time_to_restricted": { "description": "Current license expiration - number of seconds since the moment the license was received\ni.e., number of seconds BOS will start mining in restricted mode burning 15% of hashrate", "format": "int32", "minimum": 0, "type": "integer" }, "type": { "description": "License type", "format": "int32", "type": "integer" } }, "required": [ "type", "contract_name", "time_to_restricted" ], "type": "object" }, "Voltage": { "properties": { "volt": { "format": "double", "type": "number" } }, "required": [ "volt" ], "type": "object" }, "VoltageConstraints": { "properties": { "default": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage" } ] }, "max": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage" } ] }, "min": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/Voltage" } ] } }, "type": "object" }, "WeeklySchedule": { "properties": { "day_of_week": { "format": "int32", "type": [ "integer", "null" ] }, "time": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/UpgradeTime" } ] } }, "type": "object" }, "WorkSolverStats": { "description": "Structure to handle HB state", "properties": { "best_share": { "deprecated": true, "description": "Best share (deprecated: may overflow for values > 2^64-1, use best_share_str instead)", "format": "int64", "minimum": 0, "type": "integer" }, "best_share_str": { "description": "Best share as decimal string", "type": "string" }, "error_hashrate": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/MegaHashrate", "description": "Error hashrate" } ] }, "found_blocks": { "description": "Found blocks", "format": "int32", "minimum": 0, "type": "integer" }, "nominal_hashrate": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/GigaHashrate", "description": "Nominal hashrate" } ] }, "real_hashrate": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RealHashrate", "description": "Real hashrate" } ] } }, "required": [ "found_blocks", "best_share", "best_share_str" ], "type": "object" } } }, "info": { "contact": { "email": "help@braiins.com", "name": "Braiins", "url": "https://help.braiins.com" }, "description": "", "license": { "name": "" }, "title": "Braiins OS Public REST API", "version": "1.3.0" }, "openapi": "3.1.0", "paths": { "/api/v1/actions/factory-reset": { "put": { "description": "Performs Factory Reset.", "operationId": "factory_reset", "responses": { "204": { "description": "Successful response." } }, "summary": "Factory Reset", "tags": [ "Actions" ] } }, "/api/v1/actions/locate": { "get": { "description": "Gets locate device status.", "operationId": "getLocateDeviceStatus", "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if enabled." } }, "summary": "Get locate device status", "tags": [ "Actions" ] }, "put": { "description": "Sets locate device status (turn LED blinking on or off).", "operationId": "setLocateDeviceStatus", "requestBody": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Enable or disable.", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if enabled." } }, "summary": "Set locate device status", "tags": [ "Actions" ] } }, "/api/v1/actions/pause": { "put": { "description": "Pauses mining.", "operationId": "pauseMining", "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if was already paused." } }, "summary": "Pause mining", "tags": [ "Actions" ] } }, "/api/v1/actions/reboot": { "put": { "description": "Reboots mining.", "operationId": "reboot", "responses": { "204": { "description": "Successful response." } }, "summary": "Reboot", "tags": [ "Actions" ] } }, "/api/v1/actions/restart": { "put": { "description": "Restarts mining.", "operationId": "restart", "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if was already running." } }, "summary": "Restart", "tags": [ "Actions" ] } }, "/api/v1/actions/resume": { "put": { "description": "Resumes mining.", "operationId": "resumeMining", "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if was already mining." } }, "summary": "Resume mining", "tags": [ "Actions" ] } }, "/api/v1/actions/start": { "put": { "description": "Starts mining.", "operationId": "start", "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if was already running." } }, "summary": "Start", "tags": [ "Actions" ] } }, "/api/v1/actions/stop": { "put": { "description": "Stops mining.", "operationId": "stop", "responses": { "200": { "content": { "application/json": { "schema": { "type": "boolean" } } }, "description": "Successful response containing bool if was already stopped." } }, "summary": "Stop", "tags": [ "Actions" ] } }, "/api/v1/auth/login": { "post": { "description": "Authenticates a user using their username and password. If the credentials are valid, a token is returned, which should be included in the `Authorization` header of subsequent requests.", "operationId": "login", "requestBody": { "content": { "application/json": { "example": { "password": "1234", "username": "root" }, "schema": { "$ref": "#/components/schemas/LoginRequest" } } }, "description": "User login credentials, including username and password.", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginResponse" } } }, "description": "Successful login. Returns an authentication token." } }, "summary": "User login", "tags": [ "Authentication" ] } }, "/api/v1/auth/password": { "put": { "description": "Allows a user to set or update their password. To remove the password, set the `password` field to `null`. This operation requires authentication.", "operationId": "setPassword", "requestBody": { "content": { "application/json": { "example": { "password": "1234" }, "schema": { "$ref": "#/components/schemas/SetPasswordRequest" } } }, "description": "Payload containing the new password. If the password field is null, the password will be removed.", "required": true }, "responses": { "204": { "description": "Password successfully set or removed." }, "400": { "description": "Invalid request payload." }, "401": { "description": "Unauthorized. User must be authenticated." }, "500": { "description": "Internal server error." } }, "summary": "Set or remove user password", "tags": [ "Authentication" ] } }, "/api/v1/configuration/constraints": { "get": { "description": "", "operationId": "getConstraints", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetConstraintsResponse" } } }, "description": "Successful response containing miner configuration constraints" } }, "summary": "Get constraints", "tags": [ "Configuration" ] } }, "/api/v1/configuration/miner": { "get": { "description": "", "operationId": "getMinerConfiguration", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMinerConfigurationResponse" } } }, "description": "Successful response containing miner configuration" } }, "summary": "Get miner configuration", "tags": [ "Configuration" ] } }, "/api/v1/cooling/mode": { "put": { "description": "Sets the active cooling mode for the miner. The mode can be set to auto, manual, immersion, or hydro.", "operationId": "setCoolingMode", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetCoolingModeRequestMode" } } }, "description": "Cooling mode to activate. Can be one of: auto, manual, immersion, or hydro.", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetCoolingModeResponseMode" } } }, "description": "Successful response containing active cooling mode" } }, "summary": "Set cooling mode", "tags": [ "Cooling" ] } }, "/api/v1/cooling/state": { "get": { "description": "Retrieves the current cooling state of the miner, including temperature measurements and the state of all fans.", "operationId": "getCoolingState", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetCoolingStateResponse" } } }, "description": "Successful response containing information about temperature measurements and fans states" } }, "summary": "Get cooling state", "tags": [ "Cooling" ] } }, "/api/v1/docs/openapi.json": { "get": { "description": "Returns the OpenAPI specification in JSON format, which can be used by Redoc or Swagger UI for documentation.", "operationId": "getOpenApiSchema", "responses": { "200": { "content": { "application/json": {} }, "description": "Openapi schema in a JSON format" } }, "summary": "Retrieve OpenAPI JSON schema", "tags": [ "Documentation" ] } }, "/api/v1/license/apply-contract-key": { "put": { "description": "Apply custom contract key.", "operationId": "applyContractKey", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyContractKeyRequest" } } }, "description": "Custom contract key to be set.", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyContractKeyResponse" } } }, "description": "Successful response with successful flag to indicate success." } }, "summary": "Apply custom contract key", "tags": [ "License" ] } }, "/api/v1/license/license": { "get": { "description": "Retrieves the current license state of the miner. The license may be in one of several states: none, limited, valid, or expired.", "operationId": "getLicenseState", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetLicenseStateResponse" } } }, "description": "Successful response containing information about license" } }, "summary": "Get license state", "tags": [ "License" ] } }, "/api/v1/miner/details": { "get": { "description": "Retrieves detailed information about the miner, such as hardware model, firmware version, serial number, and other identifying data.", "operationId": "getMinerDetails", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMinerDetailsResponse" } } }, "description": "Successful response containing detailed miner information." } }, "summary": "Get miner details", "tags": [ "Miner" ] } }, "/api/v1/miner/errors": { "get": { "description": "Retrieves a list of errors reported by the miner, including timestamps, messages, error codes, and affected components.", "operationId": "getMinerErrors", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetErrorsResponse" } } }, "description": "Successful response containing an array of miner errors." } }, "summary": "Get miner errors", "tags": [ "Miner" ] } }, "/api/v1/miner/hw/hashboards": { "get": { "description": "Retrieves detailed information about all hashboards in the miner, including their status, temperature, voltage, frequency, and statistics.", "operationId": "getHashboards", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetHashboardsResponse" } } }, "description": "Successful response containing a list of hashboards." } }, "summary": "Get hashboard details", "tags": [ "Miner" ] }, "patch": { "description": "Enables or disables one or more hashboards based on the provided IDs. Useful for toggling hardware components during runtime or diagnostics.", "operationId": "updateHashboards", "requestBody": { "content": { "application/json": { "example": { "enable": false, "hashboard_ids": [ "1", "3" ] }, "schema": { "$ref": "#/components/schemas/UpdateHashboards" } } }, "description": "List of hashboard IDs to update and the desired enabled state.", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnableHashboardsResponse" } } }, "description": "Successful response with the updated enable state of hashboards." } }, "summary": "Enable or disable hashboards", "tags": [ "Miner" ] } }, "/api/v1/miner/log/{log_type}": { "get": { "description": "Streams the merged log file for a given log type. Supported log types: errors, bosminer, boser, monitor, syslog, dmesg.", "operationId": "getLog", "parameters": [ { "description": "Log type to download", "in": "path", "name": "log_type", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/octet-stream": { "schema": { "items": { "format": "int32", "minimum": 0, "type": "integer" }, "type": "array" } } }, "description": "Stream of log data." } }, "summary": "Stream log file", "tags": [ "Miner" ] } }, "/api/v1/miner/stats": { "get": { "description": "Retrieves runtime statistics about the miner, including pool performance, hashrate metrics, and power consumption.", "operationId": "getMinerStats", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMinerStatsResponse" } } }, "description": "Successful response containing miner statistics." } }, "summary": "Get miner statistics", "tags": [ "Miner" ] } }, "/api/v1/miner/status": { "get": { "description": "Streams the current status of the miner in real-time. The status can be one of: `unspecified`, `not_started`, `normal`, `paused`, `suspended`, or `restricted`. The response is a continuous JSON stream.", "operationId": "getMinerStatus", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMinerStatusResponse" } } }, "description": "Stream of miner status updates." } }, "summary": "Stream miner status updates", "tags": [ "Miner" ] } }, "/api/v1/miner/support-archive": { "get": { "description": "Streams support archive.", "operationId": "getSupportArchive", "requestBody": { "content": { "application/json": { "example": { "format": "zipencrypted" }, "schema": { "$ref": "#/components/schemas/GetSupportArchive" } } }, "description": "Support archive format. Format can be one of: 'zip' (compressed zip format), 'bos' (BOS custom format) or 'zipencrypted' (compressed encrypted zip format).", "required": true }, "responses": { "200": { "content": { "application/octet-stream": { "schema": { "items": { "format": "int32", "minimum": 0, "type": "integer" }, "type": "array" } } }, "description": "Stream of support archive." } }, "summary": "Stream support archive", "tags": [ "Miner" ] } }, "/api/v1/network/": { "get": { "description": "Fetches detailed information about the miner's network, including interfaces, MAC addresses, DNS settings, and default gateway.", "operationId": "getNetwork", "responses": { "200": { "content": { "application/json": { "example": { "default_gateway": "192.168.1.1", "dns_servers": [ "8.8.8.8", "8.8.4.4" ], "hostname": "miner-01.local", "mac_address": "00:1A:2B:3C:4D:5E", "name": "eth0", "networks": [ { "address": "192.168.1.100", "netmask": "255.255.255.0" } ], "protocol": 1 }, "schema": { "$ref": "#/components/schemas/GetNetworkInfoResponse" } } }, "description": "Successful response containing miner network information." } }, "summary": "Retrieve miner network information", "tags": [ "Network" ] } }, "/api/v1/network/configuration": { "get": { "description": "Fetches the miner's network configuration, including interface settings, IP configurations, and routing details.", "operationId": "getNetworkConfiguration", "responses": { "200": { "content": { "application/json": { "example": { "hostname": "miner-01.local", "protocol": { "dhcp": {} } }, "schema": { "$ref": "#/components/schemas/NetworkConfiguration" } } }, "description": "Successful response containing network configuration." } }, "summary": "Get network configuration", "tags": [ "Network" ] }, "patch": { "description": "Updates the miner's network configuration. Users can modify one or more fields, such as the hostname, network protocol, or DNS settings.", "operationId": "updateNetworkConfiguration", "requestBody": { "content": { "application/json": { "example": { "hostname": "miner-01.local", "protocol": { "dhcp": {} } }, "schema": { "$ref": "#/components/schemas/SetNetworkConfigurationRequest" } } }, "description": "Partial or full network configuration update request.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "hostname": "miner-01.local", "protocol": { "dhcp": {} } }, "schema": { "$ref": "#/components/schemas/NetworkConfiguration" } } }, "description": "Successfully updated network configuration." } }, "summary": "Update network configuration", "tags": [ "Network" ] } }, "/api/v1/performance/dps": { "put": { "description": "Sets DPS for the miner, including DPS enable flag, DPS shutdown enable flag, DPS shutdown duration, DPS target, DPS mode and initial target for DPS.", "operationId": "setDps", "requestBody": { "content": { "application/json": { "example": { "enable": true, "enable_shutdown": true, "mode": 1, "on_start_target_percent": 100, "save_action": null, "shutdown_duration": { "hours": 4 }, "target": { "target": { "powertarget": { "min_power_target": { "watt": 3210 }, "power_step": { "watt": 20 } } } } }, "schema": { "$ref": "#/components/schemas/SetDpsRequestRest" } } }, "description": "Save action (deprecated), DPS enable flag, DPS shutdown enable flag, DPS shutdown duration, DPS target, DPS mode and initial target for DPS.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "hashrate_target": null, "mode": 1, "on_start_target_percent": 100, "power_target": { "min_power_target": { "watt": 3210 }, "power_step": { "watt": 20 } }, "shutdown_duration": { "hours": 4 }, "shutdown_enabled": true }, "schema": { "$ref": "#/components/schemas/SetDpsResponse" } } }, "description": "Successful response containing DPS settings." } }, "summary": "Set DPS (Dynamic Performance Scaling)", "tags": [ "Performance" ] } }, "/api/v1/performance/hashrate-target": { "put": { "description": "Sets hashrate target for the miner.", "operationId": "setHashrateTarget", "requestBody": { "content": { "application/json": { "example": { "terahash_per_second": 190 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Hashrate target to be set.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "terahash_per_second": 190 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Successful response containing hashrate target (Th/s)." } }, "summary": "Set hashrate target", "tags": [ "Performance" ] } }, "/api/v1/performance/hashrate-target/decrement": { "patch": { "description": "Decrements hashrate target for the miner by a set value.", "operationId": "decrementHashrateTarget", "requestBody": { "content": { "application/json": { "example": { "terahash_per_second": 10 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Hashrate target decrement.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "terahash_per_second": 190 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Successful response containing hashrate target (Th/s)." } }, "summary": "Decrement hashrate target", "tags": [ "Performance" ] } }, "/api/v1/performance/hashrate-target/default": { "put": { "description": "Sets default hashrate target for the miner.", "operationId": "setDefaultHashrateTarget", "responses": { "200": { "content": { "application/json": { "example": { "terahash_per_second": 190 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Successful response containing hashrate target (Th/s)." } }, "summary": "Set default hashrate target", "tags": [ "Performance" ] } }, "/api/v1/performance/hashrate-target/increment": { "patch": { "description": "Increments hashrate target for the miner by a set value.", "operationId": "incrementHashrateTarget", "requestBody": { "content": { "application/json": { "example": { "terahash_per_second": 10 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Hashrate target increment.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "terahash_per_second": 190 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Successful response containing hashrate target (Th/s)." } }, "summary": "Increment hashrate target", "tags": [ "Performance" ] } }, "/api/v1/performance/hashrate-target/relative": { "patch": { "description": "Sets hashrate target to a relative reference by a set percentage.", "operationId": "relativeHashrateTarget", "requestBody": { "content": { "application/json": { "example": { "percentage": 85.5, "reference": 1 }, "schema": { "$ref": "#/components/schemas/SetRelativeTargetRequestRest" } } }, "description": "Set relative target", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "terahash_per_second": 190 }, "schema": { "$ref": "#/components/schemas/TeraHashrate" } } }, "description": "Successful response containing hashrate target (Th/s)." } }, "summary": "Set hashrate target to a relative reference", "tags": [ "Performance" ] } }, "/api/v1/performance/mode": { "get": { "description": "Fetches miner's performance mode, including manual or tuner mode.", "operationId": "getPerformanceMode", "responses": { "200": { "content": { "application/json": { "example": { "tunermode": { "target": { "powertarget": { "power_target": { "watt": 2000 } } } } }, "schema": { "$ref": "#/components/schemas/PerformanceModeMode" } } }, "description": "Successful response containing performance mode." } }, "summary": "Get performance mode", "tags": [ "Performance" ] }, "put": { "description": "Sets performance mode for the miner.", "operationId": "setPerformanceMode", "requestBody": { "content": { "application/json": { "example": { "tunermode": { "target": { "powertarget": { "power_target": { "watt": 2000 } } } } }, "schema": { "$ref": "#/components/schemas/PerformanceModeMode" } } }, "description": "Performance mode.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "tunermode": { "target": { "powertarget": { "power_target": { "watt": 2000 } } } } }, "schema": { "$ref": "#/components/schemas/PerformanceModeMode" } } }, "description": "Successful response containing performance mode." } }, "summary": "Set performance mode", "tags": [ "Performance" ] } }, "/api/v1/performance/power-target": { "put": { "description": "Sets power target for the miner.", "operationId": "setPowerTarget", "requestBody": { "content": { "application/json": { "example": { "watt": 3730 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Power target to be set.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "watt": 3730 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Successful response containing power target (watt)." } }, "summary": "Set power target", "tags": [ "Performance" ] } }, "/api/v1/performance/power-target/decrement": { "patch": { "description": "Decrements power target for the miner by a set value.", "operationId": "decrementPowerTarget", "requestBody": { "content": { "application/json": { "example": { "watt": 100 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Power target decrement.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "watt": 3730 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Successful response containing power target (watt)." } }, "summary": "Decrement power target", "tags": [ "Performance" ] } }, "/api/v1/performance/power-target/default": { "put": { "description": "Sets default power target for the miner.", "operationId": "setDefaultPowerTarget", "responses": { "200": { "content": { "application/json": { "example": { "watt": 3730 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Successful response containing power target (watt)." } }, "summary": "Set default power target", "tags": [ "Performance" ] } }, "/api/v1/performance/power-target/increment": { "patch": { "description": "Increments power target for the miner by a set value.", "operationId": "incrementPowerTarget", "requestBody": { "content": { "application/json": { "example": { "watt": 100 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Save action and power target increment.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "watt": 3730 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Successful response containing power target (watt)." } }, "summary": "Increment power target", "tags": [ "Performance" ] } }, "/api/v1/performance/power-target/relative": { "patch": { "description": "Sets power target to a relative reference by a set percentage.", "operationId": "relativePowerTarget", "requestBody": { "content": { "application/json": { "example": { "percentage": 85.5, "reference": 1 }, "schema": { "$ref": "#/components/schemas/SetRelativeTargetRequestRest" } } }, "description": "Set relative target", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "watt": 3730 }, "schema": { "$ref": "#/components/schemas/Power" } } }, "description": "Successful response containing power target (watt)." } }, "summary": "Set power target to a relative reference", "tags": [ "Performance" ] } }, "/api/v1/performance/quick-ramping": { "put": { "description": "Sets quick ramping up and down times for the miner (used in curtailments).", "operationId": "setQuickRamping", "requestBody": { "content": { "application/json": { "example": { "down_s": 2, "up_s": 5 }, "schema": { "$ref": "#/components/schemas/SetQuickRampingRequestRest" } } }, "description": "Quick ramping up and down times to be set.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "down_s": 2, "up_s": 5 }, "schema": { "$ref": "#/components/schemas/QuickRampingResponse" } } }, "description": "Successful response containing quick ramping up and down times (s)." } }, "summary": "Set quick ramping", "tags": [ "Performance" ] } }, "/api/v1/performance/quick-ramping/default": { "put": { "description": "Sets default quick ramping up and down times for the miner (used in curtailments).", "operationId": "setDefaultQuickRamping", "responses": { "200": { "content": { "application/json": { "example": { "down_s": 2, "up_s": 5 }, "schema": { "$ref": "#/components/schemas/QuickRampingResponse" } } }, "description": "Successful response containing quick ramping up and down times (s)." } }, "summary": "Set default quick ramping", "tags": [ "Performance" ] } }, "/api/v1/performance/target-profiles": { "get": { "description": "Fetches miner's target profiles, including power and hashrate target profiles.", "operationId": "getTargetProfiles", "responses": { "200": { "content": { "application/json": { "example": { "hashrate_target_profiles": [], "power_target_profiles": [ { "created": { "nanos": 0, "seconds": 1744000000 }, "estimated_power_consumption": { "watt": 2000 }, "measured_hashrate": { "gigahash_per_second": 12345 }, "target": { "watt": 2000 } } ] }, "schema": { "$ref": "#/components/schemas/ListTargetProfilesRequest" } } }, "description": "Successful response containing target profiles." } }, "summary": "Get target profiles", "tags": [ "Performance" ] } }, "/api/v1/performance/tuned-profiles": { "delete": { "description": "Removes tuner profiles. If it was mining before stops and then starts mining.", "operationId": "removeTunedProfiles", "responses": { "204": { "description": "Tuned profiles successfully removed." } }, "summary": "Remove tuner profiles", "tags": [ "Performance" ] } }, "/api/v1/performance/tuner-state": { "get": { "description": "Fetches miner's tuner state, including overall tuner state and power or hashrate mode both including profile and current target.", "operationId": "getTunerState", "responses": { "200": { "content": { "application/json": { "example": { "mode_state": { "powertargetmodestate": { "current_target": { "watt": 3000 }, "profile": { "created": { "nanos": 0, "seconds": 1744000000 }, "estimated_power_consumption": { "watt": 3000 }, "measured_hashrate": { "gigahash_per_second": 12345 }, "target": { "watt": 3000 } } } }, "overall_tuner_state": 1 }, "schema": { "$ref": "#/components/schemas/GetTunerStateResponse" } } }, "description": "Successful response containing tuner state." } }, "summary": "Get tuner state", "tags": [ "Performance" ] } }, "/api/v1/pools/": { "get": { "description": "Fetches the list of all configured pool groups, including their pools, load balancing strategy, and status.", "operationId": "getPools", "responses": { "200": { "content": { "application/json": { "example": [ { "name": "High Performance", "pools": [ { "active": true, "alive": true, "enabled": true, "stats": { "accepted_shares": 1000, "best_share": 1200000, "best_share_str": "1200000", "generated_work": 5000000, "last_difficulty": 800000, "last_share_time": { "nanos": 255441271, "seconds": 1741260910 }, "rejected_shares": 10, "stale_shares": 5 }, "uid": "pool1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "strategy": { "quota": { "value": 70 } }, "uid": "group1" } ], "schema": { "items": { "$ref": "#/components/schemas/PoolGroup" }, "type": "array" } } }, "description": "A list of pool groups with their respective pools and configurations." } }, "summary": "Get Pool Groups", "tags": [ "Pools" ] }, "post": { "description": "Creates a new pool group with a specified name, list of pools, and load balancing strategy.", "operationId": "createPoolGroup", "requestBody": { "content": { "application/json": { "example": { "load_balance_strategy": { "fixedshareratio": { "value": 50 } }, "name": "Pools", "pools": [ { "enabled": true, "password": "xxxx", "uid": "1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "uid": "group1" }, "schema": { "$ref": "#/components/schemas/PoolGroupConfiguration" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "load_balance_strategy": { "fixedshareratio": { "value": 50 } }, "name": "Pools", "pools": [ { "enabled": true, "password": "xxxx", "uid": "1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "uid": "group1" }, "schema": { "$ref": "#/components/schemas/PoolGroupConfiguration" } } }, "description": "Pool group successfully created" } }, "summary": "Create a new pool group", "tags": [ "Pools" ] } }, "/api/v1/pools/batch": { "put": { "description": "Sets the pool groups with new configurations, replacing the existing ones.", "operationId": "setBatchPools", "requestBody": { "content": { "application/json": { "example": [ { "load_balance_strategy": { "fixedshareratio": { "value": 50 } }, "name": "Pools", "pools": [ { "enabled": true, "password": "xxxx", "uid": "1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "uid": "group1" } ], "schema": { "items": { "$ref": "#/components/schemas/PoolGroupConfiguration" }, "type": "array" } } }, "description": "A list of pool group configurations to set.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": [ { "load_balance_strategy": { "fixedshareratio": { "value": 50 } }, "name": "Pools", "pools": [ { "enabled": true, "password": "xxxx", "uid": "1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "uid": "group1" } ], "schema": { "items": { "$ref": "#/components/schemas/PoolGroupConfiguration" }, "type": "array" } } }, "description": "Successfully set pool groups." } }, "summary": "Set multiple pool groups", "tags": [ "Pools" ] } }, "/api/v1/pools/{uid}": { "delete": { "description": "Deletes a pool group configuration based on the provided UID.", "operationId": "deletePool", "parameters": [ { "description": "The UID of the pool group to be deleted.", "in": "path", "name": "uid", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Pool group successfully deleted." } }, "summary": "Delete a pool group by UID", "tags": [ "Pools" ] }, "put": { "description": "Updates the specified pool group with a new name, list of pools, and load balancing strategy.", "operationId": "updatePoolGroup", "parameters": [ { "description": "The UID of the pool to be updated.", "in": "path", "name": "uid", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "example": { "load_balance_strategy": { "fixedshareratio": { "value": 50 } }, "name": "Pools", "pools": [ { "enabled": true, "password": "xxxx", "uid": "1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "uid": "group1" }, "schema": { "$ref": "#/components/schemas/PoolGroupConfiguration" } } }, "description": "Pool group configuration to be updated.", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "load_balance_strategy": { "fixedshareratio": { "value": 50 } }, "name": "Pools", "pools": [ { "enabled": true, "password": "xxxx", "uid": "1", "url": "stratum+tcp://pool.example.com:3333", "user": "miner1" } ], "uid": "group1" }, "schema": { "$ref": "#/components/schemas/PoolGroupConfiguration" } } }, "description": "Pool group successfully updated." }, "404": { "description": "Pool group not found" } }, "summary": "Update an existing pool group", "tags": [ "Pools" ] } }, "/api/v1/upgrade/auto-upgrade": { "get": { "description": "Get the current auto-upgrade configuration.", "operationId": "getAutoUpgradeStatus", "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "last_execution": { "nanos": 0, "seconds": 1744085400 }, "next_execution": { "nanos": 0, "seconds": 1744171800 }, "schedule": { "schedule_type": { "daily": { "time": { "hours": 3, "minutes": 30, "seconds": null } } } } }, "schema": { "$ref": "#/components/schemas/GetAutoUpgradeStatusResponse" } } }, "description": "Successful response with auto-upgrade settings" } }, "summary": "Get auto-upgrade settings", "tags": [ "Upgrade" ] }, "patch": { "description": "Configure auto-upgrade settings.", "operationId": "updateAutoUpgradeConfig", "requestBody": { "content": { "application/json": { "example": { "enabled": true, "schedule": { "schedule_type": { "daily": { "time": { "hours": 3, "minutes": 30, "seconds": 21 } } } } }, "schema": { "$ref": "#/components/schemas/UpdateAutoUpgradeConfigRequest" } } }, "description": "Auto-upgrade configuration", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "enabled": true, "next_execution": { "nanos": 0, "seconds": 1744171800 } } } }, "description": "Auto-upgrade settings updated successfully" } }, "summary": "Set auto-upgrade settings", "tags": [ "Upgrade" ] } }, "/api/v1/upgrade/restore-stock": { "post": { "description": "Uninstalls BraiinsOS and restores the miner to its original stock firmware. After initial checks pass, the response is returned and the restoration continues in the background. The device will become unreachable as the process proceeds. Not supported on all platforms (e.g. BMM) or SD card installations.", "operationId": "restoreStock", "responses": { "204": { "description": "Successful response." }, "409": { "description": "Another system task is already in progress." }, "500": { "description": "Internal server error." }, "501": { "description": "Uninstall is not supported on this platform." } }, "summary": "Restore stock", "tags": [ "Upgrade" ] } }, "/api/v1/upgrade/system-upgrade": { "post": { "description": "Performs system upgrade.", "operationId": "systemUpgrade", "requestBody": { "content": { "multipart/form-data": { "example": { "data": [ [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ], "metadata": { "disable_cleanup": false, "discard_settings": false, "hash": "fcdb4b423f4e5283afa249d762ef6aef150e91fccd810d43e5e719d14512dec7", "size": 16 } }, "schema": { "$ref": "#/components/schemas/SystemUpgradeRequestRest" } } }, "description": "Stream of metadata and data. First message of the stream has to be `metadata`. Additional messages of the stream have to be `data`.", "required": true }, "responses": { "204": { "description": "Successful response." }, "409": { "description": "Another system task is already in progress." }, "500": { "description": "Internal server error." } }, "summary": "System upgrade", "tags": [ "Upgrade" ] } }, "/api/v1/version/": { "get": { "description": "Returns current API version with informations about major, minor and patch version numbers.", "operationId": "getApiVersion", "responses": { "200": { "content": { "application/json": { "example": { "major": 1, "minor": 3, "patch": 0 }, "schema": { "$ref": "#/components/schemas/ApiVersion" } } }, "description": "Major version number - breaking changesMinor version number - backwards compatible changesPatch version number - bug fix changes" } }, "summary": "Get API version", "tags": [ "Version" ] } } }, "servers": [ { "url": "http://miner/" } ] }