Skip to main content
Base path: https://api.firmngin.dev/api/saas/v1/flash The examples below use a desktop app as the client. Any HTTP client can call the same endpoints.

Authentication

Most endpoints use a workspace API key:
The ticket download endpoint uses the ticket from POST /downloads as its credential:
The workspace is derived from the API key. A token is bound to exactly one workspace.

Endpoints

List firmware

Only signed artifacts are returned.

Get one manifest

Returns 404 when the artifact does not exist or is outside the key’s artifact-code binding. Returns 409 when the latest artifact is unsigned.

Create a download

device_secret_id is optional. When present, Firmngin checks that the firmware target matches the device board and model.
The ticket and nonce are returned once. Store them only for the current flash session.

Download the binary

The ticket is single-use and expires after five minutes. The response includes:
Verify X-Firmware-Sha256 and X-Firmware-Signature before flashing. A second request with the same ticket returns 410.

List devices

Resolve one device

Use this to confirm the connected device’s board and model before downloading.

Read a session

Report the outcome

result is success or boot_failed. The nonce comes from POST /downloads.
This report is advisory. It does not change the device’s authoritative last_boot_status or firmware_version_actual. Only device-origin events can do that.

Artifact code binding

API keys can be limited to specific artifact codes. Create the binding in Dashboard → Integrations → Generate Token → Artifact codes. Leave it empty to allow all.

Errors

Rate limits

Rate limits are applied per authenticated user (the API key creator) or per IP for unauthenticated ticket downloads.