openapi: 3.2.0
info:
title: Braiins OS Public REST Configuration API
description: ''
contact:
name: Braiins
url: https://help.braiins.com
email: help@braiins.com
license:
name: ''
version: 1.7.0
servers:
- url: http://miner/
tags:
- name: Configuration
paths:
/api/v1/configuration/constraints:
get:
tags:
- Configuration
summary: Get constraints
description: ''
operationId: getConstraints
responses:
'200':
description: Successful response containing miner configuration constraints
content:
application/json:
schema:
$ref: '#/components/schemas/GetConstraintsResponse'
/api/v1/configuration/miner:
get:
tags:
- Configuration
summary: Get miner configuration
description: ''
operationId: getMinerConfiguration
responses:
'200':
description: Successful response containing miner configuration
content:
application/json:
schema:
$ref: '#/components/schemas/GetMinerConfigurationResponse'
components:
schemas:
BooleanConstraint:
type: object
required:
- default
properties:
default:
type: boolean
GetMinerConfigurationResponse:
type: object
description: Structure to return miner configuration
required:
- pool_groups
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:
type: array
items:
$ref: '#/components/schemas/PoolGroupConfiguration'
description: Pool groups configuration
temperature:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/CoolingConfiguration'
description: Cooling configuration
tuner:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/TunerConfiguration'
description: Tuner configuration
CoolingAutoMode:
type: object
description: 'The temperature control modes.
Miner software tries to regulate the fan speed so that miner temperature is approximately at the target temperature.
The 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:
type:
- integer
- 'null'
format: int32
description: Maximum fan speed expressed as a value between 0 and 100. max_fan_speed must be greater than min_fan_speed.
minimum: 0
min_fan_speed:
type:
- integer
- 'null'
format: int32
description: Minimum fan speed expressed as a value between 0 and 100. min_fan_speed must be less than max_fan_speed.
minimum: 0
minimum_required_fans:
type:
- integer
- 'null'
format: int32
description: Minimum number of fans required to have BOSminer operational.
minimum: 0
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
PauseMode:
type: object
description: Pause mode to control fans behaviour after you pause the miner
properties:
mode:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/PauseModeMode'
CoolingImmersionMode:
type: object
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'
FrequencyConstraints:
type: object
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'
HashboardConfig:
type: object
required:
- id
properties:
enabled:
type:
- boolean
- 'null'
description: Flag if HB si enabled
frequency:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Frequency'
description: Hashboard frequency
id:
type: string
description: Hashboard id
voltage:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Voltage'
description: Hashboard voltage
CoolingManualMode:
type: object
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:
type:
- number
- 'null'
format: double
description: 'User defined fan speed expressed as a ratio between 0.0 and 1.0
where 0.0 means completely turned off and
1.0 means running at full speed possible'
hot_temperature:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Temperature'
description: Temperature threshold at which the fans start to run at 100%.
minimum_required_fans:
type:
- integer
- 'null'
format: int32
description: Minimum number of fans required to have BOSminer operational.
minimum: 0
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
CoolingConfigurationMode:
oneOf:
- type: object
required:
- auto
properties:
auto:
$ref: '#/components/schemas/CoolingAutoMode'
- type: object
required:
- manual
properties:
manual:
$ref: '#/components/schemas/CoolingManualMode'
- type: object
required:
- disabled
properties:
disabled:
$ref: '#/components/schemas/CoolingDisabledMode'
- type: object
required:
- immersion
properties:
immersion:
$ref: '#/components/schemas/CoolingImmersionMode'
- type: object
required:
- hydro
properties:
hydro:
$ref: '#/components/schemas/CoolingHydroMode'
HashboardConstraints:
type: object
required:
- hashboard_ids
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:
type: array
items:
type: string
description: List of possible HB indices
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
DpsConstraints:
type: object
required:
- mode
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:
type: integer
format: int32
description: Dynamic Performance Scaling default mode
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
ManualPauseMode:
type: object
description: 'Manual pause mode runs with defined fixed fans speed and either turns off after a certain period of time
or runs indefinitely according to fan_runtime settings'
properties:
fan_pause_runtime:
type:
- integer
- 'null'
format: int32
description: 'Controls how long fans run at the fixed speed before turning off.
1 = FAN_PAUSE_RUNTIME_LIMITED - fans run for a limited duration (see `fan_pause_runtime_limited_duration_s` in `CoolingConstraints`) then turn off
2 = FAN_PAUSE_RUNTIME_INDEFINITE - fans run indefinitely at the fixed speed until miner is resumed'
pause_cooldown_fan_speed_ratio:
type:
- number
- 'null'
format: double
description: 'User defined pause cooldown fan speed expressed as a ratio between 0.0 and 1.0
where 0.0 means completely turned off and
1.0 means running at full speed possible'
HashrateConstraints:
type: object
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'
AutoPauseMode:
type: object
description: Automatic pause mode starts with fans going with last fan speed used for mining and slowly decreases speed down to 0%
CoolingHydroMode:
type: object
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'
FixedShareRatio:
type: object
description: 'Structure for fixed share ratio load balance strategy
Fixed share ratio is value between 0.0 to 1.0 where 1.0 represents that all work is
generated from the group'
required:
- value
properties:
value:
type: number
format: double
VoltageConstraints:
type: object
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'
Frequency:
type: object
required:
- hertz
properties:
hertz:
type: number
format: double
TunerConstraints:
type: object
required:
- default_mode
properties:
default_mode:
type: integer
format: int32
description: Default tuner mode
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
PoolGroupConfiguration:
type: object
description: Structure handle configured mining group
required:
- name
- pools
properties:
load_balance_strategy:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/LoadBalanceStrategy'
description: Group load balance strategy
name:
type: string
description: Group name
pools:
type: array
items:
$ref: '#/components/schemas/PoolConfiguration'
description: Group pools
uid:
type:
- string
- 'null'
description: 'Group id
gRPC: If this struct is used when creating a new Pool Group, this field must not be specified (it will be generated)
gRPC: 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
REST: If this struct is used when creating a new Pool Group, this field must not be specified (it will be generated)
REST: 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'
Quota:
type: object
description: Structure for quota load balance strategy
required:
- value
properties:
value:
type: integer
format: int32
minimum: 0
CoolingConstraints:
type: object
required:
- default_cooling_mode
properties:
dangerous_temperature:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/TemperatureConstraints'
default_cooling_mode:
type: integer
format: int32
default_fan_pause_mode:
type:
- integer
- 'null'
format: int32
default_fan_pause_runtime:
type:
- integer
- 'null'
format: int32
fan_pause_runtime_limited_duration_s:
type:
- integer
- 'null'
format: int32
minimum: 0
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'
TunerConfiguration:
type: object
properties:
enabled:
type:
- boolean
- 'null'
description: Flag if tuner is enabled
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:
type:
- integer
- 'null'
format: int32
description: Tuner mode
TemperatureConstraints:
type: object
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'
Voltage:
type: object
required:
- volt
properties:
volt:
type: number
format: double
PowerConstraints:
type: object
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'
Power:
type: object
required:
- watt
properties:
watt:
type: integer
format: int64
minimum: 0
GetConstraintsResponse:
type: object
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
UInt32Constraints:
type: object
required:
- default
- min
- max
properties:
default:
type: integer
format: int32
minimum: 0
max:
type: integer
format: int32
minimum: 0
min:
type: integer
format: int32
minimum: 0
DurationConstraints:
type: object
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'
DpsConfiguration:
type: object
properties:
enabled:
type:
- boolean
- 'null'
description: Flag if Dynamic Performance Scaling is enabled
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:
type:
- integer
- 'null'
format: int32
description: Dynamic Performance Scaling mode
on_start_target_percent:
type:
- integer
- 'null'
format: int32
description: Initial target for Dynamic Performance Scaling in percent
minimum: 0
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:
type:
- boolean
- 'null'
description: Flag if shutdown for Dynamic Performance Scaling is enabled
PoolConfiguration:
type: object
description: Structure handle information about configured pool
required:
- url
- user
properties:
enabled:
type:
- boolean
- 'null'
description: Flag if pool connection is enabled
password:
type:
- string
- 'null'
description: Pool connection password if set
uid:
type:
- string
- 'null'
description: 'Pool connection id
If this struct is used when creating a new Pool Configuration, this field must not be specified (it will be generated)
If this struct is used when updating an existing configuration, this field must be specified and represents unique id of pool which will be updated'
url:
type: string
description: Pool connection URL
user:
type: string
description: Pool connection user
DoubleConstraints:
type: object
required:
- default
- min
- max
properties:
default:
type: number
format: double
max:
type: number
format: double
min:
type: number
format: double
LoadBalanceStrategy:
oneOf:
- type: object
required:
- quota
properties:
quota:
$ref: '#/components/schemas/Quota'
- type: object
required:
- fixedshareratio
properties:
fixedshareratio:
$ref: '#/components/schemas/FixedShareRatio'
description: Group load balance strategy
CoolingDisabledMode:
type: object
description: 'Disable temperature control. May be dangerous.
DEPRECATED: Since Braiins OS 24.XX it is not possible to disable cooling mode.'
properties:
fan_speed_ratio:
type:
- number
- 'null'
format: double
description: 'User defined fan speed expressed as a ratio between 0.0 and 1.0
where 0.0 means completely turned off and
1.0 means running at full speed possible'
CoolingConfiguration:
type: object
properties:
minimum_required_fans:
type:
- integer
- 'null'
format: int32
description: Minimum number of fans required to have BOSminer operational.
deprecated: true
minimum: 0
mode:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/CoolingConfigurationMode'
PauseModeMode:
oneOf:
- type: object
required:
- auto
properties:
auto:
$ref: '#/components/schemas/AutoPauseMode'
- type: object
required:
- manual
properties:
manual:
$ref: '#/components/schemas/ManualPauseMode'
Temperature:
type: object
required:
- degree_c
properties:
degree_c:
type: number
format: double
HashboardPerformanceConfiguration:
type: object
required:
- hashboards
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:
type: array
items:
$ref: '#/components/schemas/HashboardConfig'
description: Per hashboard frequency/voltage. It has higher priority than global one
quick_ramping_time_down_s:
type:
- integer
- 'null'
format: int32
description: Quick ramping time down in seconds. Used in curtailments
minimum: 0
quick_ramping_time_up_s:
type:
- integer
- 'null'
format: int32
description: Quick ramping time up in seconds. Used in curtailments
minimum: 0
TeraHashrate:
type: object
required:
- terahash_per_second
properties:
terahash_per_second:
type: number
format: double
Hours:
type: object
required:
- hours
properties:
hours:
type: integer
format: int32
minimum: 0