curl https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1 \
-H "Authorization: Bearer sk_live_..."
const response = await fetch(
'https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1',
{ headers: { 'Authorization': 'Bearer sk_live_...' } },
);
const release = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1',
headers={'Authorization': 'Bearer sk_live_...'},
)
release = response.json()
{
"id": "fw_3kQ9mZa7Rp2XvB4nT6yL8cW1",
"version": "1.0.7",
"changelog": "Fixes a battery drain during long Bluetooth sessions.",
"is_released": true,
"bin_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"bin_file_size_bytes": 1048576,
"ufw_sha256": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
"ufw_file_size_bytes": 1150000,
"created_at": "2026-08-14T09:12:00Z",
"updated_at": "2026-08-14T10:02:00Z"
}
{
"error": {
"code": "not_found",
"message": "FirmwareRelease not found"
}
}
Firmware
Get Firmware Release
Retrieve a single published firmware release
GET
/
firmware-releases
/
{id}
curl https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1 \
-H "Authorization: Bearer sk_live_..."
const response = await fetch(
'https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1',
{ headers: { 'Authorization': 'Bearer sk_live_...' } },
);
const release = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1',
headers={'Authorization': 'Bearer sk_live_...'},
)
release = response.json()
{
"id": "fw_3kQ9mZa7Rp2XvB4nT6yL8cW1",
"version": "1.0.7",
"changelog": "Fixes a battery drain during long Bluetooth sessions.",
"is_released": true,
"bin_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"bin_file_size_bytes": 1048576,
"ufw_sha256": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
"ufw_file_size_bytes": 1150000,
"created_at": "2026-08-14T09:12:00Z",
"updated_at": "2026-08-14T10:02:00Z"
}
{
"error": {
"code": "not_found",
"message": "FirmwareRelease not found"
}
}
Platform release selection: service firmware must be explicitly released for your authenticated project in the platform, as well as published in OTA. Available but unselected, stopped, superseded or upstream-withdrawn versions are not eligible for new public requests. See Firmware Updates.
release_sequence and allow_downgrade accompany model-based service releases.
Returns one published release. Use it to read the checksums and sizes before
downloading an image, or to confirm what a device was assigned.
An unpublished release answers 404, the same as one that does not exist or
belongs to another organization.
Authentication
Requires an API key withdevices:read scope.
Path Parameters
string
required
The release identifier (e.g.,
fw_3kQ9mZa7Rp2XvB4nT6yL8cW1).curl https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1 \
-H "Authorization: Bearer sk_live_..."
const response = await fetch(
'https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1',
{ headers: { 'Authorization': 'Bearer sk_live_...' } },
);
const release = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/firmware-releases/fw_3kQ9mZa7Rp2XvB4nT6yL8cW1',
headers={'Authorization': 'Bearer sk_live_...'},
)
release = response.json()
{
"id": "fw_3kQ9mZa7Rp2XvB4nT6yL8cW1",
"version": "1.0.7",
"changelog": "Fixes a battery drain during long Bluetooth sessions.",
"is_released": true,
"bin_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"bin_file_size_bytes": 1048576,
"ufw_sha256": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
"ufw_file_size_bytes": 1150000,
"created_at": "2026-08-14T09:12:00Z",
"updated_at": "2026-08-14T10:02:00Z"
}
{
"error": {
"code": "not_found",
"message": "FirmwareRelease not found"
}
}
Was this page helpful?

