overlay: 1.0.0
info:
title: API Evangelist enhancements — Braiins OS Public REST API
version: 1.0.0
x-generated: '2026-09-04'
x-method: derived
x-source: openapi/braiins-academy-braiins-os-public-rest-api-openapi.json
x-extends: openapi/braiins-academy-braiins-os-public-rest-api-openapi.json
x-note: >-
Non-destructive enhancements over the verbatim Braiins OS Public REST API document served at
https://developer.braiins-os.com/latest/openapi.json. The original is never mutated. The
security scheme below is not invented: it is the bearer token that POST /api/v1/auth/login
already returns and that the login operation's own description says must be sent in the
Authorization header — the document simply never declares it in components.
actions:
- target: $.info
description: Record the catalogued API and the artifacts derived from it.
update:
x-apis-io-aid: braiins-academy:braiins-os-api
x-provider: Braiins
x-transport-siblings:
grpc:
package: braiins.bos.v1
port: 50051
contract: grpc/
contract_version: 1.14.0
x-artifacts:
conventions: conventions/braiins-academy-conventions.yml
errors: errors/braiins-academy-problem-types.yml
authentication: authentication/braiins-academy-authentication.yml
cli: cli/braiins-academy-cli.yml
data_model: data-model/braiins-academy-data-model.yml
- target: $.info
description: >-
Flag the version skew between the published REST document (1.7.0) and the gRPC contract it
mirrors (1.14.0, 2026-08-13), so a consumer knows which surface is ahead.
update:
x-contract-version-grpc: 1.14.0
x-contract-version-rest: 1.7.0
x-changelog: https://academy.braiins.com/braiins-os/papi-changelog.md
- target: $.servers
description: >-
The document declares servers[] as http://miner/ — correct and deliberate: this API runs ON
the ASIC. Annotate it so a reader does not mistake it for a placeholder.
update:
x-server-shape: device-local
x-server-note: >-
The host is the individual miner's address on the operator's own network. There is no
Braiins-hosted endpoint for this API.
x-required-ports: [80, 50051]
- target: $.components
description: >-
Declare the bearer scheme the API already issues and requires but never expresses.
Documented in the login operation description and in the BOS gRPC docs.
update:
securitySchemes:
BosSessionToken:
type: http
scheme: bearer
description: >-
Session token returned by POST /api/v1/auth/login, sent in the Authorization header
of every subsequent request. Authenticates against the miner, not a Braiins account.
x-added-by: API Evangelist overlay — absent from the published document.
- target: $.paths['/api/v1/actions/factory-reset'].put
description: Mark the one irreversible device action so an agent can gate it.
update:
x-consequence: irreversible
x-consequence-note: >-
Clears the miner's configuration, optionally including network settings. Documented at
https://academy.braiins.com/braiins-os/factory-reset.md.
- target: $.paths['/api/v1/upgrade/restore-stock'].post
description: Name this as the reversal of a firmware install.
update:
x-reversal-of: systemUpgrade
x-reversal-window: null
x-cli-equivalent: braiins-toolbox firmware restore
- target: $.paths['/api/v1/performance/power-target/default'].put
update:
x-reversal-of: setPowerTarget
- target: $.paths['/api/v1/performance/hashrate-target/default'].put
update:
x-reversal-of: setHashrateTarget
- target: $.paths['/api/v1/advanced-settings/'].delete
update:
x-reversal-of: setAdvancedSettings
- target: $.paths['/api/v1/miner/status'].get
description: Record the deprecation announced in Public API 1.14.0 on the gRPC twin.
update:
x-deprecated-upstream: braiins.bos.v1.MinerService.GetMinerStatus
x-superseded-by: getMinerDetailedStatus
x-deprecated-in: 1.14.0
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.