API usage
Firmware management API is a standard HTTP JSON API. Request and response bodies are formatted as JSON.
Common errors
-
404 - Not found
: Requested path does not exist -
405 - Method not allowed
: HTTP method for the requested path is not supported -
429 - Too many requests
: Rate limit exceeded -
415 - Unsupported media type
: Accept or Content-Type header is missing or unsupported for the request -
5xx - Server side errors
: If server has failures
Get Firmware Updates
POST /api/v1/firmware-update/check
Endpoint returns a new firmware for the given device, if available.
Request details
Name | Description |
---|---|
|
Set to application/json. |
|
Set to application/json. |
Path | Type | Description |
---|---|---|
|
|
Client ID string. |
|
|
Device UUID in string format. |
|
|
Firmware version in semantic version string form. |
|
|
Device hardware code / erp number as string. |
Response details
-
200 - OK
: when request is valid and new firmware is available -
204 - NO_CONTENT
: when request is valid and there are no new firmwares available -
400 - BAD_REQUEST
: when request is invalid
Path | Type | Description |
---|---|---|
|
|
Firmware ID. |
|
|
Firmware creation date in ISO 8601 format. |
|
|
Firmware last modification date in ISO 8601 format. |
|
|
Firmware description. |
|
|
Firmware ERP number. |
|
|
Firmware version. |
|
|
Firmware file download URL. |
|
|
Firmware base URL. Used with combination of languageFiles |
|
|
Firmware life cycle status. |
|
|
Firmware language files postfix to be used with baseUrl. |
|
|
Firmware hardware compatibility info. |
|
|
Hardware version expired status. |
|
|
Hardware version mandatory status. |
|
|
Hardware version ERP number. |
|
|
Hardware version dependant version. |
|
|
Hardware version life cycle status. |
Examples
When new firmware is available
Curl request
$ curl 'https://firmware-management.polar.com/api/v1/firmware-update/check' -i -X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"clientId" : "<client id string>",
"uuid" : "0e030000-0084-0000-0000-000001234565",
"firmwareVersion" : "1.2.3",
"hardwareCode" : "00748648.00"
}'
HTTP response
HTTP/1.1 200 OK
Date: Wed, 04 Dec 2024 07:24:31 GMT
Content-Type: application/json
{
"id" : 123,
"created" : "2024-12-04T07:24:31.339007134Z",
"modified" : "2024-12-04T07:24:31.339007735Z",
"description" : "Polar_INW5B 2.0.10",
"erpNumber" : "710113006.00",
"version" : "1.2.3",
"fileUrl" : "https://cdn.polar.com/firmware/2e88bd75-d822-41dc-bf0b-d3a3322e83be/firmware.zip",
"baseUrl" : "https://cdn.polar.com/firmware/2e88bd75-d822-41dc-bf0b-d3a3322e83be/",
"lifeCycle" : "R",
"languageFiles" : [ "lang_ja.zip", "lang_zh.zip", "langs.zip" ],
"hardwareVersions" : [ {
"expired" : false,
"mandatory" : true,
"erpNumber" : "00748648.01",
"dependantVersion" : "1.2.4",
"lifeCycle" : "Launched"
} ]
}
When there are no new firmwares available
Curl request
$ curl 'https://firmware-management.polar.com/api/v1/firmware-update/check' -i -X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"clientId" : "<client id string>",
"uuid" : "0e030000-0084-0000-0000-000001234565",
"firmwareVersion" : "1.2.3",
"hardwareCode" : "00748648.00"
}'
HTTP response
HTTP/1.1 204 No Content
Date: Wed, 04 Dec 2024 07:24:31 GMT
When invalid input given
Curl request
$ curl 'https://firmware-management.polar.com/api/v1/firmware-update/check' -i -X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"clientId" : "foo",
"uuid" : "0e030000-0084-0000-0000-000001234565",
"firmwareVersion" : "1.2.3",
"hardwareCode" : "00748648.00"
}'
HTTP response
HTTP/1.1 429 Too Many Requests
Date: Wed, 04 Dec 2024 07:24:31 GMT
Content-Type: application/json
Rate limit has been exceeded