Resolve the rollback target for a device
const url = 'http://localhost:3000/api/v1/devices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/rollback-target';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:3000/api/v1/devices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/rollback-target \ --header 'X-API-Key: <X-API-Key>'Returns which revision the device would be rolled back to (version, parameter digest and revision number, plus whether the device is split off a shared deployment first), or a machine-readable code explaining why it cannot be. Read-only — nothing is deployed. The resolution rule lives on the server so clients need not re-derive it.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Device UUID
Query Parameters
Section titled “Query Parameters”Scope the preview to one application package. Mirrors the rollback body so a preview cannot name a version the rollback would not apply.
Header Parameters
Section titled “Header Parameters”UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.
Responses
Section titled “Responses”Rollback target resolved (or reported unavailable)
object
True when a distinct previous version exists to return to
Machine-readable reason when available is false: NO_APPLICATION_DEPLOYED, PACKAGE_NOT_DEPLOYED, NO_HISTORY, NO_EARLIER_VERSION or NO_REVISION_HISTORY (only history written before revisions existed)
Human-readable explanation when available is false
The application package the rollback would act on
Version currently running for that package
Version the device would be returned to
FM-1446: the revision the device runs now. id and revision are null when the item has no revision yet.
object
Monotonic revision number of the deployment
Application version string
Sha256 of the canonical JSON of the parameter overrides
FM-1446: the earlier revision the rollback re-deploys the deployment to (version, parameter digest, revision number)
object
Monotonic revision number of the deployment
Application version string
Sha256 of the canonical JSON of the parameter overrides
FM-1446: true when the device shares its deployment with other devices. The rollback then splits the device off first.
ApplicationDescription that would be redeployed
Sealed-manifest digest of the target lineage entry
Manifest version at which the target was last sealed
When the target version was last served to the device
Examplegenerated
{ "available": true, "code": "example", "reason": "example", "applicationPackageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "fromVersion": "example", "toVersion": "example", "fromRevision": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "revision": 1, "applicationDescriptionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "version": "example", "parameterDigest": "example" }, "toRevision": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "revision": 1, "applicationDescriptionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "version": "example", "parameterDigest": "example" }, "willSplit": true, "toApplicationDescriptionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "manifestDigest": "example", "manifestVersion": 1, "deployedAt": "2026-04-15T12:00:00Z"}Malformed device or application package id
Device not found