How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Braiins OS Public API

The Braiins OS Public API, introduced in Braiins OS 23.03, is the control contract for a Bitcoin ASIC running Braiins OS. It is offered over gRPC (package braiins.bos.v1, TCP 50051) and, since Braiins OS 25.07, over REST — Braiins states both transports provide the same functionality. The API runs ON the miner: servers[] is http://miner/, so the host is each device on the operator's own network and there is no Braiins-hosted endpoint. 63 REST operations cover mining actions, performance and power targeting, Dynamic Performance Scaling, cooling, pool groups, licensing, network configuration, firmware upgrade and restore-to-stock, and a detailed miner status that reports the reason a machine is not hashing. Every miner also self-serves its own OpenAPI at GET /api/v1/docs/openapi.json.

Braiins OS Public API is one of 3 APIs that Braiins publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Mining Firmware, ASIC, Autotuning, Performance, and Curtailment. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and a changelog.

This API exposes 63 operations across 54 paths, organized into 13 resource areas, and defines 158 schemas. It is described by OpenAPI 3.1.0, at version 1.7.0.

Requests are made against a single base URL, http://miner/.

63 operations 54 paths 158 schemas 3 DELETE25 GET10 PATCH4 POST21 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.7.0
Base URL
http://miner/api/v1
Contact
Resource Areas
13

Paths & Operations 63

Across 54 paths, the API surfaces 63 operations — 3 DELETE, 25 GET, 10 PATCH, 4 POST, 21 PUT. They span 13 resource areas, including Actions, Advanced Settings, Authentication, Configuration, Cooling, Documentation, License, Miner, and 5 more. Each is listed below with its method, path, parameters, and response codes.

Actions 9
PUT
/api/v1/actions/factory-reset
Factory Reset
factory_reset 1 param → 204
GET
/api/v1/actions/locate
Get locate device status
getLocateDeviceStatus → 200
PUT
/api/v1/actions/locate
Set locate device status
setLocateDeviceStatus body → 200
PUT
/api/v1/actions/pause
Pause mining
pauseMining → 200
PUT
/api/v1/actions/reboot
Reboot
reboot → 204
PUT
/api/v1/actions/restart
Restart
restart → 200
PUT
/api/v1/actions/resume
Resume mining
resumeMining → 200
PUT
/api/v1/actions/start
Start
start → 200
PUT
/api/v1/actions/stop
Stop
stop → 200
Advanced Settings 4
GET
/api/v1/advanced-settings/
Get current advanced settings values
getAdvancedSettings 1 param → 200
DELETE
/api/v1/advanced-settings/
Reset all advanced settings to defaults
resetAllAdvancedSettings → 200
PATCH
/api/v1/advanced-settings/
Set advanced settings values
setAdvancedSettings body → 200
GET
/api/v1/advanced-settings/schema
Get settings schema
getAdvancedSettingsSchema → 200
Authentication 2
POST
/api/v1/auth/login
User login
login body → 200
PUT
/api/v1/auth/password
Set or remove user password
setPassword body → 204400401500
Configuration 2
GET
/api/v1/configuration/constraints
Get constraints
getConstraints → 200
GET
/api/v1/configuration/miner
Get miner configuration
getMinerConfiguration → 200
Cooling 2
PUT
/api/v1/cooling/mode
Set cooling mode
setCoolingMode body → 200
GET
/api/v1/cooling/state
Get cooling state
getCoolingState → 200
Documentation 1
GET
/api/v1/docs/openapi.json
Retrieve OpenAPI JSON schema
getOpenApiSchema → 200
License 2
PUT
/api/v1/license/apply-contract-key
Apply custom contract key
applyContractKey body → 200
GET
/api/v1/license/license
Get license state
getLicenseState → 200
Miner 9
GET
/api/v1/miner/details
Get miner details
getMinerDetails → 200
GET
/api/v1/miner/errors
Get miner errors
getMinerErrors → 200
GET
/api/v1/miner/hw/hashboards
Get hashboard details
getHashboards → 200
PATCH
/api/v1/miner/hw/hashboards
Enable or disable hashboards
updateHashboards body → 200
GET
/api/v1/miner/log/{log_type}
Stream log file
getLog 1 param → 200
GET
/api/v1/miner/stats
Get miner statistics
getMinerStats → 200
GET
/api/v1/miner/statusdeprecated
Stream miner status updates
getMinerStatus → 200
GET
/api/v1/miner/status/detailed
Stream detailed miner status updates
getMinerDetailedStatus → 200
GET
/api/v1/miner/support-archive
Stream support archive
getSupportArchive body → 200
Network 3
GET
/api/v1/network/
Retrieve miner network information
getNetwork → 200
GET
/api/v1/network/configuration
Get network configuration
getNetworkConfiguration → 200
PATCH
/api/v1/network/configuration
Update network configuration
updateNetworkConfiguration body → 200
Performance 19
PUT
/api/v1/performance/dps
Set DPS (Dynamic Performance Scaling)
setDps body → 200
GET
/api/v1/performance/efficiency-profile
Get miner efficiency profile
getEfficiencyProfile → 200412500
PUT
/api/v1/performance/hashrate-target
Set hashrate target
setHashrateTarget body → 200
PATCH
/api/v1/performance/hashrate-target/decrement
Decrement hashrate target
decrementHashrateTarget body → 200
PUT
/api/v1/performance/hashrate-target/default
Set default hashrate target
setDefaultHashrateTarget → 200
PATCH
/api/v1/performance/hashrate-target/increment
Increment hashrate target
incrementHashrateTarget body → 200
PATCH
/api/v1/performance/hashrate-target/relative
Set hashrate target to a relative reference
relativeHashrateTarget body → 200
GET
/api/v1/performance/mode
Get performance mode
getPerformanceMode → 200
PUT
/api/v1/performance/mode
Set performance mode
setPerformanceMode body → 200
PUT
/api/v1/performance/power-target
Set power target
setPowerTarget body → 200
PATCH
/api/v1/performance/power-target/decrement
Decrement power target
decrementPowerTarget body → 200
PUT
/api/v1/performance/power-target/default
Set default power target
setDefaultPowerTarget → 200
PATCH
/api/v1/performance/power-target/increment
Increment power target
incrementPowerTarget body → 200
PATCH
/api/v1/performance/power-target/relative
Set power target to a relative reference
relativePowerTarget body → 200
PUT
/api/v1/performance/quick-ramping
Set quick ramping
setQuickRamping body → 200
PUT
/api/v1/performance/quick-ramping/default
Set default quick ramping
setDefaultQuickRamping → 200
GET
/api/v1/performance/target-profiles
Get target profiles
getTargetProfiles → 200
DELETE
/api/v1/performance/tuned-profiles
Remove tuner profiles
removeTunedProfiles → 204
GET
/api/v1/performance/tuner-state
Get tuner state
getTunerState → 200
Pools 5
GET
/api/v1/pools/
Get Pool Groups
getPools → 200
POST
/api/v1/pools/
Create a new pool group
createPoolGroup body → 201
PUT
/api/v1/pools/batch
Set multiple pool groups
setBatchPools body → 200
PUT
/api/v1/pools/{uid}
Update an existing pool group
updatePoolGroup 1 param body → 200404
DELETE
/api/v1/pools/{uid}
Delete a pool group by UID
deletePool 1 param → 204
Upgrade 4
GET
/api/v1/upgrade/auto-upgrade
Get auto-upgrade settings
getAutoUpgradeStatus → 200
PATCH
/api/v1/upgrade/auto-upgrade
Set auto-upgrade settings
updateAutoUpgradeConfig body → 200
POST
/api/v1/upgrade/restore-stock
Restore stock
restoreStock → 204409500501
POST
/api/v1/upgrade/system-upgrade
System upgrade
systemUpgrade body → 204409500
Version 1
GET
/api/v1/version/
Get API version
getApiVersion → 200

Schemas 158

The contract defines 158 schemas that model the data the API accepts and returns. The most detailed are GetMinerDetailsResponse (18 properties), Hashboard (16 properties), CoolingConstraints (12 properties), RealHashrate (10 properties). Each schema is shown below with its type and property counts.

ApiVersion
object
3 properties 3 required
ApplicationUnavailable
object
Bosminer application is unavailable
ApplyContractKeyRequest
object
2 properties 1 required
ApplyContractKeyResponse
object
1 property 1 required
AutoPauseMode
object
Automatic pause mode starts with fans going with last fan speed used for mining and slowly decreases speed down to 0%
AutoUpgradeSchedule
object
1 property
BasesPoints
object
Structure representing Basis Points
1 property 1 required
BooleanConstraint
object
1 property 1 required
BosVersion
object
Structure to handle BOS version
3 properties 3 required
Component
object
2 properties 2 required
CoolingAutoMode
object
The temperature control modes. Miner software tries to regulate the fan speed so that miner temperature is approximately at the target temperature. The allowed…
7 properties
CoolingConfiguration
object
2 properties
CoolingConfigurationMode
CoolingConstraints
object
12 properties 1 required
CoolingDisabledMode
object
Disable temperature control. May be dangerous. DEPRECATED: Since Braiins OS 24.XX it is not possible to disable cooling mode.
1 property
CoolingDown
object
Cooling down before start
CoolingHydroMode
object
3 properties
CoolingImmersionMode
object
3 properties
CoolingManualMode
object
Fans are kept at a fixed, user-defined speed, no matter the temperature.
6 properties
DPSTargetTarget
DailySchedule
object
1 property
DeadPools
object
All mining pools are unresponsive (or there is no pool configuration)
Defrosting
object
Hashboard defrosting in progress
DelayedStart
object
Waiting for a startup delay
Dhcp
object
DoubleConstraints
object
3 properties 3 required
DpsConfiguration
object
9 properties
DpsConstraints
object
9 properties 1 required
DpsCooldown
object
Dynamic Performance Scaling cooldown in progress
DpsHashrateTarget
object
2 properties
DpsPowerTarget
object
2 properties
DpsTarget
object
1 property
DurationConstraints
object
3 properties
EnableHashboardsResponse
object
1 property 1 required
ErrorCode
object
3 properties 3 required
ExpectedTime
object
A point in time known with a given precision: either an exact timestamp or an upper bound (the event happens no later than the timestamp)
1 property
ExpiredLicense
object
3 properties 2 required
FanState
object
Structure which contain info about one specific miner fan.
3 properties 1 required
FixedShareRatio
object
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 gr…
1 property 1 required
Frequency
object
1 property 1 required
FrequencyConstraints
object
3 properties
GetAutoUpgradeStatusResponse
object
4 properties 1 required
GetConstraintsResponse
object
4 properties
GetCoolingStateResponse
object
Response to get current fan states and temperature measurements
2 properties 1 required
GetErrorsResponse
object
1 property 1 required
GetHashboardsResponse
object
1 property 1 required
GetLicenseStateResponse
object
1 property
GetMinerConfigurationResponse
object
Structure to return miner configuration
5 properties 1 required
GetMinerDetailedStatusResponse
object
1 property
GetMinerDetailsResponse
object
Structure to handle system details
18 properties 11 required
GetMinerEfficiencyProfileResponse
object
Miner efficiency profile curve
1 property 1 required
GetMinerStatsResponse
object
3 properties
GetMinerStatusResponse
object
1 property 1 required
GetNetworkInfoResponse
object
Response message for GetCurrentNetworkConfiguration Represents the current network configuration for the default network interface. Only IPv4 is supported.
7 properties 3 required
GetSupportArchive
object
1 property 1 required
GetTunerStateResponse
object
Response with the current tuner details
2 properties 1 required
GigaHashrate
object
1 property 1 required
HardwareError
object
Hardware error during operation
1 property 1 required
Hashboard
object
Structure to handle HB details
16 properties 2 required
HashboardConfig
object
4 properties 1 required
HashboardConstraints
object
5 properties 1 required
HashboardEnableState
object
2 properties 2 required
HashboardPerformanceConfiguration
object
5 properties 1 required
HashboardPerformanceSettings
object
3 properties 1 required
HashrateConstraints
object
3 properties
HashrateTargetMode
object
1 property
HashrateTargetModeState
object
2 properties
HashrateTargetProfile
object
Structure to handle hashrate target profile
4 properties
Hours
object
1 property 1 required
IpNetwork
object
2 properties 2 required
LimitedLicense
object
ListTargetProfilesRequest
object
LoadBalanceStrategy
Group load balance strategy
LoginRequest
object
Request for login action.
2 properties 2 required
LoginResponse
object
Response for login action.
2 properties 2 required
ManualPauseMode
object
Manual pause mode runs with defined fixed fans speed and either turns off after a certain period of time or runs indefinitely according to fanruntime settings
2 properties
ManualPerformanceMode
object
3 properties 1 required
MegaHashrate
object
1 property 1 required
MinerDetailedStatus
object
Detailed miner status: the lifecycle phase the miner is in, the reason or sub-state behind it, and when it entered and is expected to leave that phase
3 properties
MinerEfficiencyPoint
object
Single point on the miner efficiency curve
9 properties 2 required
MinerError
object
4 properties 4 required
MinerIdentity
object
4 properties 4 required
MinerPowerStats
object
2 properties
MissingLicense
object
No valid BOS license
ModeState
MonthlySchedule
object
2 properties
NetworkConfiguration
object
2 properties 1 required
NetworkConfigurationProtocol
Network protocol
NoneLicense
object
1 property 1 required
Normal
object
Mining normally at full performance
PauseMode
object
Pause mode to control fans behaviour after you pause the miner
1 property
PauseModeMode
PerformanceModeMode
Pool
object
Structure handle information about configured pool
7 properties 6 required
PoolConfiguration
object
Structure handle information about configured pool
5 properties 2 required
PoolGroup
object
Structure handle all pool group details
4 properties 3 required
PoolGroupConfiguration
object
Structure handle configured mining group
4 properties 2 required
PoolStats
object
Structure handle pool statistics
8 properties 7 required
Power
object
1 property 1 required
PowerConstraints
object
3 properties
PowerEfficiency
object
1 property 1 required
PowerTargetMode
object
1 property
PowerTargetModeState
object
2 properties
PowerTargetProfile
object
Structure to handle power target profile
4 properties
Precision
Preheating
object
Mining at reduced performance while hashboards preheat to a stable temperature
PsuInfo
object
6 properties
QuickRampingResponse
object
2 properties 2 required
Quota
object
Structure for quota load balance strategy
1 property 1 required
RealHashrate
object
Structure which contains HB real hashrate stats.
10 properties
RunDetailedReason
RunReason
object
State of a running miner
1 property
ScheduleType
SetCoolingModeRequestMode
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. If the cooling mode values ar…
SetCoolingModeResponseMode
The resulting cooling mode
SetDpsRequestRest
object
7 properties
SetDpsResponse
object
7 properties
SetNetworkConfigurationRequest
object
2 properties
SetNetworkConfigurationRequestProtocol
Network protocol. Existing value will be preserved if this field is not set.
SetPasswordRequest
object
Request for set password action.
1 property
SetQuickRampingRequestRest
object
2 properties 2 required
SetRelativeTargetRequestRest
object
2 properties 2 required
StartDetailedReason
StartReason
object
State of a starting miner
1 property
State
Static
object
4 properties 4 required
Status
StopDetailedReason
StopReason
object
Detailed state of a stopped or stopping miner. The same message is reused for both the stopped and stopping arms of MinerDetailedStatus.status (a miner stops,…
1 property
Strategy
Load balancing strategy
SupportArchiveFormat
string
Enumeration for support archive format
SystemUpgradeMetadata
object
4 properties 4 required
SystemUpgradeRequestRest
object
2 properties 2 required
Temperature
object
1 property 1 required
TemperatureConstraints
object
3 properties
TemperatureSensor
object
3 properties 1 required
TeraHashrate
object
1 property 1 required
ThermalPause
object
Paused due to thermal conditions
1 property 1 required
ThermalPauseReason
string
Timestamp
object
Custom version of google.protobuf.Timestamp It is used only during compilation to replace google.protobuf.Timestamp to enable traits for de/serialization and f…
2 properties 2 required
TunerConfiguration
object
4 properties
TunerConstraints
object
4 properties 1 required
TunerError
object
Autotuner encountered an error
1 property 1 required
TunerPerformanceMode
object
1 property
TunerPerformanceModeTarget
UInt32Constraints
object
3 properties 3 required
Unspecified
object
Empty state used when a state has no additional context
UnsupportedHardware
object
Hardware detection failed
1 property 1 required
UpdateAutoUpgradeConfigRequest
object
2 properties 1 required
UpdateHashboards
object
2 properties 2 required
UpgradeTime
object
3 properties 2 required
UserPause
object
User-initiated pause
ValidLicense
object
4 properties 3 required
Voltage
object
1 property 1 required
VoltageConstraints
object
3 properties
WaitingWhileCold
object
Ambient temperature too low, waiting before start
WeeklySchedule
object
2 properties
WorkSolverStats
object
Structure to handle HB state
6 properties 3 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

braiins-academy-braiins-os-public-rest-api-openapi.json Raw ↑

Other APIs Braiins publishes across the network.

Braiins Hashpower API
Braiins Pool API
Where this information came from

This is an independent, third-party profile of Braiins OS Public API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.